C语言练习题---第三章1、有以下程序#include<stdio.h>main(){short c=124;c=c_______;printf(“%d\n”,C);}若要使程序的运行结果为248,应在下划线处填入的是A)>>2 B)|248 C)&0248 D)<<12、以下程序运行后的输出结果是2008。
#include<stdio.h>main(){int a=200,b=010;printf(”%d%d\n”,a,b);}3、有以下程序#include<stdio.h>main(){int x,y;Scanf(“%2d%ld”,&x,&y);printf(“%d\n”,x+y);}程序运行时输入:程序的运行结果是34579。
4、有以下程序#include <stdio.h>Void main(){char a,b,c,d;scanf(”%c%c”,&a,&b);c=getchar(); d=getchar();printf(”%c%c%c%c\n”,a,b,c,d);}当执行程序时,按下列方式输入数据(从第一列开始,<CR>代表回车,注意:回车是一个字符)12<CR>34<CR>则输出结果是:()A、1234B、12C、12D、123 345、有以下程序,其中k的初值为八进制数#include <stdio.h>main(){int k=011;printf(”%d\n”,k++);}程序运行后的输出结果是D(A)12 (B)11 (C)10 (D)96、有以下程序(暂不做)#include<stdio.h>void fun (char*c,int d){*c=*c+1;d=d+1;printf(”%c,%c,”,*c,d);}main(){char b=’a’,a=’A’;fun(&b,a); printf(”%c,%c\n”,b,a);}程序运行后的输出结果是AA)b,B,b,A B)b,B,B,A C)a,B,B,a D)a,B,a,B7、以下程序#include <stdio.h>#define SUB(a) (a)-(a)main(){int a=2,b=3,c=5,d;d=SUB(a+b)*c;printf(”%d\n”,d);}程序运行后的结果是CA)0 B)-12 C)-20 D)108、有以下程序#include <stdio.h>main(){int a=2,b=2,c=2;printf(”%d\n”,a/b&c);}程序运行后的结果是CA)0 B)1 C)2 D)39、将值为三位正整数的变量x中的数值按照个位、十位、百位的顺序拆分并输出。
(暂不做)10、阅读以下程序#include <stdio.h>main(){ int case; float printF;printf(“请输入2个数:”);scanf(“%d %f”,&case,&printF);print f(“%d %f\n”,case,printF);}该程序编译时产生错误,其出错原因是A)定义语句出错,case是关键字,不能用作用户自定义标识符B)定义语句出错,printF不能用作用户自定义标识符C)定义语句无错,scanf不能作为输入函数使用D)定义语句无错,printf不能输出case的值11、有以下程序#include <stdio.h>main(){ int a=1,b=0;printf("%d,",b=a+b);printf("%d\n",a=2*b);} 程序运行后的输出结果是A)0,0B)1,0C)3,2D)1,212、有以下程序#include <stdio.h>main(){ char c1,c2;c1='A'+'8'-'4';c2='A'+'8'-'5';printf("%c,%d\n",c1,c2);}已知字母A的ASCII码为65,程序运行后的输出结果是A)E,68B)D,69C)E,DD)输出无定值13、若有以下程序段int r=8;printf(“%d\n”,r>>1);输出结果是A)16B)8C)4D)215、若有语句double x=17;int y;,当执行y=(int)(x/5)%2;之后y的值为(1)16、以下程序运行后的输出结果是 10 。
#include <stdio.h>main(){ int x=20;printf("%d",0<x<20);printf("%d\n",0<x&&x<20); }17、程序段:int x=12; double y=3.; printf(“%d%8.6f”,x,y);的输出结果是A)123.B)12 3. C)12,3. D)123.18、#include<stdio.h>main(){ int a1,a2;char c1,c2;scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);printf(“%d,%c,%d,%c”,a1,c1,a2,c2);}若想通过键盘输入,使得a1的值为12,a2的是为34,c1的值为字符a,c2的值为字符b,程序输出结果是:12,a,34,b,则正确的输入格式是(以下代表空格,<CR>代表回车)A)12a34b<CR> B)12 a 34 b<CR>C)12,a,34,b<CR> D)12 a34 b<CR>19、有以下程序#include <stdio.h>#define PT 3.5;#define S(x) PT*x*x;mian(){ int a=1, b=2; printf(“%4.1f\n”,S(a+b));}程序运行后输出的结果是A)14.0 B)31.5 C)7.5 D)程序有错无输出结果20、有以下程序#include <stdio.h>main(){ int a=5,b=1,t;t=(a<<2|b); printf(“%d\n”,t);}程序运行后的输出结果是A)21B)11 C)6 D)121若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句printf (“x/y=%d”,x/y);补充完整,使其输出的计算结果形式为:x/y=1122、有以下程序#include<stdio.h>main(){char c1,c2;scanf("%c",&c1);while(c1<65||c1>90)scanf("%c",&c1);c2=c1+32;printf("%c,%c\n",c1,c2);}程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)23、以下选项中可作为C语言合法常量的是()。
A)-80.B)-080 C)-8e1.0 D)-80.0e24、以下不能定义为用户标识符的是()。
A)Main B)_0 C)_int D)sizeof25、以下选项中,不能作为合法常量的是()。
A)1.234e04 B)1.234e0.4C)1.234e+4 D)1.234e026数字字符0的ASCII值为48,若有以下程序:main(){ char a='1',b='2';printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是()。
A)3,2 B)50,2 C)2,2D)2,5027、有以下程序:#include<stdio.h>main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是()。
A)B)C)D)28、有定义语句:int b;char c[10]; , 则正确的输入语句是()。
A)scanf("%d%s",&b,&c); B)scanf("%d%s",&b,c);C)scanf("%d%s",b,c); D)scanf("%d%s",b,&c);29、有以下程序:main(){ int m,n,p;scanf("m=%dn=%dp=%d",&m,&n,&p);printf("%d%d%d\n",m,n,p); }若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是A)m=123n=456p=789 B)m=123 n=456 p=789C)m=123,n=456,p=789 D)123 456 78930、有以下程序:#include<stdio.h>main(){int a,b,d=25;a=d/10%9;b=a&&(-1);printf("%d,%d\n",a,b);} 程序运行后的输出结果是()。
A)6,1 B)2,1C)6,0 D)2,031、有以下程序:main(){ int i=1,j=2,k=3;if(i++==1&&(++j==3||k++==3))printf("%d %d %d\n",i,j,k);}程序运行后的输出结果是()。
A)1 2 3 B)2 3 4 C)2 2 3 D)2 3 332、以下程序:#define P 3#define F(int x) {return(P*x*x);}main(){ printf("%d\n",F(3+5)); }程序运行后的输出结果是()。
A)192 B)29 C)25 D)编译出错33、有以下程序:main(){int c=35; printf("%d\n",c&c);}程序运行后的输出结果是()。