二级c试题题库复习.doc_第1页
二级c试题题库复习.doc_第2页
二级c试题题库复习.doc_第3页
二级c试题题库复习.doc_第4页
二级c试题题库复习.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

二级C题库复习一、二级笔试复习1以下叙述中正确的是( C )A用C程序实现的算法必须要有输入和输出操作B用C程序实现的算法可以没有输出但必须要有输入C用C程序实现的算法可以没有输入但必须要有输出D用C程序实现的算法可以既没有输入也没有输出2C语言规定:在一个源程序中,main函数的位置(B )A必须在最开始 B必须在系统调用的库函数的后面 C可以任意 D必须在最后3以下叙述正确的是( )A构成程序的基本单位是函数 B可以在函数中定义另一个函数Cmian()函数必须放在其他函数之前D所有被调用的函数一定要在调用之前进行定义4以下叙述正确的是:()语言的源程序不必通过编译就可以直接运行BC语言中的每条可执行语句最终都被转换成二进制的机器指令 CC源程序经编译形成的二进制代码可以直接运行DC语言中的函数不可以单独进行编译5用C语言编写的程序(B) A可立即执行 B是一个源程序 C经过编译即可执行 D经过编译解释才能执行6结构化程序有三种基本结构组成,三种基本结构的算法(A)A可以完成任何复杂的任务 B只能完成部分复杂的任务C只能完成符合结构化的任务 D只能完成一些简单的任务7在一个C程序中(B) A用户标识符中可以出现下划线和减号 B用户标识符中不可以出现减号,但可以出现下划线 C用户标识符中可以出现下划线,但不可以放在开头 D用户标识符中可以出现下划线和数字,它们都可以放在开头8以下合法的用户标识符是(B)Along B _2Test C3Dmax DA.dat 9以下不能定义为用户标识符的是(D)AMain B_0 1 C_int Dsizeof10以下叙述中错误的是( A )A用户所定义的标识符允许使用关键字 B用户所定义的标识符应尽量做到“见名知意” C用户所定义的标识符必须以字母或下划线开头 D用户定义的标识符中,大、小写字母代表不同标识 11以下叙述中正确的是(D)AC语言中既有逻辑类型也有集合类型 BC语言中没有逻辑类型但有集合类型CC语言中有逻辑类型但没有集合类型 DC语言中既没有逻辑类型也没有集合类型12以下定义语句中正确的是(C)Achar a=Ab=B; Bfloat a=b=10.0; Cint a=10,*b=&a; Dflaot *a,b=&a;13以下选项中可作为C语言合法常量的是(A )A-80. B-080 C-8e1.0 D-80.0e14以下选项中不属于C语言的类型的是(D)Asigned short int Bunsigned long int Cunsigned int Dlong short15以下选项中可以作为C语言中合法整数的是(C)A10110B B0386 C0Xffa Dx2a216以下选项中合法的实型常量是(C)A5E2.0 BE-3 C2E0 D1.3E17以下选项中,不能作为合法实型常量的是(B)A1.234e04 B1.234e0.4 C1.234e+4 D1.234e0、18已知A的ASCII码值是65,a的ASCII码值是97,则八进制表示的字符型常量101是(A)AA Ba Ce D非法的常量19已经定义ch为字符型变量,以下赋值语句中错误的是(A)Ach=; Bch=62+3; Cch=NULL; Dch=xaa;20已经定义c为字符型变量,则下列语句中正确的是(C)Ac=97; Bc=”97”; Cc=97; Dc=”a”;21以下选项中,非法的字符常量是(C)At B17 C“n” Dxaa22语句printf(“abrehiyboun”);的输出结果是(C)Aabrehiybou Babrehiybou Crehiyou Dabrehiyou23C语言中运算对象必须是整型的运算符是(A)A%= B/ C = D 0;26以下选项中非法的表达式是(D)A0=x=k B-k+ Ck%int(f) Dk=f=m 30有以下定义语句double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是(C)Aa=a+b=b+ Bw%(int)a+b) C(c+w)%(int)a Dw=a= =b;31以下选项中,与k=n+完全等价的表达式是(A)Ak=n,n=n+1 Bn=n+1,k=n Ck=+n Dk+=n+132若变量已经正确定义并赋值,下面符合C语言语法的表达式是(B)Aa:=b+1 B a=b=c+2 C int18.5%3 D a=a+7=b+c33若以下选项中的变量已正确定以,则正确的赋值语句是(C)Ax1=26.8%3 B1+2=x2 Cx3=0x12 Dx4=1+2=334假定x和y为double型,则表达式x=2,y=x+3/2的值是(D)A3.500000 B 3 C 2.000000 D3.00000035设a和b均为double型,且a=5.5、b=2.5,则表达式(int)a+b/b的值是(D)A6.500000 B6 C5.500000 D6.00000036设变量x为float型且已经赋值,则下列语句中能够将x中的数值保留到小数点后两位,并将第三位四舍五入的是(C)Ax=x*100+0.5/100.0 B x=(x*100+0.5)/100.0C x=(int)(x*100+0.5)/100.0 D x=(x/100+0.5)*100.037设有以下变量定义,char w; int x; float y; double z;并已赋确定的值,则表达式w*x+z-y所求得的数据类型为 38以下不能正确计算代数式值的C语言表达式是( A )A1/3*sin(1/2)*sin(1/2) Bsin(0.5)*sin(0.5)/3 Cpow(sin(0.5),2)/3 D1/3.0*pow(sin(1.0/2),2) 39与数学式子对应的C语言表达式是 (C )A.3*xn(2*x-1) B.3*x*n(2*x-1) C.3*pow(x,n)*(1/(2*x-1) D. 3*pow(n,x)/(2*x-1)40设有定义:float a=2,b=4,h=3;以下C语言表达式与代数式计算结果不相符的是 ( B )A(a+ b)*h/2 B(1/2)* (a+ b)*h C (a+ b)*h*1/2 D h/2* (a+ b)41若x和y代表整型数,以下表达式中不能正确表示数学关系|x-y|10的是(C)Aabs(x-y)-10&x-y10 C!(x-y)10 D(x-y)*(x-y)10042已知i、j、k为int型变量,若从键盘输入1,2,3,使i的值为1、j的值为2 、k的值为3,以下选项中正确的输入语句是(C)Ascanf(“%2d%2d%2d”,&i,&j,&k); Bscanf(“%d %d %d”,&i,&j,&k);Cscanf(“%d,%d,%d”,&i,&j,&k); Dscanf(“i=%d,j=%d,k=%d”,&i,&j,&k);43有以下程序main()int m,n,p; scanf(“m=%dn=%dp=%d”,&m,&n,&p); printf(“%d%d%dn”,m,n,p);若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(A)Am=123n=456p=789 Bm=123 n=456 p=789 Cm=123,n=456,p=789 D123 456 78944以下程序运行时若从键盘输入:10 20 30。输出结果是10300 #includemain()int m=0,n=0,p=0; scanf(“%d%*d%d”,&m,&n,&p); printf(“%d%d%dn”,m,n,p);45若有以下程序段int m=0,n=0;char c=a; scanf(“%d%c%d”,&m,&c,&n);printf(“%d,%c,%dn”,m,c,n);若从键盘上输入:10A10,则输出结果是(A)A10,A,10 B16,A,10 C10,a,0 D10,A,046设有定义:long x=123456L;则以下能够正确输出变量x值的语句是(B)Aprintf(“x=%dn”,x); Bprintf(“x=%ldn”,x); Cprintf(“x=%8dLn”,x); Dprintf(“x=%LDn”,x);47有以下程序#include “stdio.h”main() charc1=1,c2=2; c1=getchar();c2=getchar();putchar(c1);putchar(c2); 当运行时输入:a后,以下叙述正确的是( A ) A.变量c1被赋予字符a,c2被赋予回车符 B程序将等待用户输入第2个字符 C变量c1被赋予字符a,c2中仍是原有字符2 D变量c1被赋予字符a,c2中将无确定值 48已知字母A的ASCII码为65,以下程序运行时若从键盘输入:B33,则输出结果是 1 B #include “stdio.h”main() chara,b; a=getchar();scanf(“%d”,&b); a=a-A+0; b=b*2; printf(%c %cn,a,b); 49. 以下叙述中正确的是( B )A调用printf函数时,必须要有输出项 B使用putchar函数时,必须在之前包含头文件stdio.h C在C语言中,整数可以以十二进制、八进制或十六进制的形式输出D调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码 50若有以下程序段int m=0xabc,n=0xabc;m-=n;printf(“%Xn”,m);执行后输出的结果是(C)A0X0 B0x0 C0 D0XABC51以下程序的功能是:给r输入数据后计算半径为r的圆面积s程序在编译时出错出错的原因是 ( D ) main() /*Beginning*/ intr;floats; scanf(%d,&r); s=p*r*r;printf(s=%fn,s); A注释语句书写位置错误 B存放圆半径的变量r不应该定义为整型 C输出语句中格式描述符非法 D计算圆面积的赋值语句中使用了非法变量52有以下程序 main() chara1=M,a2=m; printf(%cn,(a1,a2); 以下叙述中正确的是 ( B )A程序输出大写字母M B程序输出小写字母m C格式说明符不足,编译出错 D程序运行时产生出错信息53以下程序运行后的输出结果是( )main() intx=0210;printf(%Xn,x); A88 B 105 C D2 D d254以下程序运行后的输出结果是( )main() charc; intn=100; floatf=10;doublex; x=f*=n/=(c=50); printf(%d%fn,n,x); A2,20 B2 20 C 2 20.000000 D2, 20.00000055有以下程序main() int m=12,n=34;printf(%d%d,m+,+n);printf(%d%dn,n+,+m);程序运行后的输出结果是(A)A12353514B12353513C12343514D 1234351356有以下程序 #include main() char c1,c2,c3,c4,c5,c6;scanf(%c%c%c%c,&c1,&c2,&c3,&c4);c5=getchar(); c6=getchar(); putchar(c1); putchar(c2);printf(%c%cn,c5,c6); 程序运行后,若从键盘输入(从第1列开始)123回车45678回车则输出结果是( D )A1267 B1256 C1278 D124557.设有如下程序段: int x=2002, y=2003; printf(%dn,(x,y); 则以下叙述中正确的是 (D)A. 输出语句中格式说明符的个数少于输出项的个数,不能正确输出B. 运行时产生出错信息 C. 输出值为2002 D. 输出值为200358.有以下程序 main() int x=102,y=012; printf(“%2d,%2dn”,x,y); 执行后输出的结果是(C)A10,01 B02,12 C102,10 D02,1059.有以下程序 main() int x=0256,y=256; printf(“%O %On”,x,y); 执行后输出的结果是(C)A0256 0400 B0256 256 C256 400 D400 40060.设有以下程序,以下说法正确的是 (C ) main()int a=5,b=0,c=1;if(a=b+c)printf(“*n”);else printf(“$n”);A.有语法错不能通过编译 B. 可以通过编译但不能通过连接C. 输出* D. 输出$61有以下程序main()inta,b,d=25;a=d/10%9;b=a&(-1);printf(%d,%dn,a,b);程序运行后的输出结果是( B )A6,1B2,1C6,0D2,062有以下程序main()inti=1,j=2,k=3;if(i+= =1&(+j= =3|k+= =3)printf(%d%d%dn,i,j,k);程序运行后的输出结果是( D ) A123 B234 C223D23363若整型变量a、b、c、d中的值依次为:1、4、3、2则条件表达式ab?a:cd?c:d的值为( A )A1 B2 C3 D464有以下程序 main() int a=0,b=0,c=0,d=0;if(a=1) b=1;c=2; else d=3;printf(%d,%d,%d,%dn,a,b,c,d); 程序执行后的输出结果是( D )A0,1,2,0 B0,0,0,3 C1,1,2,0 D编译有错65有以下程序#include main()int x; scanf(“%d”,&x);if(x=3);elseif(x!=10) printf(“%dn”,x);程序运行时,输入的值在哪个范围才会有输出结果( B )A不等于10的整数 B大于3且不等于10的整数C大于3或等于10的整数 D小于3的整数66有以下程序#includemain() int a=1,b=2,c=3,d=0;if(a= =1 &b+= =2)if(b!=2 | c-!=3) printf(“%d,%d,%dn”,a,b,c);else printf(“%d,%d,%dn”,a,b,c);else printf(“%d,%d,%dn”,a,b,c);程序运行后的输出结果是( C )A1,2,3 B1,3,2 C1,3,3 D3,2,167有以下程序main()inta=1,b=2,m=0,n=0,k;k=(n=ba)|(m=ab);printf(%d,%dn,k,m);程序运行后的输出结果是( C )A0,0B0,1C1,0D1,168若执行以下程序时从键盘上输入9,则输出结果是(B) main()int x; scanf(“%d”,&x);if(x+10)printf(“%dn”,x);else printf(“%dn”,x-);A11B 10 C9D868当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是 ( D )Ak%2 Bk%2= =1 C(k%2)!=0 D!k%2= =1 69有以下程序main()inta=5,p;if(p=a!=0) printf(%d n,p);else printf(%d n,p+2);程序运行后的输出结果是 1 。70有以下程序 main() int a=4,b=3,c=5,t=0;if(ab) t=a;a=b;b=t;if(abc)printf(“%d n”,d);else if((c-1=d)= =1)printf(“%d n”,d+1);else printf(“%d n”,d+2);程序运行后的输出结果是( B )A2 B3 C4 D编译有错,无结果72有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x的值不等于3的是(C)Aif(ca) x=1; Bif(a3) x=3;else if(ba)x=2; else if(a2)x=2;else x=3; else x=3;Cif(a3) x=3; Dif(ab) x=b;if(a2)x=2; if(bc)x=c;if(a1) x=1; if(c0) y=1; By=0;else if(x= =0)y=0; if(x0)y=1;else y=-1; else if(x=0) if(x=0) if(x0)y=1;if(x0) y=1; else y=0; else y=-1; else y=-1;74若从键盘输入58,则以下程序输出的结果是 585858 main()int x; scanf(“%d”,&x);if(x50)printf(“%d”,x); if(x40)printf(“%d”,x);if(x30)printf(“%d”,x);75有以下程序 main() int a=0,b=1,c=2;if(!a) c-=1; if(!b) c-=2; if(!c)c-=3;printf(%d n, c); 程序执行后的输出结果是 1 。76以下程序运行后的输出结果是( )main()inta=1,b=2,c=3; if(c=a)printf(%dn,c); elseprintf(%dn,b); A.2 B.3 C. 1 D.077以下程序段中与语句k=ab?(bc?1:0):0;功能等价的是 ( A )A.if(ab&bc) k=1; Bif(a b|b c) k=1; else k=0; else k=0;C if(a b) k=1; else if(bc)k=1;else k=0;78以下程序的运行结果是 switch(a0)case 1:switch(bbc); printf(%dn,d);80.以下程序运行后的输出结果是 3 main() int p=30; printf(%dn,(p/30?p/10:p%3);81有以下程序 main() intk=5,n=0; while(k0) switch(k) default:break; case1:n+=k; case2: case3:n+=k; k-; printf(%dn,n); 程序运行后的输出结果是 ( D )A0 B4 C6 D782有以下程序main()int k=5,n=0; do switch(k) case 1: case 3: n+=1; k-;break;default: n=0;k-;case 2: case 4: n+=2;k-;break;printf(“%d”,n);while(k0&n5);程序运行后的输出结果是( A )A235 B0235C02356 D235683若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( C )Aswitch(x) Bswitch(a) case 1.0:printf(*n); case 1 printf(*n); case 2.0:printf(*n); case 2 printf(*n);Cswitch(b) Dswitch(a+b); case 1: printf(*n); case 1:printf(*n); case 3+1:printf(*n);case 2:printf(*n);84有以下程序段int k=0; while(k=1)k+; while循环执行的次数是(A) A无限次 B有错误,不能执行C一次也不执行 D执行次85有以下程序 #include main() char c;while(c=getchar()!=?) putchar(-c); 程序运行后,若从键盘输入Y?N?回车则输出结果是 X 86有以下程序 main() intx=0,y=5,z=3; while(z-0&+x5) y=y-1;printf(%d,%d,%dn,x,y,z); 程序运行后的输出结果是 ( B )A3,2,0 B3,2,-1 C4,3,-1 D5,-2,-587有以下程序 #include main() int n1,n2; scanf(“%d”,&n2);while(n2!=0)n1=n2%10; n2=n2/10; printf(“%d”,n1); 程序运行后,若从键盘输入1298回车则输出结果是 8921 88有以下程序 #include main() int s=0,a=1,n; scanf(“%d”,&n);dos+=1;a=a-2;while(a!=n); printf(“%dn”,s); 要使程序运行后输出2,则应该从键盘输入的值是 -3 89有以下程序段int s=0,t=1,n; scanf(“%d”,&n);dos+=t;t=t-2;while(t!=n); printf(“%dn”,s); 为使程序不陷入死循环,从键盘输入的数据应该是(D)A任意正奇数 B任意负偶数 C任意正偶数 D任意负奇数90有以下程序 #include main() int s=23; do printf(“%d”,s-); while(!s); 程序运行后的输出结果是 ( B )A321 B23 C不输出任何内容 D陷入死循环91有以下程序段int s=3; do printf(“%d”,s-=2); while(!(-s)); 其输出结果是 ( C )A 1 B3 0 C1-2 D陷入死循环92有以下程序段int p,n=0; doscanf(“%d”,&p);n+;while(p!=12345&n0|E0)s=a;for(b=1;b=c;b+)s=s+1;则与此程序段功能等价的赋值语句是(B)As=a+b; Bs=a+c; Cs=s+c Ds=b+c98有以下程序 main() int i,j,x=0;for(i=0;i2;i+) x+; for(j=0;j=3;j+) if(j%2) continue; x+; x+;printf(x=%dn,x); 程序执行后的输出结果是( B )Ax=4 Bx=8 Cx=6 Dx=1299有以下程序#include main() int i,j, m=55; for(i=1;i=3;i+) for(j=3; j=i; j+) m=m%j; printf(%d n , m);程序的运行结果是( B )A.0 B.1 C.2 D.3100有以下程序#include main() int y=9 ; for( ; y0 ; y-) if(y%3=0 ) printf(%d , -y) ;程序的运行结果是( C )A741 B963 C852 D875421101若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作计算的程序段是 ( B )Afor(i=1,p=1;i=5;i+) p*=i; Bfor(i=1;i=5;i+) p=1; p*=i;C i=1,p=1; for(;i=5;i+) p*=i; Di=1,p=1; while(i=5) p*=i; i+;102若变量已正确定义,则以下能正确计算n!的程序段是 ( D )Ap=0;for(i=1;i=n;i+) p*=i; Bp=1;for(i=1;i1;i+) p*=i; Dp=1;for(i=n;i=2;i-) p*=i;103以下程序的运行结果是0918273645 main() char c1,c2; for(c1=0,c2=9;c11;n-)s=s+1/n;printf(“%6.4fn”,s);程序运行后的结果错误,导致错误结果的程序行是(C)As=1.0; Bfor(n=10;n1;n-) Cs=s+1/n; Dprintf(“%6.4fn”,s);105有以下程序 main() int t=1,i=5; for(;i=0;i-)t*=i; printf(“%dn”,t); 执行后输出的结果是0106以下程序中的变量已正确定义for(i=0;i4;i+,i+)for(k=1;k3;k+); printf(”*”);程序段的输出结果是(D )A* B* C* D*107有以下程序mian()int i,j; for(i=1;i4;i+)for(j=i;j4;j+) printf(“%d*%d=%d ”,i,j,i*j);printf(“n”); 程序运行后的输出结果是( B )A 1*1=1 1*2=2 1*3=3 B 1*1=1 1*2=2 1*3=3 2*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9 C 1*1=1 D1*1=1 1*2=2 2*2=4 2*1=2 2*2=41*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9108有以下程序 main() int y=10;while(y-);printf(y=%dn,y); 程序执行后的输出结果是( B )Ay=0By=-1 Cy=1Dwhile构成无限循环109有以下程序#include main( ) char c1,c2; scanf(“&c”,&c1); while(c190) scanf(“&c”,&c1); c2=c1+32; printf(“&c, &cn”,c1,c2);程序运行输入65回车后,能否输出结果、结束运行(请回答能或不能)不能 110下列程序运行时,若输入labced12df 输出结果为 1AbCeD12dF #include main( )char a =0,ch;while(ch=getchar()!=n)if(a%2!=0&(ch=a&ch=z) ch=ch-a+A;a+;putchar(ch);printf(“n”);111当执行以下程序时,输入1234567890,则其中while循环体将执行 9 次include “stdio.h”main()char ch

温馨提示

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

评论

0/150

提交评论