C语言程序设计复习题有答案.doc_第1页
C语言程序设计复习题有答案.doc_第2页
C语言程序设计复习题有答案.doc_第3页
C语言程序设计复习题有答案.doc_第4页
C语言程序设计复习题有答案.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计复习题一、 填空题1、 C 语言的源程序必须通过编译和链接后,才能被计算机执行。2、 C 语言的源程序必须通过编译和连接后,才能被计算机执行。3、 C语言中的标示符可分为关键字、拥护标示符和预定义标识符3类。4、 C语言中的标示符可分为关键字、用户标识符和预定义标示符3类。5、 在C语言中,用关键字float定义单精度实型变量。6、 在C语言中,用关键字double定义双精度实型变量。7、 在C语言中,用关键字char定义字符型变量。8、 在C语言的赋值表达式中,赋值好左边必须是变量。9、 设C语言中的一个int型数据在内存中占2个字节,则int型数据的取值范围为-32768-32768。10、 若有定义语句:int s=6;则表达式s%2+(s+1)%2的值为1。11、 若a是int型变量,且a的初值为6,则执行表达式a+=a-=a*a后a的值为-60。12、 若a是int型变量,则执行表达式a=25/3%3后a的值为2。13、 在程序运行过程中,其值不能被改变的量称为常量。14、 C程序中定义的变量,代表内存中的一个存储单元。15、 C语言中,int类型数据字符占内存2个字节。16、 C语言中,char类型数据占内存1个字节。17、 C语言的字符常量是用单引号括起来的一个字符。18、 语句printf(“n”);的作用是换行输出。19、 10/3的结果是3。20、 10%3的结果是1。21、 C语句的最后用;结束。22、 要使用putchar函数,在#include命令行中应包含的头文件是#include。23、 要使用getchar函数,在#include命令行中应包含的头文件是#include。24、 为表示关系|x|9;应使用的C语言表达式是x=9。25、 为表示关系|x|9;应使用的C语言表达式是x=-9&xbc的值是0。29、 以下程序段的输出结果是83。int x=0123;printf(“%dn”,x);30、 以下程序段的输出结果是291。int x=0x123;printf(“%dn”,x);31、 以下程序段的输出结果是 x=0321;printf(“%xn”,x); 32、 若A的ASCII为65,则以下程序段的输出结果是D。char x=A;printf(“%c”, x+3);33、 以下程序段的输出结果是51。char x=0;printf(“%d”, x+3);34、 以下程序段的输出结果是0 0.500000int n=2; float x=2.0;printf(“%d %f”,1/n,1/x);35、 以下程序段的输出结果是67.000000int n=2; float x=2.0;char a=A;printf(“ %f”,1/n+x+a);36、 以下程序段的输出结果是x=3.600000 i=3。float x=3.6; int i; i=(int)x;printf(“ x=%f i=%d”,x,i);37、 以下程序段的输出结果是45.500000。float x=9.0;printf(“ %f”,x=45.5);38、 以下程序段的输出结果是-100。int x=100,y=200;printf(“ %d”,(x+y,x-y);39、 以下程序的输出结果为-4.177774,fffc,65532。main()short I;i=-4;printf(“n%d,%o,%x,%u”,i,i,i,i);40、 以下程序的输出结果为*3.140000 3.142。main()printf(“*%f,%4.3fn”,3.14,3.1415);41、 以下程序的输出结果为000325,3.141596e+000。main()int a=325;double x=3.141596;printf(“%06d,%+en”,a,x);42、 若从键盘上输入987654321,以下程序的输出结果是32.00。main() int a;float b,c; scanf(%3d%3f%2f,&a,&b,&c); printf(%6.2f,c); 43、 以下程序段的输出结果是a=12。int a=12;if(a12) printf(“a=%d”,a);else printf(“a=%d”,a); 44、 以下程序段的输出结果是*。int a=1;if(-a) printf(“#”);else printf(“*”); 45、 若变量已正确定义,以下语句段的输出结果是*%*#。x=0; y=2; z=2; switch (x) case 0: switch(y=2) case 1: printf(“*”); case 2: printf(“%”); break; case 1 : switch( z) case 1: printf( “$ ); case 2: printf(“*”); default : printf(“#”); 46、 以下程序的输出结果是a=2,b=1main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0:a+;break; case 1:b+;break; case 2: a+;b+;break; printf(na=%d,b=%d,a,b); 47、 以下程序的运行结果是1。main()int x,y,z;x=3;y=3;z=x=y;printf(“%dn”,z);48、 以下程序的运行结果是1,0。main()int x,y,z;x=1;y=1;z=0;x=x|y&z;printf(“%d,%d”,x,x&!y|z);49、 以下程序的运行结果是F。main()if(2*2=5=0&x=3000&x=6000&xb) c=1;else if(a=b) c=0;else c=-1;printf(“%dn”,c);54、 以下程序的输出结果是01。main()int x,y,z;x=3;y=z=4;printf(“%d,”(x=y=x)?1:0);printf(“%dn”,z=y&y=x);55、 若a、b、c均已正确定义且a=0、b=2、c=3,则以下程序的输出是break; case 2: printf(“%”);break;case 1: switch(c)case 1:printf(“$”); case 2:printf(“*”);break; default:printf(“#”);56、 以下程序段的输出结果是*1*57、 *3*。int x=1,y=0;switch(x)case 1:switch(y)case 0:printf(“*1*n”);break; case 1:printf(“*2*n”);break;case 2:printf(“*3*n”);58、 当运行以下程序时,从键盘输入:right?,则输出结果是sjhiu。main()char c;while(c=getchar()!=?) putchar(+c);59、 下面程序段的运行结果是*。x=2;doprintf(“*”);x-;while(!x=0);60、 下面程序段的运行结果是-5。i=1;a=0;s=1;doa=a+s*i;s=-s;i+;while(i=10);printf(“%d”,a);61、 下面程序段的运行结果是16,15。main()int i,x,y;i=x=y=0;do+i;if(i%2!=0)x=x+i;i+;y=y+y+;while(i=7);printf(“%d,%d”,x,y);62、 下面程序段的运行结果是sum=19。main()int i,t,sum=0;for(t=i=1;i=10;)sum+=t;+i; if(i%3=0) t=-i; else t=i;printf(“sum=%d”,sum);63、 下面程序段的运行结果是*64、 #。main()int i;for(i=1;i=5;i+)switch(i%2)case 0:i+;printf(“#”);break;case 1:i+=2;printf(“*”);default:printf(“n”);65、 下面程序段的运行结果是*#。main()int i,j=4; for(i=j;i=2*j;i+)switch(i/j)case 0: case 1:printf(“*”);break; case 2:printf(“#”);66、 以下程序的运行结果是3 5 8。main()int x5,i;x0=1;x1=2;for(i=2;i5;i+) xi=xi-1+xi-2;for(i=2;i5;i+)printf(“%d”,xi);67、 以下程序段的输出结果是8。int k=1,n=4,m=1;while(k=-n)m*=2;printf(“%dn”,m); 68、 (6.3 p107)以下程序段输出结果是0。 main() int x=2; while(-x); printf(%dn,x); 69、 以下程序段输出结果是16。 int i=0,sum=1; do sum+=i; while(i+5); printf(%dn,sum);70、 以下程序段的输出结果是11。int s=1,k=1;for(;k=10;k+)s=s+s/k;printf(“%dn”,s);71、 以下程序段的输出结果是*3#4*5int x;for(x=3;x6;+x) printf(x%2)?(*%d):(#%d),x); 72、 以下程序的输出结果是7/13=0.538461main()long a=7,b=13,c,i;printf(n%ld/%ld=%ld.,a,b,a/b);c=a%b;a=c;doa=a*10;for(i=1;i=10;i+)if(ab*i)printf(%ld,i-1);a=a-b*(i-1);break;while(a!=c);73、 以下程序的输出结果是100#define N 100main()int aN,i,j,k;for(i=2;iN;i+)ai=i;aN-1=0;for(i=2;ai;i+)for(j=i+1;aj;j+)if(aj%ai=0)for(k=j;ak;k+) ak=ak+1;while(ai)printf(%4d,ai+);74、 以下程序的输出结果是14。main() int arr10,i,k=0; for(i=0; i10; i+) arri=i; for(i=0; i4; i+) k+=arri*i;printf(“%dn”,k);75、 以下程序的输出结果是7fun(int x) int p; if(x=0|x=1)return(3); p=x-fun(x-2); return p; main() printf(%dn,fun(9);76、 以下程序的输出结果是120。fun(int num)int k=1;dok*=num%10;num/=10;while(num);return k;main()int n=456;printf(“%dn”,fun(n); 77、 以下程序的输出结果是120。funa(int a,int b)return a%b;funb(int a,int b)int c;a+=a;b+=b;c=funa(a,b);return c*c;main()int x=15,y=7;printf(“%dn”,funb(x,y);78、 以下程序段的输出结果是变量ab的地址。int *var,ab;ab=100;var=&ab;ab=*var+10;printf(“%xn”,var);79、 以下程序的输出结果是7010。int ast(int x,int y,int *cp,int *dp) *cp=x+y;*dp=x-y;main() int a,b,c,d;a=40;b=30;ast(a,b,&c,&d);printf(“%d%dn”,c,d);80、 以下程序的输出结果是18。main()int a=2,4,6,8,10,*p=a,y,z=0;for(y=0;y5;y+=2)z+=*(p+y);printf(%dn,z);81、 以下程序的输出结果是9。main() int a=1,3,5,7,9, *prt=&a0, x=4,y,z; for(y=0; y=10) uun+=t/10; uun=t%10; else uun=t;main() int i,n,aa10=0; scanf(“%d,%d,%d”,&n,&aa0,&aa1); for(i=1;in; i+) sub(i,aa);for(i=0;i=n;i+) printf(“%d”,aai);83、 下面程序的输出结果是6 F(char *s) char *p=s; while(*+p!=0); return(p-s); main()printf(%dn,F(ABCDEF);84、 以下程序的输出结果是5。fun(char *s, char a) int j=0; while(sj!=0) if(a=sj+)break; if(sj!=0)return j; else return -99;main()char *s=zxcevbn;printf(%dn, fun(s,v) );85、 (11.3 p263)以下程序的输出结果是6main() structcmplxint x;int y;cnum2=1,3,2,7;printf(%dn,cnum0.y/cnum0.x*cnum1.x);86、 二、 单项选择题(每题1分,共30分)1、 以下不符合C语法的赋值语句是【C】A.m=(2+1,m=1);B.m=n=0; C.m=1,n=2D.n+; 2、 设x、y均为float型变量,则以下不合法的赋值语句是【B】A.+x;B.y=(x%2)/10; C.x*=y+8;D.x=y=0; 3、 逻辑运算符两侧运算对象的数据类型【D】A.只能是0或1B.只能是0或非0正数 C.只能是整型或字符型数据D.可以是任何类型的数据4、 下列关系表达式中结果为假的是【C】A.0!=1B.2=8 C.(a=2*2)=2D.y=(2+2)=45、 判断char型变量ch是否为大写字母的正确表达式是【C】A.A=ch=A)&(ch=A)&(ch=Z)D.(A=ch)6、 设x、y和z是int型变量,且x=3,y=4,z=5,则下列表达式中值为0的是【D】A.x&yB.x=y C.x|y+z&y-zD.!(xy)&!z|1)7、 一个C程序的执行是从【A】A.本程序的main函数开始,到main函数结束B.本程序的第一个函数开始,到本程序文件的最后一个函数结束 C.本程序的main函数开始,到本程序文件的最后一个函数结束D.本程序的第一个函数开始,到本程序main函数结束 8、 以下叙述正确的是【C】A.在C程序中,main函数必须位于程序的最前面B.C程序的每行中只能写一条语句C.C语言本身没有输入输出语句D.在对一个C程序进行编译的过程中,可以发现注释中的拼写错误 9、 以下叙述不正确的是【D】A.一个C源程序可由一个或多个函数组成B.一个C源程序必须包含一个main函数C. C程序的基本组成单位是函数D.在C程序中,注释说明只能位于一条语句的后面 10、 C语言规定,在一个源程序中,main函数的位置【C】A.必须在最开始B.必须在系统调用的库函数的后面 C.可以任意D.必须在最后 11、 一个C语言程序是由【B】A.一个主程序和若干子程序组成B.函数组成 C.若干过程组成D.若干子程序组成 12、 设C语言中的一个int型数据在内存中占2个字节,则unsinged int 型数据的取值范围为【C】A.0-255B.0-32767 C.0-65535D.0-2147483647 13、 下列4组选项中,均是C语言关键字的选项是【B】A.auto enum includeB.switch typedef continue C.signed union scanf D.if struct type 14、 下列4组选项中,均不是C语言关键字的选项是【A】A.define IF typeB.getc char printf C.include scanf case D.while go pow 15、 (2.4)下面4个选项中,均是不合法的用户标示符的选项是【C】A.A P_0 do B.float la0 _A C.b-a goto int D._123 temp INT 16、 C语言中的标示符只能由字母、数字和下划线3种字符组成,且第一个字符【C】A.必须为字母B.必须为下划线 C.必须为字母或下划线D.可以是字母、数字和下划线中的任一种字符 17、 下面4个选项种,均是合法整型常量的选项是【A】A.160 -0xffff 0011 B.-0xcdf 01a 0xe C.-01 986,012 0668D.-0x48a 2e5 0x 18、 下面4个选项种,均是不合法的整型常量的选项是【D】A.00f1 -0xffff 0011 B.-0Xcdf 017 12,456 C.-018 999 5e2 D.-0x48eg -068 03f 19、 下面4个选项种,均是不合法的浮点数的选项是【B】A.160. 0.12 e3B.123 2e4.2 .e5 C.-.18123e4 0.0D.-e3 .234 1e3 20、 在C语言中,int、char和short三种类型数据在内存种所占用的字节数【D】A.由用户自己定义B.均为2个字节 C.是任意的D.由所用的机器字长决定 21、 若由代数式,则不正确的C语言表达式是【C】A.a/b/c*e*3B.3*a*e/b/c C.3*a*e/b*cD.a*e/c/b*3 22、 以下表达式值为3的是【B】A.16-13%10B.2+3/2 C.14/3-2D.(2+6)/(12-9) 23、 设有说明语句:int k=7,x=12;则以下能使值为3的表达式是【D】A.x%=(k%=5)B.x%=(k-k%5) C.x%=k-k%5D.(x%=k)-(k%=5) 24、 若x、i、j、k都是int型变量,则执行表达式x=(i=4,j=16,k=32)后x的值为【C】A.4B.16 C.32D.52 25、 假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是【B】A.7B.8 C.6D.2 26、 已知字母A的ASCII码为十进数65,且定义c2为字符型变量,则执行语句c2=A+6-3;后,c2中的值为【 A】A.DB.68 C.不确定D.C 27、 在C语言中,要求运算数必须是整型的运算符是【D】A./B.+ C.!=D.% 28、 若有说明语句:char c=72;则变量C【A】A.包含1个字符B.包含2个字符 C.包含3个字符D.说明不合法,c的值不确定 29、 设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f值的数据类型为【C】A.intB. floatC.doubleD.不确定 30、 在C语言中,char型数据在内存中的存储形式是【D】A.补码B.反码 C.原码D.ASCII码 31、 以下选项中不合法的用户标识符是【A】A)abc-01B)fileC)MainD)PRINTF32、 以下选项中不合法的用户标识符是【C】A)_123B)printfC)AD)Dim33、 可在C程序中用作用户标识符的一组标识符是:【B】 A) void define WORD B) as_b3 _123 If C) ! -abc case D) 2c DO SIG34、 以下选项中正确的整数型常量是:【B】A)12. B)-120C)1,000 D)4 5 635、 若int类型占两个字节,则以下程序段的输出是:【D】A) -1,-1 B) 1,32767C)-1,32768 D)-1,65535 int a=-1; printf(“%d,%un”,a,a);36、 以下选项中正确的实型常量是:【D】A)0 B) 3. 1415 C)0.329x102 D).871 37、 以下选项中不正确的实型常量是:【B】A)2.607E-1 B)0.8130EC)-77.77 D)456E-238、 C语言中运算对象必须是整型的运算符是:【A】A)% B)/ C) ! D) *39、 若变量已正确定义并赋值,符合C语言语法的表达式是:【B】A) a=a+7;B) a=7+b+c,a+C) int(12.3%4) D) a=a+7=c+b 40、 若有以下程序段,c3中的值是:【D】A) 0 B) 3/2C) 1.5 D) 1int c1=3, c2=2, c3;c3=c1/c2;41、 若变量已正确定义,以下程序段的输出结果是:【B】A)无定值B)5.17000C)5.168000D)5.16900x=5.16848;printf(“%fn”(int)(x*100+0.5)/100.0);42、 以下程序的输出结果是【C】A)0B)1C)3D)不确定的值main()int x=10,y=3;printf(“%d”,y=x/y); 43、 若有以下程序段,其输出的结果是:【C】A)5,4,5B)0,0,5C)1,1,5D)5,4,4int a=1,b=1,c=1c=(a-=a-5),(a=b,b+3);printf(“%d,%d,%dn”,a,b,c);44、 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是【C】A)a=b=c=100;B)d+;C)c+b;D)d=(c=22)-(b+);45、 以下合法的C程序赋值语句是【D】A)a=b=58B)k=int(a+b);C)a=34,b=43D)-i;46、 以下程序的输出是:【B】A)*6.5432 * B)*496.5432*C)*496.5* D)输出格式符不合法 float x=496.54321; printf(“*%-6.4f*n”,x);47、 若变量已正确说明为int类型,要给a、b、c输入数据,以下正确的输入语句是:【D】A)scanf(“%f%f%f”,&a,&b,&c);B)scanf(“%d%d%d”,a,b,c);C)scanf(“%D%D%D”,&a,&b,&c);D)scanf(“%d%d%d”,&a,&b,&c);48、 以下程序段的输出是:【C】A) |3.1415| B)| 3.0| C) | 3| D)| 3.| float a=3.1415;printf(“|%6.0f|n”,a);49、 以下程序段的输出是:【C】A) |2345.67800| B) |12345.6780|C) |12345.67800| D) |12345.678|printf(“|%10.5f|n”,12345.678); 50、 下列运算符中优先级最高的运算符是:【A】A)! B)% C)-= D)& 51、 下列运算符中优先级最低的运算符是:【A】A)| B)=y)&(y=z) B) (x=y)AND(y=z)C) (x=y=z) D) (x=y)&(y=z)53、 设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是:【D】A) a&b B) a=bC) a|b+c&b-c D) !(ab)&!c|1)54、 以下程序输出的结果是:【C】A)0B)1C) 2D)3main()int a=0,b=-1,c=2;if(a)if(b0)c=0;elsec+=1;printf(“%dn”,c);55、 若变量已正确定义,要将a和b中的数进行交换,下面不正确的语句是:【C】A)a=a+b,b=a-b,a=a-b;B)t=a,a=b,b=t;C)a=t;t=b;b=a;D)t=b;b=a;a=t;56、 执行以下程序段后的输出是【B】A.*B.语法错,不能正确执行 C.%cD.%int i=-1;if(i=0) printf(“*n”)else printf(“%n”);57、 以下程序的运行结果是【A】A.5,9B.6,9 C.5,10D.6,10main()int m=5,n=10;printf(“%d,%d”n”,m+,-n); 58、 以下程序的运行结果是【B】A.01,12B.201,10 C.01,10D.20,01main()int a=201,b=012;printf(“%2d,%2dn”,a,b); 59、 以下程序段的运行结果是【A】A.1,2,0B.2,1,0 C.1,2,1D.2,1,1a=1;b=2;c=2;while(abc)t=a;a=b;b=t;c-;printf(“%d,%d,%d”,a,b,c);60、 以下程序段的运行结果是【D】A.20,7B.6,12 C.20,8D.8,20x=y=0;while(x15) y+,x+=+y;printf(“%d,%d”,y,x);61、 以下程序段的运行结果是【C】A.2B.3 C.4D.有语法错误int n=0;while(n+=2);printf(“%d”,n);62、 下面程序的运行结果是【D】A.-1B.1 C.8D.0main()int y=10;doy-;while(-y);printf(“%dn”,y-);63、 下面程序的运行结果是【D】A.39 81B.42 84 C.26 68D.28 70main()int x,i;for(i=1;i=100;i+)x=i;if(+x%2=0)if(+x%3=0)if(+x%7=0)printf(“%d”,x);64、 下面程序的运行结果是【D】A.3,-1B.8,-1 C.3,0D.8,-2main()int i,b,k=0;for(i=1;i=0)k+;printf(“%d,%d”,k,b);65、 下面程序的运行结果是【C】A.-4 0 4 0 4B.-4 0 4 0 3 C.-4 0 4 4 3D.-4 0 4 4 0main()int a6,i; for(i=1;i3)%5;printf(“%3d”,ai);66、 以下程序的运行结果是:【B】A.-16B.-17 C.17D.15fun(int a,int b)if(ab) return(a+b);else return(a-b);main()int x=3,y=8,z=6,r;r=run(run(x,y),2*z);printf(%dn,r);67、 以下程序的运行结果是【A】A.-48B.58 C.-58D.47int f(int x,int y)return (y-x)*x;main()int a=3,b=4,c=5,d;d=f(f(a,c),f(a,b)+f(c,b);printf(%dn,d);68、 以下程序的输出结果是【B】A.6,1B.2,1 C.6,0D.2,0main()int a,b,d=241;a=d/100%9;b=(-1)&(-1);printf(“%d,%dn”,a,b);69、 当a=1、b=3、c=5、d=4时,执行以下程序段后x的值是【B】A.1B.2 C.3D.6if(ab)if(cd) x=1;elseif(ac)if(bd) x=2;else x=3;else x=6;else x=7;70、 以下程序的输出结果是【C】A.1B.0 C.-1D.值不确定main()int a=100,x=10,y=20,ok1=5,ok2=0;if(xy)if(y!=10)if(!ok1)a=1;elseif(ok2) a=10;a=-1;printf(“%dn”,a);71、 以下程序的输出结果是【B】A.3B.2 C.1D.0main()int x=2,y=-1,z=2;if(xy)if(y12?x+10:x-12;printf(“%dn”,y);73、 以下程序的运行结果是【D】A.4B.3 C.2D.1main()int k=4,a=3,b=2,c=1;printf(“n%dn”,ka?k:cb?c:a);74、 若执行以下程序时从键盘上输入5和2,则输出结果是:【D】A)10B)20C)25D)16main()inta,b,s;scanf(“%d%d”,&a,&b);s=a;if(a(yz)?y:z)?x:(yz)?y:z);76、 以下程序段的输出结果是:【C】A) 10 9 8 B) 9 8 7C) 死循环 D) 9 8 7 6int n=10;while(n7); n-; printf( %d,n);77、 以下程序段的输出结果是:【D】A) 1 B) 3 0 C) 1 -2 D) 死循环 int x=3; do printf(%3d,x-=2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论