1C语言精编100题一、单选题1.(1)由C语言编写的代码程序()A.可直接执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行(2)C语言源程序的扩展名为()A..objB..cC.exeD..cpp2.(1)按照C语言规定的用户标识符命名规则,不能出现在标识符中的是()A.大写字母B.中划线C.数字字符D.下划线(2)下列选项中,不能用作标识符的是()A._1234_B._1_2C.int_2_D.2_int_(3)以下选项中合法的用户标识符是()A.longB._2TestC.3DmaxD.A.dat(4)以下不能定义为用户标识符的是()A.MainB._0C._intD.sizeof(5)下列定义变量的语句错误的是A.int_int;B.doubleint_;C.charFor;D.floatUS$;3.在C语言中,整型数据分为()A.二进制、八进制、十进制B.二进制、十进制、十六进制C.八进制、十进制、十六进制D.二进制、八进制、十进制、十六进制4.(1)在C语言中,合法的实型常数是()A.5E2.0B.E-3C..2E0D.1.3E(2)在C语言中,合法的实型常数是()A.1.2E0.5B.3.14159EC.5E-3D.E15(3)以下选项中,不能作为合法常量的是()A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0(4)以下不合法的数值常量是()A.011B.le1C.8.0E0.5D.0xabcd(5)以下选项中,能用作数据常量的是A.o115B.0118C.1.5e1.5D.1155.(1)在C语言中,非法的字符常量是()A.‘\t’B.‘\17’C.\nD.‘\xaa’(2)以下不合法的字符常量是()A.‘\018’B.‘\’C.‘\\’D.‘\xcc’(3)以下选项不属于字符常量的是()A.'C'B.CC.'\xCC'D.'\072'6.在C语言中,以下关于运算符叙述错误的是()A.在C语言中,逗号运算符的优先级最低B.在C语言中,赋值运算符自右向左运算C.在C语言中,+、-、*、/、%是算术运算符,可用于整型和实型数的运算D.在C语言中,++、--运算符可以改变变量的值7.下列运算符中优先级最高的运算符是()()A.=B.=C.%D.&&A.==B./C.=D.=28.(1)以下程序的输出结果是()main(){inta=3,b=4;printf(%d\n,a=b);}A.3B.4C.1D.0(2)在C语言中,表达式10!=9的值为()A.0B.FalseC.1D.True9.在C语言中,以下非法的表达式是()A.0=x=100B.i=j==0C.(char)(65+3)D.x+1=x+110.在C语言中,以下非法的赋值语句是()A.j++;B.++(i+1);C.x=j0;D.k=i==j;11.表达式3.6-5/2+1.2+5%2的值是()A.4.3B.4.8C.3.3D.3.812.(1)设有语句:inta=3;则执行了语句a+=a-=a*a;变量a的值是()A.3B.0C.9D.-12(2)设有语句:intx=10;则执行了语句x+=x-=x-x;变量x的值是()A.10B.20C.40D.30(3)设有语句:inta=0;则执行语句a+=(a=8);变量a的值是()A.0B.8C.16D.2413.以下程序的输出结果是()()()⑴main(){inti=10,j=1;printf(%d,%d\n,i--,++j);}A.9,2B.10,2C.9,1D.10,1⑵main(){inta=12,b=12;printf(%d%d\n,--a,++b);}A.1010B.1212C.1110D.1113⑶main(){intx=023;printf(%d\n,--x);}A.17B.18C.23D.2414.以下程序的输出结果是()main(){intx=100,y=200;printf(%d\n,(x,y));}A.200B.100C.100200D)20010015.以下程序的输出结果是()main(){intx=10,y=3,z;printf(%d\n,z=(x%y,x/y));}A.1B.0C.4D.316.intk=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是()A.k++B.k+=1C.++kD.k+1317.以下程序的输出结果是()main(){intx,y,z;x=y=1;z=x++,y++,++y;printf(%d,%d,%d\n,x,y,z);}A.2,3,3B.2,3,2C.2,3,1D.2,2,118.设x、y、t均为int型变量,则执行语句:x=y=3;t=++x||++y;后,y的值为()A.1B.2C.3D.419.设intx=-1;执行表达式++x||++x||++x||++x,x的值是()A.0B.1C.2D.420.以下程序的输出结果是(1)main(){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=b(2)main(){intk=17;printf(%d,%o,%x\n,k,k,k);}()A.17,021,0x11B.17,17,17C.17,0x11,021D.17,21,1121.运行时从键盘上输入9876543210CR(CR表示回车),则该程序的输出结果是()main(){inta;floatb,c;scanf(%2d%3f%4f,&a,&b,&c);printf(a=%d,b=%f,c=%f\n,a,b,c);}A.a=98,b=765,c=4321B.a=10,b=432,c=8765C.a=98,b=765.000000,c=4321.000000D.a=98,b=765.0,c=4321.022.设变量均已正确定义,若要通过scanf(%d%c%d%c,&a1,&c1,&a2,&c2);语句为变量a1和a2赋数值10和20,为变量c1和c2赋字符X和Y。以下所示的输入形式中正确的是(注:□代表空格字符)()A.10□X□20□Y回车B.10□X20□Y回车C.10□X回车D.10X回车20□Y回车20Y回车23.以下程序的输出结果是()#defineMA(x)x*(x-1)main(){inta=1,b=2;printf(%d\n,MA(1+a+b));}A.6B.8C.10D.1224.以下程序的输出结果是()#defineM(x,y,z)x*y+zmain(){inta=1,b=2,c=3;printf(%d\n,M(a+b,b+c,c+a));}A.19B.17C.15D.1225.以下程序段的输出结果是()4#defineMIN(x,y)(x)(y)?(x):(y)main(){inti=10,j=15,k;k=10*MIN(i,j);printf(%d\n,k);}A.15B.100C.10D.15026.设a=1,b=2,c=3,d=4,则表达式ab?a:cd?a:d的结果是()A.4B.3C.2D.127.以下程序段的输出结果是()main(){intx=1,y=2,z=3;if(xy)if(yz)printf(%d,++z);elseprintf(%d,++y);printf(%d\n,x++);}A.331B.41C.2D.128.以下程序段的输出结果是()main(){intx=5;if(x++5)printf(%d\n,x);elseprintf(%d\n,x--);}A.4B.5C.6D.729.以下程序段的输出结果是()main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;case3:a++;b++;}printf(a=%d,b=%d\n,a,b);}A.a=1,b=0B.a=2,b=2C.a=1,b=1D.a=2,b=130.有以下程序main(){intn=4;while(n--)printf(%d,--n);}程序执行后的输出结果是()A.20B.31C.321D.210531.有以下程序main(){inti;for(i=0;i3;i++)switch(i){case0:printf(%d,i);case1:printf(%d,i);default:printf(%d,i);}}程序执行后的输出结果是()A.000112B.012C.012020D.12032.以下叙述中正确的是()A.构成C程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其它函数之前D.所有被调用函数一定要在调用之前进行定义33.以下说法中正确的是()A.C语言程序总是从第一个函数开始执行B.在C语言程序中,要调用的函数必须在main()函数中定义C.C语言程序总是从main()函数开始执行D.C语言程序中的main()函数必须放在程序的开始部分34.以下程序段的输出结果是()intfun(intx,inty){return(x+y);}main(){inta=1,b=2,c=3,sum;sum=fun((a++,b++,a+b),c++);printf(%d\n,sum);}A.6B.7C.8D.935.以下程序的输出结果是()intfun(intx){intp;if(x==0||x==1)p=3;elsep=x-fun(x-2);returnp;}main(){printf(%d\n,fun(7));}A.7B.3C.2D.036.以下数组定义中错误的是()A.intx[][3]={0};B.intx[2][3]={{1,2},{3,4},{5,6}};C.intx[][3]={{1,2,3},{4,5,6}};D.intx[2][3]={1,2,3,4,5,6};37.以下能正确定义二维数组的是()6A.inta[][3];B.inta[][3]={2*3};C.inta[][3]={};D.inta[2][3]={{1},{2},{3,4}};38.以下程序的输出结果是()main(){inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(%d\n,*(p+2));}A.3B.4C.1D.239.以下程序的输出结果是()main(){inta[]={1,2,3,4,5,6,7,8,9,10},*p=a;printf(%d\n,*p+9);}A.0B.1C.10D.940.以下程序的输出结果是()printf(%d\n,*p+*q);}.16B.10C.8D.641.设有chararray[]=China;则数组array所占的空间字节数为()A.4B.5C.6D.742.在C语言中,对于以下定义正确的叙述为()charx[]=abcdefg;chary[]={'a','b','c','d','e','f','g'};A.数组x和数组y等价B.数组x和数组y的长度相同C.数组x的长度大于数组y的长度D.数组x的长度小于数组y的长度43.以下不能正确进行字符串赋初值的语句是()A.charstr[5]=good!;B.charstr[]=good!;B.char*str=good!;D.charstr[5]={‘g’,‘o’,‘o’,‘d’};44.(1)以下程序的输出结果是()main(){charstr[]=ABCD,*p=str;printf(%d\n,*(p+4));}A.68B.'D'C.0D.'0'(2)以下程序的输出结果是()main(){charstr[]=aeiou,*p=str;printf