一、选择题:(以下各题□代表空格。)
1. 以下程序运行的结果是: #include printf(“%d,%d\\n”,m++,--n); } A)5,9 B)6,9 C)5,10 D)6,10 2. 以下程序运行的结果是: #include {int a=201,b=012; printf(“%2d,%2d\\n”,a,b); return 0 } A)01,12 B)201,10 C)01,10 D)20,01 3. 有定义语句int a,b;若要通过语句scanf(“%d,%d,”&a,&b);使变量a得到数值6,变 量b得到数值5,下面输入形式,错误的是: A)6,5<回车> B)6,□□<回车> C)6 5<回车> D)6,<回车>5<回车> 4. 设有如下程序: #include {char ch1=’A’,ch2=’a’; printf”%c\\n”,(ch1,ch2)); return 0; } 则以下叙述正确的是: A) 程序的输出结果为大写字母A; B) 程序的输出结果为小写字母a; C) 运行时产生错误信息; D) 格式说明符的个数少于输出项个数,编译出错。 5. 以下程序运行的结果是: #include {int x1=0xabc,x2=oxdef; x2-=x1; printf(“%X\\n”,x2); return 0; } A)ABC B)0XABC C)0X333 D)333 6. 以下程序输出的结果是: #include { printf(“\\n*s1=%15s*”,”chinabeijing”); printf(“\\n*s2=%-5s*”,”chi”); } A)*s1=chinabeijing□□□* S2=**chi* B)*s1=chinabeijing□□□* *s2=chi□□* C)*s1=*□□chinabeijing* *s2=□□chi* D)*s1=□□□chinabeijing* *s2=chi□□* 7. 已有定义int a=-2;和输出语句:printf(“%8lx”,a);以下正确的描述是: A) 整形变量的输出格式符只有%d一种; B) %x是格式符的一种,它可以适应与任何一种类型的数据; C) %x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D) %8lx不是错误的格式符,其中数字8规定了输出字段的宽度。 8. 以下C程序的运行结果是: #include {long y=-43456; printf(y=%-8ld\\n”,y); printf(y=%-08ld\\n”,y); printf(y=%08ld\\n”,y); printf(y=%+8ld\\n”,y); return 0; } A y=□□-43456 y=-□□43456 y=-0043456 y=-43456 y=-43456 y=-43456 y=-0043456 B y=-43456 y=-43456 y=-0043456 y=+□-43456 D y=□□-43456 y=-0043456 y=00043456 C y=□□-43456 9. 以下程序运行的结果是: #include printf(“y=%3o\\n”,y); printf(“y=%8o\\n”,y); printf(“y=%#8o\\n”,y); return 0; } A y=□□□2456 y=□□□□□□□□2456 y=########2456 y=2456 y=□□□□2456 y=□□□02456 y=+43456 B y=□□□4630 y=□□□□□□□□4630 y=########4630 D y=4630 y=□□□□4630 y=□□□04630 C 10. 以下程序运行的结果是: #include { long y=23456; printf(“y=%3x\\n”,y); printf(“y=%8x\\n”,y); printf(“y=%#8x\\n”,y); return 0; } A Y=5ba0 Y=□□□□5ba0 Y=□□0x5ba0 Y=5ba0 Y=5ba0 Y=0x5ba0 B Y=□□□5ba0 Y=□□□□□□5ba0 Y=□□0x5ba0 D Y=5ba0 Y=□□□□5ba0 Y=####5ba0 C 11. 若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是: A) scanf(“%d%lx,%d”,&x,&y,&z); B) scanf(“%2d*%d%lf”,&x,&y,&z); C) scanf(“%x%*d%o”,&x,&y); D) scanf(“%x%o%6.2f”,&x,&y,&z); 12. 如有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10、20、A、B,当从第一 列开始输入数据时,正确的数据输入方式为: int a1,a2;char c1,c2; scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2); A) 10A□20B<回车> B)10□A□20□B<回车> B) 10A□20B<回车> D) 10A20□B<回车> 13. 已有定义int x;float y;且执行scanf(“%3d%f”,&x,&y);语句,若从第一列开始输入 数据12345□678<回车>,则x的值为(【1】 )y的值为(【2】 ) 【1】:A) 12345 B)123 C)45 D)345 【2】:A)无定值 B)45.000000 C)678.000000 D)123.000000 14. 根据以下定义语句和数据的输入方式,scanf语句的正确形式应为: 已有定义:float f1,f2; 数据的输入方式:4.52<回车> 3.5<回车> A)scanf(“%f,%f”,&f1,&f2); B) scanf(“%f%f”,&f1,&f2); C) scanf(“%3.2f %2.1f”,&f1,&f2); D) scanf(“%3.2f%2.1f”,&f1,&f2); 15. 阅读下列程序,当输入数据的形式为25,13,10<回车>,程序的输出结果为: #include scanf(“%d%d%d”,&x,&y,&z); printf(“x+y+z=%d\\n”,x+y+z); return 0; } A)x+y+z=48 B) x+y+z=35 C) x+z=35 D)不确定值 16. 设有以下程序: #include {char c1,c2,c3,c4,c5,c6; scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4); c5=getchar(); c6=getchar(); putchar(c1); puchar(c2); printf(“%c%c\\n”,c5,c6); return 0; } 若运行时从键盘输入数据: abc<回车> defg<回车>则输出的结果是: A)abcd B)abde C)abef D)abfg 17. 以下针对scanf函数的叙述中,正确的是: A) 输入项可以为一实型常量,如scanf(“%f”,3.5); B) 只有格式控制,没有输入项,也能进行正确输入,如scanf(“a=%d,b=%d”); C) 当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 scanf(“%4.2f”,&f); D) 当输入数据时,必须指明变量的地址,如scanf(“%f”,&f); 18. 根据下面的程序及数据的输入方式和输出方式,程序中输入语句的正确形式应该为: #include { char ch1,ch2,ch3; 输入语句; printf(“%c%c%c”,ch1,ch2,ch3); return 0; } 输入形式:A□B□C<回车> 输出形式:A□B A) scanf(“%c%c%c”,&ch1,&ch2,&ch3); B) scanf(“%c,%c,%c”,&ch1,&ch2,&ch3); C) scanf(“%c %c %c”,&ch1,&ch2,&ch3); D) scanf(“%c%c”,&ch1,&ch2,&ch3); 19. 有输入语句:scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为使变量a的值为1,b的值为3, c的值为2,从键盘输入数据的正确形式应当是: 。 A)132<回车> B)1,3,2<回车> C)a=1□b=3□c=2<回车> D)a=1,b=3,c=2<回车> 20. 以下不符合C语法的赋值语句是: 。 A)m=(2+1,m=1); B) m=n=0; C)m=1,n=2 D)n++; 21. 以下能正确定义整型变量a,b,c并为其赋初值5的语句是: 。 A)int a=b=c=5; B) int a,b,c=5; C)a=5,b=5,c=5; D)a=b=c=5; 22. 已知ch是字符型变量,下面不正确的赋值语句是: 。 A)ch=’a+b’; B) ch=’\\0’; C)ch=’7’+’9’; D)ch=5+9; 23. 已知ch是字符型变量,下面正确的赋值语句是: A)ch=’123’; B)ch=’\\xff’; C)ch=’\\08’; D)ch=”\\”; 24. 若有以下定义,则正确的赋值语句是: 。 int a,b; float x; A) a=1,b=2, B)b++; C)a=b=5 D)b=int(x); 25. 设x,y均为float型变量,则以下不合法的赋值语句是: 。 A) ++x; B)y=(x%2)/10; C)x*=y+8; D)x=y=0; 26. 设x,y,z为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x,y,z的值分别 为: 。 A X=10 Y=15 Z=10 B X=10 Y=10 Z=10 C X=10 Y=10 Z=15 D X=10 Y=5 Z=10 27. 设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句 是: 。 A) z=exp(y)+fabs(x); B) y=log10(y)+pow(y); C) z=sqrt(y-z); D) x=(int)(atan2((double)x,y)+exp(y-0.2)); 程序分析题: 1、以下程序运行的结果是: 。 #include printf(“\\ni:dec=%d,oct=%o,hex=%x,usigned=%u\\n”,i,i,i,i); return 0; } 2、以下程序运行的结果是: 。 #include {printf(“*%f,%4.3f*\\n”,3.14,3.1415); return 0;} 3、以下程序运行的结果是: #include printf(“c:dec=%d,oct=%o,hex=%x,ASCII=%c\\n”,c,c,c,c); return 0; } 4、已有定义int d=-2;执行以下语句后,输出的结果是 。 printf(“*d(1)=%d,d(2)=%3d,d(3)=%-3d*\\n”,d,d,d); printf(“*d(4)=%o,d(5)=%7o,d(6)=%-7o*\\n”,d,d,d); 5、已有定义int d=-2;执行以下语句后,输出的结果是 。 printf(“*d(1)=%d*d(2)=%3d*d(3)=%-3d*\\n”,d,d,d); printf(“*d(4)=%o*d(5)=%7o*d(6)=%-7o*\\n”,d,d,d); 6、已有定义float d1=3.5,d2=-3.5;执行以下语句后,输出的结果是 。 printf(“*d(1)=%e*d(2)=%.4e*d(3)=%10.4e*\\n”,d1,d1,d1); printf(“*d(4)=%e*d(5)=%.6e*d(6)=%-12.5e*\\n”,d2,d2,d2); 7、以下程序输出的结果是: 。 #include { int x=1,y=2; printf(“x=%d y=%d * sum *=%d\\n”x,y,x+y); printf(“10 Squared is :%d\\n”,10*10); return 0; } 8、以下程序输出的结果是: 。 #include {int x=10;float pi=3.1416; printf(“(1)%d\\n”,x); printf(“(2)%6d\\n”,x); printf(“(3)%f\\n”,56.1); printf(“(4)%14f\\n”,pi); printf(“(5)%e\\n”,568.1); printf(“(6)%14e\\n”,pi); printf(“(7)%g\\n”,pi); printf(“(8)%12g\\n”,pi); return 0; } 9、以下程序输出的结果是: 。 #include {int a=123.456;float b=8765.4567; printf(“(1)%f\\n”,a); printf(“(2)%14.3f\\n”,a); printf(“(3)%6.4f\\n”,a); printf(“(4)%lf\\n”,b); printf(“(5)%14.3lf\\n”b); printf(“(6)%8.4lf\\n”,b); printf(“(7)%.4f\\n”,b); return 0; } 10、以下printf语句中*号的作用是【1】,输出结果是【2】 #include printf(“##%*d\\n”,i,i); i++; printf(“##%*d\\n”,i,i) i++; printf(“##%*d\\n”,i,i) return 0; } 11、以下printf语句中负号号的作用是【1】,输出结果是【2】 #include {int x=12;double a=3.1415926; printf(“%6d##\\n”,x); printf(“%-6d##\\n”,x); printf(“%14.10lf##\\n”,a); printf(“%-14.10lf##\\n”,a); return 0; } 12、以下程序运行的结果是: 。 #include {int a=325;double x=3.1415926; printf(“a=%+06dx=%+e\\n”,a,x); return 0; } 13、以下程序运行的结果是: 。 #include printf(“a=%o a=%#o\\n”,a,a); printf(“a=%x a=%#x\\n”,a,a); return 0; } 14、以下程序运行的结果是: 。 #include { int n=100;char c; float f=10.0; double x; x=f*=n/=(c=48); printf(“%d%d%3.1f%3.1f\\n”,n,c,f,x); return 0; } 15、有以下程序: #include {int k=0;char c1=’a’,c2=’b’; scanf(“%d%c%c”,&k,&c1,&c2); printf(“%d,%c,%c\\n”,k,c1,c2); return 0; } 若运行时从键盘输入:55 A B<回车>,则输出的结果是 。 16、以下程序运行的结果是 。 #include printf(“%o\\n”,m); return 0; } 17、以下程序运行的结果是 。 #include printf(“%d\\n”,n); return 0; } 18、若要下列程序的输出结果为8.00,则【 】中应填入的是 。 #include { int k=2,m=5; float s,x=1.2,y=[ ]; s=2/3+k*y/x+m/2; printf(“%4.2f\\n”,s); return 0; } 19、已知字母A的ASCII码值为65,以下程序输出的结果是: 。 #include a=’A’+’4’-‘3’; b=’A’+’6’-‘2’; printf(“a=%d,b=%c\\n”,a,b); return 0; } 20、假设变量a和b均为整型,以下语句可以不借助任何变量把a和b中的值进行交换,请填空: a+=[ ];b=a-[ ];a-=[ ]; 21、假设变量a,b,c均为整型,以下语句借助中间变量t把a,b,c中的值进行交换,即把b中值给a,把c中的值给b,把a中的值给c.例如:交换前,a=10,b=20,c=30,交换后,a=20,b=30,c=10.请填空: 【 】; a=b; b=c; 【 】; 22、设有一输入函数scanf(“%d”,k);它不能使float类型变量k得到正确数值的原因是【1】未指明变量k的地址和【2】格式控制符与变量类型不匹配。 23、已有定义int a;float b,x;char c1,c2;为使a=3、b=6.5、x=12.6、c1=’a’、c2=‘A’,正确的scanf函数调用语句是【 】,数据输入的形式应为【 】。 24、若有以下定义和语句,为使变量c1得到字符‘A’,变量c2得到字符‘B’,正确的输入形式是:【 】 char c1,c2; scanf(“%4c%4c”,&c1,&c2); 25、执行以下程序时,若从第一列开始输入数据,为使变量 a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’,正确的数据输入形式是【 】 #include { int a,b;float x,y;char c1,c2; scanf(“a=%d b=%d”,&a,&b); scanf(“x=%f y=%f”,&x,&y); scanf(“c1=%c c2=%c”,&c1,&c2); printf(“a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c”,a,b,x,y,c1,c2); return 0; } 编程题: 编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆的周长cl、圆的面积cs和圆柱的体积cvz。输出计算结果时要求有文字说明,并取小数点后2位数字。 编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。 编写程序,从键盘输入两个整数,分别计算他们的商和余数,输出时,商要求保留两位小数,并对第三位四舍五入。 参考答案: 1-5:ABCBD,6-10:DDCDA,11-15:DAB(B)BD,16-20:BDADC,21-27:AABBBAD 填空: 1、 i:dec=-4,otc=177774,hex=fffc,unsigned=65532 2、 *3.140000,3.142* 3、 c:dec=120,otc=170,hex=78,ASCII=x 4、 *d(1)=-2*d(2)= □-2*d(3)=-2□* *d(4)=177776*d(5)= □177776*d(6)=177776□* 5、 *d(1)=-2*d(2)= □-2*d(3)=-2□* *d(4)=fffe*d(5)= □□fffe*d(6)=fffe□□* 6、 *d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=□3.500e+00* *d(4)=-3.50000e+00*d(5)-3.50000e+00*d(6)=-3.5000e+00□* 7、 x=1 y=2 *sum*=3 10 Squared is :100 8、 1) 10 2) □□□□10 3)56.100000 4) □□□□□□3.141600 5)5.68100e+02 6) □□□3.14160e+00 7)3.1416 8) □□□□□□3.1416 9、 1)123.456.000 2) □□□□□□□123.457 3)123.4560 4)8765.456700 5) □□□□□□8765.457 6)8765.4567 7)8765.4567 10、 1)可以使同一输出语句中的输出宽度得以改变 2)##1 ##2 ##□□3 11、 输出数据左对齐 2)□□□□12## 12□□□□## □□3.141592600## 3.141592600□□## 12、 a=+00325□□□X=+3.14159e+00 13、 a=374□□a=0374 a=fa□□=0xfc 14、 2 48 20.0 20.0 15、 55, ,A 16、 261 17、 20 18、 3.6 19、 a=66,b=E 20、 1)b 2)b 3)b 21、 1)t=a 2)c=t 22、 1)格式控制符与变量类型不匹配。 scanf语句的正确形式应该是:scanf(“%f”,&k); 2)位指明变量k的地址 23、 1)scanf(“%d%f%f%c%c”,&a,&b,&c1,&c2); 2)3□6.5□12.6Aa<回车> 24、 A□□□B□□□<回车> 25、 a=3□b=7x=8.5□y=71.82c1=A□c2=a<回车> 因篇幅问题不能全部显示,请点此查看更多更全内容