-1-C语言理论上机考试选择题部分(共200题,仅针对11级定向专业)1、下面程序的输出是___D______#includevoidmain(){intk=11;printf("k=%d,k=%o,k=%x\n",k,k,k);}A)k=11,k=12,k=11B)k=11,k=13,k=13C)k=11,k=013,k=0xbD)k=11,k=13,k=b2、在下列选项中,不正确的赋值语句是__D______.A)++t;B)n1=(n2=(n3=0));C)k=i=j;D)a=b+c=1;3、下面合法的C语言字符常量是______A____.A)'\t'B)"A"C)65D)A4、表达式:10!=9的值是________D____.A)trueB)非零值C)0D)15、C语言提供的合法的数据类型关键字是_____B____.A)DoubleB)shortC)integerD)Char6、字符(char)型数据在微机内存中的存储形式是__D__.A)反码B)补码C)EBCDIC码D)ASCII码7、C语言程序的基本单位是_____C______.A)程序行B)语句C)函数D)字符8、设inta=12,则执行完语句a+=a-=a*a后,a的值是____D____A)552B)264C)144D)-2649、执行下面程序中的输出语句后,输出结果是____B__.#includevoidmain(){inta;printf("%d\n",(a=3*5,a*4,a+5));}A)65B)20C)15D)1010、下面程序的输出是____B______.#includevoidmain(){intx=023;printf("%d\n",--x);}A)17B)18C)23D)2411、下面程序的输出的是_____C____.#includevoidmain(){intx=10,y=3;printf("%d\n",y=x/y);}A)0B)1C)3D)不确定的值12、已知字母A的ASCII码为十进制的65,下面程序的输出是______A_____.#includevoidmain(){charch1,ch2;ch1='A'+'5'-'3';ch2='A'+'6'-'3';printf("%d,%c\n",ch1,ch2);}A)67,DB)B,CC)C,DD)不确定的值13、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为____D__.A)a<>0B)!aC)a=0D)a14、以下程序的输出结果是____D_____.#includevoidmain(){intx=10,y=10;printf("%d%d\n",x--,--y);}A)1010B)99C)910D)10915、设有如下定义:intx=10,y=3,z;则语句printf("%d\n",z=(x%y,x/y));的输出结果是_____D_____.A)1B)0C)4D)316、为表示关系x≥y≥z,应使用C语言表达式___A___.A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)
-2-17、C语言中非空的基本数据类型包括____B____.A)整型,实型,逻辑型B)整型,实型,字符型C)整型,字符型,逻辑型D)整型,实型,逻辑型,字符型18、若x和y都是int型变量,x=100,y=200,且有下面的程序片段:printf("%d",(x,y));上面程序片段的输出结果是____A___.A)200B)100C)100200D)输出格式符不够,输出不确定的值19、阅读下面的程序#includevoidmain(){charch;scanf("%3c",&ch);printf("%c",ch);}如果从键盘上输入abc<回车>则程序的运行结果是__A_____.A)aB)bC)cD)程序语法出错20、阅读下面的程序#includevoidmain(){inti,j;i=010;j=9;printf("%d,%d",i-j,i+j);}则程序的运行结果是____D____.A)1,19B)-1,19C)1,17D)-1,1721、阅读下面的程序#includevoidmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf("%d,%d,%d,%d",i,j,m,n);}程序的运行结果是______C____.A)8,10,8,10B)9,11,8,10C)9,11,9,10D)9,10,9,1122、已知a=12,则表达式a+=a-=a*=a的结果是_____A__.A)0B)144C)12D)-26423、若已定义inta,则表达式a=10,a+10,a++的值是__B_.A)20B)10C)21D)1124、阅读下面的程序#includevoidmain(){inti,j;scanf("%3d%2d",&i,&j);printf("i=%d,j=%d\n",i,j);}如果从键盘上输入1234567<回车>,则程序的运行结果是____D____.A)i=123,j=4567B)i=1234,j=567C)i=1,j=2D)i=123,j=4525、下面程序的输出结果是____D____.#includevoidmain(){inta=-1,b=4,k;k=(++a<=0)&&(b--<=0);printf("%d,%d,%d\n",k,a,b);}A)1,1,2B)1,0,3C)0,1,2D)0,0,326、下面程序的输出结果是____A____.#includevoidmain(){inta=5,b=3;floatx=3.14,y=6.5;printf("%d,%d\n",a+b!=a-b,x<=(y-=6.1));}A)1,0B)0,1C)1,1D)0,027、执行下面程序段后,输出结果是____A____.inta;intb=65536;a=b;printf("%d\n",a);
-3-A)65536B)0C)-1D)128、若有以下定义和语句:inta=010,b=0x10,c=10;printf("%d,%d,%d\n",a,b,c);则输出结果是____B_____.A)10,10,10B)8,16,10C)8,10,10D)8,8,1029、已知有double型变量x=2.5,y=4.7,整型变量a=7,则表达式x+a%3*(int)(x+y)%2/4的值是_____B____.A)2.4B)2.5C)2.75D)030、若已定义x和y是整型变量,x=2;,则表达式y=2.75+x/2的值是____C____.A)5.5B)5C)3D)4.031、以下程序的输出结果是____D____.#include
voidmain(){inta=12,b=12;printf("%d,%d\n",--a,++b);}A)10,10B)12,12C)11,10D)11,1332、设有以下语句:intx=10;x+=3+x%(3),则x的值是.____A_____A)14B)15C)11D)1233、若d为double型变量,则表达式d=1,d+5,d++的值是_____D__.A)1B)6.0C)2.0D)1.034、表达式5!=3的值是____D____.A)TB)非零值C)0D)135、若有定义inta=12,n=5,则表达式a%=(n%2)运算后,a的值______A____.A)0B)1C)12D)636、若有定义intx=3,y=2和floata=2.5,b=3.5,则表达式:(x+y)%2+(int)a/(int)b的值是__D__.A)0B)2C)1.5D)137、在C语言中,以下叙述不正确的是_____A____.A)在C程序中,无论是整数还是实数,都能被准确无误的表示B)在C程序中,变量名代表存储器中的一个位置C)静态变量的生存期与整个程序的生存期相同D)C语言中变量必须先定义后引用38、C语言中的变量名只能由字母,数字和下划线三种字符组成,且第一个字符____C____.A)必须为字母B)必须为下划线C)必须为字母或下划线D)可以是字母,数字或下划线中的任意一种39、设有说明:charw;intx;floaty;doublez;则表达式:w*x+z-y值的数据类型是___D____.A)floatB)charC)intD)double40、一个C语言的执行是从_____A______.A)本程序的主函数开始,到本程序的主函数结束B)本程序的第一个函数开始,到本程序的最后一个函数结束C)本程序的主函数开始,到本程序的最后一个函数结束D)本程序的第一个函数开始,到本程序的主函数结束41、设a为整型变量,不能正确表达数学关系1010&&a<15D)!(a<=10)&&!(a>=15)42、下列程序执行后的输出结果是_____C____.#includevoidmain(){inta=5,b=60,c;if(a",则程序的输出结果是____D____.#includevoidmain(){intx,y;scanf("%d,%d",&x,&y);-4-if(x==y)printf("x==y");elseif(x>y)printf("x>y");elseprintf("x3C)x>yD)x",则输出结果是____C___.#includevoidmain(){inta,b,c;scanf("%d,%d,%d",&a,&b,&c);if(a>b)if(a>c)printf("%d\n",a);elseprintf("%d\n",c);elseif(b>c)printf("%d\n",b);elseprintf("%d\n",c);}A)5B)6C)7D)不定值46、执行下面程序时,若从键盘输入"2",则程序的运行结果是____A____.#includevoidmain(){intk;charcp;cp=getchar();if(cp>='0'&&cp<='9')k=cp-'0';elseif(cp>='a'&&cp<='f')k=cp-'a'+10;elsek=cp-'A'+10;printf("%d\n",k);}A)2B)4C)1D)1047、运行下面程序时,从键盘输入"2.0",则输出结果是___B_____.#includevoidmain(){floata,b;scanf("%f",&a);if(a<0.0)b=0.0;elseif((a<0.5)&&(a!=2.0))b=1.0/(a+2.0);elseif(a<10.0)b=1.0/2;elseb=10.0;printf("%f\n",b);}A)0.000000B)0.500000C)1.000000D)0.25000048、执行下面程序后,运行结果是____A____.#includevoidmain(){intx=41,y=1;if(x%3==0&&x%7==0){y+=x;printf("y=%d\n",y);}else{y=x;printf("y=%d",y);}}A)y=41B)y=43C)y=42D)y=149、运行下面程序时,从键盘输入"12,34,9",则输出结果是___A___.#includevoidmain(){intx,y,z;scanf("%d,%d,%d",&x,&y,&z);if(xvoidmain(){charch;ch=getchar();switch(ch){case'H':printf("Hello!\n");case'G':printf("Goodmorning!\n");default:printf("Bye_Bye!\n");}}A)Hello!B)Hello!GoodMorning!C)Hello!D)Hello!
-5-Goodmorning!Bye_Bye!Bye_Bye!51、执行下列程序段后的输出结果是_____A____.intx=1,y=1,z=1;x+=y+=z;printf("%d\n",x='A'&&ch<='Z')?ch+32:ch的值是__B___.A)ZB)aC)zD)A53、下面程序的输出结果是____C____.#includevoidmain(){intx=8,y=-7,z=9;if(x",则程序的输出结果是_____B___.#includevoidmain(){inta;scanf("%d",&a);if(a++>5)printf("%d\n",a);elseprintf("%d\n",a--);}A)7B)6C)5D)455、运行下面程序时,若从键盘输入"3,4",则程序的输出结果是____B___.#includevoidmain(){inta,b,s;scanf("%d,%d",&a,&b);s=a;if(svoidmain(){intx=0,y=1,z=0;if(x=z=y)x=3;printf("%d,%d\n",x,z);}A)3,0B)0,0C)0,1D)3,157、假定等级和分数有以下对应关系:等级:A分数:85~100等级:B分数:60~84等级:C分数:60以下对于等级grade输出相应的分数区间,能够完成该功能的程序段是____D____.A)switch(grade){case'A':printf("85--100\n");case'B':printf("60--84\n");case'C':printf("60以下\n");default:printf("等级错误!\n");}B)switch(grade){case'A':printf("85--100\n");break;case'B':printf("60--84\n");case'C':printf("60以下\n");default:printf("等级错误!\n");}C)switch(grade){case'A':printf("85--100\n");break;case'B':printf("60--84\n");break;case'C':printf("60以下\n");default:printf("等级错误!\n");}D)switch(grade){case'A':printf("85--100\n");break;case'B':printf("60--84\n");break;case'C':printf("60以下\n");break;default:printf("等级错误!\n");}58、能够完成如下函数计算的程序段是__B____.┌-1x<0y=┤0x=0└1x>0A)y=1;B)if(x>=0)
-6-if(x!=0)if(x>0)y=1;if(x>0)y=1;elsey=0;elsey=0;elsey=-1;C)y=0;D)y=-1;if(x>=0)if(x>0)y=1;if(x>0)y=1;elsey=0;elsey=-1;59、有如下程序#includevoidmain(){floatx=5.0,y;if(x<0.0)y=0.0;elseif(x<10.0)y=1.0/x;elsey=1.0;printf("%f\n",y);}该程序的输出结果是____C_____.A)0.000000B)0.50000C)0.200000D)1.00000060、以下程序的执行结果是___B_____.#includevoidmain(){intx=1,y=0;switch(x){case1:switch(y){case0:printf("first\n");break;case1:printf("second\n");break;}case2:printf("third\n");}}A)firstB)firstsecondthirdC)firstD)secondthird61、以下程序的执行结果是____A____.#includevoidmain(){inta,b,c,d,x;a=c=0;b=1;d=20;if(a)d=d-10;elseif(!b)if(!c)x=15;elsex=25;printf("d=%d\n",d);}A)d=20B)d=10C)d=15D)2562、有如下程序:#includevoidmain(){inta=2,b=-1,c=2;if(avoidmain(){intx,y=1,z;if((z=y)<0)x=4;elseif(y==0)x=5;elsex=6;printf("%d,%d\n",x,y);}A)4,1B)6,1C)5,0D)出错信息64、有如下程序#includevoidmain(){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++;b++;}printf("a=%d,b=%d\n",a,b);}该程序的输出结果是______A____.A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=265、下面程序的输出结果是____C_____.#include
-7-voidmain(){inta=-1,b=1,k;if((++a<0)&&(b--<=0))printf("%d%d\n",a,b);elseprintf("%d%d\n",b,a);}A)-11B)01C)10D)0066、假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w100)printf("%d\n",a>100);elseprintf("%d\n",a<=100);}A)a<=100B)100C)0D)168、若执行下面的程序从键盘上输入9,则输出结果是.______B________#includevoidmain(){intn;scanf("%d",&n);if(n++<10)printf("%d\n",n);elseprintf("%d\n",n--);}A)11B)10C)9D)869、以下程序输出结果是_____D_____.#includevoidmain(){intm=4;if(++m>5)printf("%d\n",m--);elseprintf("%d\n",--m);}A)7B)6C)5D)470、若执行下面的程序从键盘上输入5,则输出结果是.#includevoidmain(){intx;scanf("%d",&x);if(x++>5)printf("%d\n",x);elseprintf("%d\n",x--);}A)7B)6C)5D)471、以下程序段运行结果是____A____.intx=1,y=1,z=-1;x+=y+=z;printf("%d\n",xvoidmain(){inta,b,c=246;a=c/100%9;b=(-1)&&(-1);printf("%d,%d\n",a,b);}输出结果是____A____.A)2,1B)3,2C)4,3D)2,-173、运行下面程序时,若从键盘输入数据为"123",则输出结果是___C____.#include"stdio.h"voidmain(){intnum,i,j,k,place;scanf("%d",&num);if(num>99)place=3;elseif(num>9)place=2;elseplace=1;i=num/100;j=(num-i*100)/10;k=(num-i*100-j*10);switch(place){case3:printf("%d%d%d\n",k,j,i);break;case2:printf("%d%d\n",k,j);break;case1:printf("%d\n",k);}}A)123B)1,2,3C)321D)3,2,174、执行下列程序后的输出结果是___D____.#includevoidmain()
-8-{intk=4,a=3,b=2,c=1;printf("%d\n",k
voidmain(){inta,b;scanf("%d",&a);b=a>15?a+10:a-10;printf("%d\n",b);}A)5B)25C)15D)1077、运行下面程序后,输出是___D___.#includevoidmain(){intk=-3;if(k<=0)printf("****\n");elseprintf("####\n")}A)####B)****C)####****D)有语法错误不能通过编译78、执行下面程序的输出结果是____C____.#includevoidmain(){inta=5,b=0,c=0;if(a=a+b)printf("****\n");elseprintf("####\n");}A)有语法错误不能编译B)能通过编译,但不能通过连接C)输出****D)输出####79、为了避免嵌套的if-else语句的二义性,C语言规定else总是与___C___组成配对关系.A)缩排位置相同的ifB)在其之前未配对的ifC)在其之前尚未配对的最近的ifD)同一行上的if80、设x、y、z、t均为int型变量,则执行以下语句后,t的值为____C_____.x=y=z=1;t=++x||++y&&++z;A)不定值B)4C)1D)081、以下程序段____C______.x=-1;do{x=x*x;}while(!x);A)是死循环B)循环执行两次C)循环执行一次D)有语法错误82、对下面程序段描述正确的是___B____.intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);A)运行程序段后输出0B)运行程序段后输出1C)程序段中的控制表达式是非法的D)程序段循环无数次83、下面程序段的输出结果是____C____.x=3;do{y=x--;if(!y){printf("*");continue;}printf("#");}while(x=2);A)##B)##*C)死循环D)输出错误信息84、下面程序的运行结果是____B____.#includevoidmain(){inta=1,b=10;do{b-=a;a++;}while(b--<0);printf("%d,%d\n",a,b);}A)3,11B)2,8C)1,-1D)4,985、下面程序段的运行结果是____B______.intn=0;