习题一学号 专业: 姓名: 填空题 1.i为int型变量,且初值是3,有表达式i++-3,则 该表达式的值是 变量i的值是 2.i为int型变量,且初值是2,有表达式++i-3,则 该表达式的值是 变量i的值是 3.i为int型变量,且初值是3,有表达式i=i+=i*5,则 该表达式的值是 变量i的值是 4.i为int型变量,且初值是3,有表达式i=(a=5,b=10)+(i+=b,b+=a) 则该表达式的值是 ,变量i,a,b的值分别是 5.i为int型变量,且的初值是3,有表达式i=(i+=i,i*=i),i-10,i%4,则 该表达式的值是 变量i的值是 6.说明变量为双精度的关键字是 7.在 Turbo c中,整型数据的表示形式有 选择题 若a,b,c,d都是int型变量且初值均为10,不正确的赋值语句是()。 D.d=(a=b=125)-c++ 2.若a,b,c,d都是 float型变量且初值为10.95,不正确的赋值语句是() A.a=b=15 B. d=int(a+c) C. a=(int)(b+1) 3.若a,b,c均为int型变量且有值,要交换变量a和b的值,正确的语句组是 B. a=b: b=a C. c=a: a=b: b=c D. c=a: b=a: a=c 4.若a,b均为int型变量,x,y均为 float型变量,正确的输入函数是() A. scanf(%d%f", &a, &b) B. scanf("%d%f", &a, &x) C. scanf("%d%d", a, b) D. scanf(%f%f", x, y) 5.若x,y均为 double型变量,正确的输入函数是()。 A. scanf( %f%f", &x, &y) B. scanf( %d%d",&x, &y) C. scanf(%1f%lf", &x, &y) D. scanf(%1f%lf" x, y) 6.若ⅹ为char型变量,y为int型变量,x,y均有值,正确的输出函数是() A. printf(%c%", x, y) B. printf %c%s", x, y) C. printf( %f%c", x, y) D. printf( %f%d", x, y) 7.若x,y均为int型变量且有值,要输出ⅹ,y的值,正确的输出函数是()。 A. printf ("%d%d", &x, &y) B. printf( %f%f", x, y) C. printf( %f%d",x, y) D. printf( %d%d",x,y) 8.x为int型变量,且值为2345,不正确的输出函数是()。 A. printf("%d", x) B C. printf( %c", x) printf(%s", x)
- 1 - 习题一 学号: 专业: 姓名: 一.填空题 1.i 为 int 型变量,且初值是 3,有表达式 i++−3,则 该表达式的值是 ,变量 i 的值是 。 2.i 为 int 型变量,且初值是 2,有表达式++i−3, 则 该表达式的值是 ,变量 i 的值是 。 3.i 为 int 型变量,且初值是 3,有表达式 i=i+=i5,则 该表达式的值是 ,变量 i 的值是 。 4.i 为 int 型变量,且初值是 3,有表达式 i=(a=5,b=10)+(i+=b, b+=a), 则该表达式的值是 ,变量 i,a,b 的值分别是 。 5.i 为 int 型变量,且的初值是 3,有表达式 i=(i+=i, i=i), i−10, i%4,则 该表达式的值是 ,变量 i 的值是 。 6.说明变量为双精度的关键字是 。 7.在 Turbo C 中,整型数据的表示形式有 种。 二.选择题 1.若 a, b, c, d 都是 int 型变量且初值均为 10,不正确的赋值语句是( )。 A.a=b=c=d; B.a=b++; C.a+b++; D.d=(a=b=125)−c++; 2.若 a, b, c, d 都是 float 型变量且初值为 10.95,不正确的赋值语句是( )。 A.a=b=15; B.d=int(a+c); C.a=(int)(b+1); D.++a; 3.若 a, b, c 均为 int 型变量且有值,要交换变量 a 和 b 的值,正确的语句组是( )。 A.c=a, a=b, b=c; B.a=b; b=a; C.c=a; a=b; b=c ; D.c=a; b=a; a=c; 4.若 a, b 均为 int 型变量,x, y 均为 float 型变量,正确的输入函数是( )。 A.scanf("%d%f",&a,&b); B.scanf("%d%f",&a,&x); C.scanf("%d%d",a,b); D.scanf("%f%f",x,y); 5.若 x, y 均为 double 型变量,正确的输入函数是( )。 A.scanf("%f%f",&x,&y); B.scanf("%d%d",&x,&y); C.scanf("%lf%lf",&x,&y); D.scanf("%lf%lf",x,y); 6.若 x 为 char 型变量,y 为 int 型变量,x, y 均有值,正确的输出函数是( )。 A.printf("%c%c",x,y); B.printf("%c%s",x,y); C.printf("%f%c",x,y); D.printf("%f%d",x,y); 7.若 x, y 均为 int 型变量且有值,要输出 x, y 的值,正确的输出函数是( )。 A.printf("%d%d",&x,&y); B.printf("%f%f",x,y); C.printf("%f%d",x,y); D.printf("%d%d",x,y); 8.x 为 int 型变量,且值为 2345,不正确的输出函数是( )。 A.printf("%d",x); B.printf("%3d",x); C.printf("%c",x) ; D.printf("%s",x);
习题二学号 专业: 姓名: 写出下列程序的运行结果 1.下面程序的运行结果是()。 mma n a=23;b=87 printf( %d%d\n", a, b) B.23,87 C.a=23 D.2387 b=87 2.下面程序的运行结果是()。 main() Float x, y x=12.34;y=0.00045; printf("%f,%f”,x,y) A.12.34,0.00045 B.12.340000,0.000450 C.12.340.00045 D.12.3400000.000450 3.下面程序的运行结果是()。 inth=34,k=56; printf("h=%d\nk=%d\n", h, k) A.h=34 B.h=34k=56 C.3456 56 4.下面程序的运行结果是() ma l { float x=12.34567 printf("x=5.3f, y=%5.3 f"x, y) A.12.346,345.235 B.x=12.346,y=345.235 C.12.345670,345.235000 D.x=12.34567,y=345.2354 5.下面程序的运行结果是()。 maln 3,w=5 printf(%u, %u, %d, %d",s, w, s, w) A.-3,5,-3,5B.-35-35C.65533,5,-3,5D.65533,65531,-3,5
- 2 - 习题二 学号: 专业: 姓名: 一.写出下列程序的运行结果 1.下面程序的运行结果是( )。 main( ) {int a, b; a=23; b=87; printf("%d%d\n",a,b); } A. 23 B.23,87 C. a=23 D.2387 87 b=87 2.下面程序的运行结果是( )。 main( ) {float x, y; x=12.34; y=0.00045; printf("%f,%f",x,y); } A.12.34,0.00045 B.12.340000,0.000450 C.12.34 0.00045 D.12.340000 0.000450 3.下面程序的运行结果是( )。 main( ) {int h=34, k=56; printf("h=%d\nk=%d\n",h,k); } A. h=34 B.h=34 k=56 C.34 56 D. 34 k=56 56 4.下面程序的运行结果是( )。 main( ) {float x=12.34567, y=345.2354; printf("x=%5.3 f, y=%5.3 f ",x,y); } A.12.346,345.235 B.x=12.346, y=345.235 C.12.345670,345.235000 D.x=12.34567, y=345.2354 5.下面程序的运行结果是( )。 main( ) {int s=−3, w=5; printf("%u, %u, %d, %d",s,w,s,w); } A.−3,5,−3,5 B.−3 5 −3 5 C.65533,5,−3,5 D.65533,65531,−3,5
习题二学号 专业: 姓名: 运行下面程序时若从键盘输入:123456789,输出结果是( scanf("%3d%3d%3d",&a,&b,&c); printf(a=%d, b=%d, c =%d", a, b, c) A.a=123,b=45,c=678 B.a=123b=454c=678 C.123,45,678 D.a=123,b=456,c=789 7.运行下面程序时若从键盘输入:123456789,」输出结果是()。 main () fint a, b, c: scanf( % d%3d3d",a, &b, &c) printf(a=%d, b=%d, c=%d", a, b, c) A.a=123,b=45,c=678 B.a=123,b=456,c=789 C.123,456,789 D.a=123b=456c=789 8.以下程序若a=12,b=45,c=3467,正确的数据输入方法是() main() int a scanf("a=%dB=%dc=%d",&a, &b, &c) printf("%d, %d, %d\n", a, b, c) A.a=12b=45c=3467 B.12453467 C.a=12B=45c=3467 D.a=12b=45c=3467 填空题 1.C语句的最后用 结束 2.执行 printf("%d",045);函数的结果是 3.执行 printf("%un",-0x2a);函数的结果是 4.若x是整型,且x=-1,执行 printf("%oⅦn",x);函数的结果是 若一个C程序包含若干个函数,程序的执行总是从 函数开始
- 3 - 习题二 学号: 专业: 姓名: 6.运行下面程序时若从键盘输入:123 45 6789 输出结果是( )。 main( ) { int a, b, c; scanf("%3d%3d%3d",&a,&b,&c); printf("a=%d, b=%d, c =%d", a,b,c) ; } A.a=123, b=45, c=678 B.a=123 b=454 c=678 C.123, 45, 678 D.a=123, b=456, c=789 7.运行下面程序时若从键盘输入:123456789 输出结果是( )。 main( ) {int a, b, c; scanf("%3d%3d%3d",&a,&b,&c); printf("a=%d, b=%d, c=%d",a,b,c); } A.a=123, b=45, c=678 B.a=123, b=456, c=789 C.123, 456, 789 D.a=123 b=456 c=789 8.以下程序若 a=12, b=45, c=3467, 正确的数据输入方法是( )。 main( ) {int a, b, c; scanf("a=%dB=%dc=%d",&a,&b,&c); printf("%d, %d, %d\n",a,b,c); } A.a=12 b=45c=3467 B.12 45 3467 C.a=12B=45c=3467 D.a=12 b=45 c=3467 二.填空题 1.C 语句的最后用 结束。 2.执行 printf("%d",045); 函数的结果是 。 3.执行 printf("%u\n",-0x2a); 函数的结果是 。 4.若 x 是整型,且 x = −1,执行 printf("%o\n", x ); 函数的结果是 。 5.若一个 C 程序包含若干个函数,程序的执行总是从 函数开始
习题三学号 专业: 姓名: 1.设a=1,b=2,c=3,写出下列关系表达式的值 (1)(a(a=c 2.设a=1,b=2,c=3,d=4写出下列逻辑表达式的值 (1)a&&b&&c (2)a‖|!b (3)+a‖lb++&&++c‖ (4)(!(a+b)+c-1)&&(b+c/2) (5)a!=11&&bb)&&(y=c>d)后,x,y 的值分别为 6.在以下一组运算符中,优先级最高的运算符是() B D.&& 7.以下程序的运行结果是 main I int a=-l,b=4,k k=(++a=10ora=10 C.a>=10|la=10&&a<=0 若a,b,c均为int型变量,则执行以下语句后,a,b,c的值分别为 tta ++b&&++c
- 4 - 习题三 学号: 专业: 姓名: 1.设 a=1, b=2, c=3,写出下列关系表达式的值 (1)(a(a=c 。 2.设 a=1, b=2, c=3, d=4 写出下列逻辑表达式的值 (1)a && b && c 。 (2)a || !b || !c 。 (3)++a || b++ && ++c || d++ 。 (4)(!(a+b)+c−1)&& (b+c/2) 。 (5)a !=11 && bb) && (y=c>d)后,x,y 的值分别为 。 6.在以下一组运算符中,优先级最高的运算符是( ) A.=10 or a=10 | a=10 || a=10 && a<=0 9.若 a,b,c 均为 int 型变量,则执行以下语句后,a,b,c 的值分别为 。 a=b=c=1; ++a || ++b && ++c
习题三学号 专业: 姓名: 10.给出下列程序的输出结果 (1)main( Hint a, b, c: if (a>b) if (a>c) printf("%c \n", a) e⊥se else if (b>c) printf( %c \n", b) else printf(%c\n", c) 结果是: (2)main( intx=100,a=10,b=20,OK1=5,0K2=0 if(b!=15) if (0K1)x=1 e⊥se if(0K2)x=10 printf(%dn”,x) 结果是: (3)运行两次下面的程序,如果分别从键盘上输入数值6和4,其运行结果分别为 main Int X scanf(%d",&x) if (x++>5) printf("%d",x) else printf( %d \n", x--) 输入6时,结果是 输入4时,结果是 11.若有定义: float x;inta,b;再有下面4个 swi tch语句 A. switch(x) Icase 1.0: printf("*\n") case 2.0: printf("**\n): I B. switch(x) Icase 1, 2: printf("*\n";) case 3: printf("**\n"): 1 C. switch(a+b) case l printf("=\n") case 1+2: printf("**\n"): I D. switch(a+b) Icase 1: printf("*\n") case 2: printf("**\n"): 正确的 switch语句是(),其它 switch语句错在什么地方?
- 5 - 习题三 学号: 专业: 姓名: 10.给出下列程序的输出结果 (1) main( ) {int a, b, c; a='E'; b='J'; c='W'; if (a>b) if (a>c) printf("%c\n",a); else printf("%c\n",c); else if (b>c) printf("%c\n",b); else printf("%c\n",c); } 结果是: (2) main( ) {int x=100, a=10, b=20, OK1=5, OK2=0; if (a5) printf("%d", x); else printf("%d\n",x−−); } 输入 6 时,结果是: 输入 4 时,结果是: 11.若有定义:float x; int a, b; 再有下面 4 个 switch 语句 A.switch(x) {case 1.0: printf("\n"); case 2.0: printf("\n");} B.switch(x) {case 1,2: printf("\n";) case 3: printf("\n");} C.switch(a+b); {case 1 : printf("\n"); case 1+2: printf("\n");} D.switch(a+b) {case 1: printf("\n"); case 2: printf("\n");} 正确的 switch 语句是( ),其它 switch 语句错在什么地方?
习题四学号 专业: 姓名: 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 (yamax)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 (yamax) 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 (i0 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 (i0; 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;ieps; 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); }