习题四学号 专业: 姓名: 1.下面程序若在运行时从键盘输入3.62.4,运行结果为()。 #include math. h Float x, y, z scanf("%f%f”,&x,&y) while (1) fif (fabs(z)>1.0)(x=y y=zz=x/y else brea printf(%f\n", y) A.1.500000 B.1.600000 C.2.000000 D.2.400000 2.下面程序的输出是() man {intx=3,y=6,a=0; while(x++!=(-=1)) if (y<x) break printf(x=%d, y=%d, a=%d\n"x, y, a A C.x=5,y=4,a=3 3.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成 绩,当输入负数时结束,请填空。 main float x, amax, amin amax-x ammln-x while fif (x>amax)amax=x if scanf(%f", &x): printf("\nama x=f\namin=%f\n", amax, amin
- 6 - 习题四 学号: 专业: 姓名: 1.下面程序若在运行时从键盘输入 3.6 2. 4 ,运行结果为( )。 #include"math.h" main( ) {float x,y,z; scanf("%f%f",&x,&y); z=x/y; while (1) {if (fabs(z)>1.0) {x=y; y=z; z=x/y;} else break; } printf("%f\n",y); } A.1.500000 B.1.600000 C.2.000000 D.2.400000 2.下面程序的输出是( )。 main( ) {int x=3,y=6,a=0; while (x++!=(y−=1)) {a+=1; if (y<x) break; } printf("x=%d,y=%d,a=%d\n",x,y,a); } A.x=4, y=4, a=1 B.x=5, y=5, a=1 C.x=5, y=4, a=3 D.x=5, y=4, a=1 3.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成 绩,当输入负数时结束,请填空。 main( ) {float x,amax,amin; scanf("%f",&x); amax=x; amin=x; while ( ) {if (x>amax) amax=x; if ( ) amin=x; scanf("%f",&x); } printf("\namax=%f\namin=%f\n",amax,amin); }
习题四学号 专业: 姓名: 4.下面程序的输出是: printf(%d\n,x): 5.下面程序的运行结果为: main lint i=0, sum=l isum while (i<6) printf( %d\n", sum) 6.C语句中,下列说法中正确的是()。 A.不能使用do- while语句构成的循环 B.do- while语句构成的循环必须用 break语句才能退出 C.do- while语句构成的循环,当 while语句中的表达式值为非零时结束循环 D.do- while语句构成的循环,当 while语句中的表达式值为零时结東循环。 7.下面程序的输出结果是: main fint y=g for(; y>0 if(y%3==0) [printf( %d", --y) continue 8.若x是int型变量,且有下面的程序段,其运行结果为()。 for(x=3;x<6;x++) printf(x%)?("**%d"):("##%\n"),x); B.##3 C.##2 **3##4 ##4 **3 **4##5 ##5
- 7 - 习题四 学号: 专业: 姓名: 4.下面程序的输出是: 。 main( ) {int x=2; while (x−−); printf("%d\n",x); } 5.下面程序的运行结果为: 。 main( ) {int i=0, sum=1; do {sum+=i++;} while (i<6); printf("%d\n",sum); } 6.C 语句中,下列说法中正确的是( )。 A.不能使用 do-while 语句构成的循环; B.do-while 语句构成的循环必须用 break 语句才能退出; C.do-while 语句构成的循环,当 while 语句中的表达式值为非零时结束循环; D.do-while 语句构成的循环,当 while 语句中的表达式值为零时结束循环。 7.下面程序的输出结果是: 。 main( ) {int y=9; for ( ; y>0; y−−) if (y%3==0) {printf("%d",−−y); continue; } } 8.若 x 是 int 型变量,且有下面的程序段,其运行结果为( )。 for (x=3; x<6; x++) printf((x%2)?(" %d"):("##%d\n"),x); A.3 B. ##3 C. ##2 D. 3##4 ##4 3 4##5 5 5 ##5
习题四学号 专业: 姓名: 9.以下程序的运行结果是() main() for(i=1;i<=5;i++) {if(i%2) Ise continu printf( #") B.#*#*#*$ 10.下面程序的功能是根据以下的公式,返回满足精度eps要求下的值,请填空 π121231234 Int n: scanf( %f", &eps) ① t=n t printf("pi=%f\n",②
- 8 - 习题四 学号: 专业: 姓名: 9.以下程序的运行结果是( )。 main( ) {int i; for (i=1;i<=5;i++) {if (i%2) printf(""); else continue; printf("#"); } printf("$\n"); } A.###$ B.###$ C.##$ D.##$ 10.下面程序的功能是根据以下的公式,返回满足精度 eps 要求下的值,请填空。 main( ) {double s=0.0, t=1.0; int n; float eps; scanf("%f",&eps); for( ;t>eps; n++) {s+=t; t=nt/(2n+1); } printf("pi=%f\n", ); } = + + + + + 9 4 7 3 5 2 3 1 7 3 5 2 3 1 5 2 3 1 3 1 1 2
习题五学号 专业: 姓名: 以下正确的叙述是()。 A.C语言的主函数是无参函数 B.C语言的主函数最多允许有1个参数 C.C语言的主函数最多允许有2个参数 D.C语言的主函数可以有2个以上的参数 C语言中函数返回值的类型是由()决定的。 A. return语句中的表达式类型 B.调用该函数的主调函数类型 C.调用函数时临时确定 D.定义函数时所指定的函数类型 以下不正确的描述是() A.调用函数时,实参可以是表达式 B.调用函数时,简单变量的实参与形参可以共用内存单元 C.调用函数时,将为形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 4.若x为int型变量,则以下函数fun的返回值类型为() Printf (%d\n",):1 A.返回值为void类型 B.无法确定返回值 C.返回值为int类型 D.没有返回值 5.C语言规定,调用一个函数时,实参变量与形参变量之间的数据传递是 A.地址传递 B.由实参传给形参,再由形参传回来给实参 C.值传递 D.由用户指定传递方式 填空 ①变量存储类别,从作用域的角度分为 变量和 变量 ②局部静态变量在 时赋初值且只赋值一次 7.判断以下说法的正误 ①一个源文件由一个或多个函数组成,C程序是以一个源文件为编译单位的。( ②局部静态变量在函数调用结束后仍存在,但其它函数不能引用它 ③自动(auto)变量是由编译系统自动处理的,对自动变量分配存储空间后,就赋值 为0,执行函数后自动释放 ④由于全局变量的作用域增加了函数间数据联系的渠道,利用全局变量可以从函数得 到一个以上的返回值,故建议在程序中尽量定义全局变量 8.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量 则该变量的存储类应该是()。 A. extern B. register C. auto D. Static
- 9 - 习题五 学号: 专业: 姓名: 1.以下正确的叙述是( )。 A.C 语言的主函数是无参函数 B.C 语言的主函数最多允许有 1 个参数 C.C 语言的主函数最多允许有 2 个参数 D.C 语言的主函数可以有 2 个以上的参数 2.C 语言中函数返回值的类型是由( )决定的。 A.return 语句中的表达式类型 B.调用该函数的主调函数类型 C.调用函数时临时确定 D.定义函数时所指定的函数类型 3.以下不正确的描述是( )。 A.调用函数时,实参可以是表达式 B.调用函数时,简单变量的实参与形参可以共用内存单元 C.调用函数时,将为形参分配内存单元 D.调用函数时,实参与形参的类型必须一致 4.若 x 为 int 型变量,则以下函数 fun 的返回值类型为( )。 fun(x) …… {printf("%d\n",x);} A.返回值为 void 类型 B.无法确定返回值 C.返回值为 int 类型 D.没有返回值 5.C 语言规定,调用一个函数时,实参变量与形参变量之间的数据传递是( ) A.地址传递 B.由实参传给形参,再由形参传回来给实参 C.值传递 D.由用户指定传递方式 6.填空 ① 变量存储类别,从作用域的角度分为 变量和 变量。 ② 局部静态变量在 时赋初值且只赋值一次。 7.判断以下说法的正误 一个源文件由一个或多个函数组成, C 程序是以一个源文件为编译单位的。( ) 局部静态变量在函数调用结束后仍存在,但其它函数不能引用它。 ( ) 自动(auto)变量是由编译系统自动处理的,对自动变量分配存储空间后,就赋值 为 0,执行函数后自动释放。 ( ) 由于全局变量的作用域增加了函数间数据联系的渠道,利用全局变量可以从函数得 到一个以上的返回值,故建议在程序中尽量定义全局变量。 ( ) 8.在一个 C 源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量, 则该变量的存储类应该是( )。 A.extern B.register C.auto D.Static
习题五学号 专业: 姓名: 9.以下不正确的描述为() A.在函数之外定义的变量称为外部变量,外部变量是全局变量 B.在一个函数中既可以使用局部变量,又可以使用全局变量 C.外部变量定义和外部变量说明的含义不同 D.若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内 外部变量不起作用 0.以下不正确的描述为() A.不同函数中可以使用相同名字的变量 B.形式参数是局部变量 C.在一个函数内部定义的变量只在本函数范围内有效 D.在一个函数内部的复合语句中定义的变量可以在本函数范围内有效 11.在C语言中,对于存储类型为()的变量,只有在使用它们时才 占用内存单元。 A. static和 B.静态( static) C. register和 static auto 和 register 12.C语言中形参的缺省存储类别是() A.自动(auto) B.静态( static) C.寄存器( register) D.外部( extern) 13.下列程序的运行结果是: unsigned fun (unsi gned num unsigned k=l {k*=num%10 num/=10 I while(num) return(k) main unsigned n=26 printf( %d\n", fun(n)) 14.下列程序的运行结果是 long fund (int n) {1 if((n=1)||(n==2))s=2; else s=n+fund (n-1) return(s) ilong x=fun(4): printf( %1d\n", x)
- 10 - 习题五 学号: 专业: 姓名: 9.以下不正确的描述为( ) A.在函数之外定义的变量称为外部变量,外部变量是全局变量 B.在一个函数中既可以使用局部变量,又可以使用全局变量 C.外部变量定义和外部变量说明的含义不同 D.若在同一个源文件中,外部变量与局部变量同名,则在局部变量的作用范围内, 外部变量不起作用。 10.以下不正确的描述为( ) A.不同函数中可以使用相同名字的变量 B.形式参数是局部变量 C.在一个函数内部定义的变量只在本函数范围内有效 D.在一个函数内部的复合语句中定义的变量可以在本函数范围内有效 11.在 C 语言中,对于存储类型为( )的变量,只有在使用它们时才 占用内存单元。 A.static 和 auto B.静态(static) C.register 和 static D.auto 和 register 12.C 语言中形参的缺省存储类别是( ) A.自动(auto) B.静态(static) C.寄存器(register) D.外部(extern) 13.下列程序的运行结果是: 。 unsigned fun3(unsigned num) {unsigned k=1; do {k=num%10; num/=10; }while(num); return(k); } main( ) {unsigned n=26; printf("%d\n",fun3(n)); } 14.下列程序的运行结果是: 。 long fun4(int n) {long s; if ((n==1)||(n==2)) s=2; else s=n+fun4(n−1); return(s); } main( ) {long x; x=fun4(4); printf("%ld\n",x); }