C语言题海,题库(含答案)
第一章C语言概述一单项选择题1.一个C程序的执行是从(A)。A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序的main函数结束2.以下叙述正确的是(C)。A)在C程序中,main函数必须位于程序的最前面B)C程序的每行中只能写一条语句C)C语言本身没有输入输出语句D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误3.以下叙述不正确的是(D)。A)一个C源程序可由一个或多个函数组成B)一个C源程序必须包含一个main函数C)C程序的基本组成单位是函数D)在C程序中,注释说明只能位于一条语句的后面第215页共215页n4.C语言规定,在一个源程序中,main函数的位置(C)。A)必须在最开始B)必须在系统调用的库函数的后面C)可以任意D)必须在最后5.一个C语言源程序是由(B)。A)一个主程序和若干子程序组成B)函数组成C)若干过程组成D)若干子程序组成二填空题1.C源程序的基本单位是函数。2.一个C源程序中至少应包括一个main函数。3.在一个C源程序中,注释部分两侧的分界符分别为/*和*/。4.一个函数是由两部分组成的,它们分别是函数名和函数体。5.在C语言中,一个函数的函数体一般包括声明部分和执行部分。6.在每个C语句和数据定义的最后必须有一个分号。7.C语言本身没有输入输出语句。其输入输出是由系统定义的标准输入输出函数来完成。8.程序是指(一系列可执行)指令的集合。第215页共215页n9.源程序是指(未编译的)源代码。C源程序文件的扩展名为c。10.目标程序是指由源程序经编译后产生的可连接文件。目标程序文件的扩展名为obj。11.可执行程序是指由目标程序连接后产生的可执行程序。可执行程序文件的扩展名为exe。12.上机运行一个C源程序的步骤一般为:①写(无错的)源程序;②(正确通过)编译;③连接;④运行。第三章数据类型、运算符与表达式一单项选择题1.下面四个选项中,均不是c语言关键字的选项是(A)。A)define IF Type B)getc char printfC)include scanf case D)while go pow2.C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符(C)。A)必须为字母 B)必须为下划线C)必须为字母或下划线 D)可以是字母、数字和下划线中任一种字符第215页共215页n3.下列四个选项中,均是C语言关键字的选项是(B)。A)autoenuminclude B)switchtypedefcontinueC)signedunionscanf D)ifstructtype4.下面四个选项中,均是不合法的用户标识符的选项是(C)。A)AP_0do B)floatla0_AC)b-agotoint D)_123tempint5.以下有4组用户标识符,其中合法的一组是(C)。A)For-subCase B)4dDOSizeC)f2_G3IFabc D)WORDvoiddefine6.下列选项中,合法的C语言关键字是(D)。A)VAR B)cher C)integer D)default7.下面四个选项中,均是合法整型常量的选项是(A)。A)160-0xffff011 B)-0xcdf01a0xeC)–019860120668 D)-0x48a2e50xe8.下面四个选项中,均是正确的八进制数或十六进制数的选项是(C)。A)-100x8f-011 B)0abc-0170xcC)010-0x110xf1 D)0a12-0x123-0xa第215页共215页n9.设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为(C)。A)0~255 B)0~32767 C)0~65535 D)0~214748364710.在C语言中,不正确的int类型的常数是(A)。A)32768 B)0 C)037 D)0xAF11.下面四个选项中,均是不合法的整型常量的选项是(D)。A)-0f1-0xffff0011 B)-0xcdf01712456C)-0189995e2 D)-0x48eg-06803f12.下面四个选项中,均是不合法的浮点数的选项是(B)。A)160.0.12e3 B)1232e4.2.e5C)-.18123e40.0 D)-e3.2341e313.下面四个选项中,均是合法的浮点数的选项是(B)。A)+1e+15e-9.403e2 B)-.6012e-4-8e5C)123e1.2e-.4+2e-1 D)-e3.8e-45.e-014.下列变量定义中合法的是(A)。A)short_a=1-.le-1; B)doubleb=1+5e2.5;C)longdo=0xfdaL; D)float2_and=1-e-3;15.以下选项中合法的字符常量是(B)。第215页共215页nA)“B” B)‘ 10’ C)68 D)D16.以下选项中,非法的字符常量是(C)。A)'t' B)'17' C)"n" D)'xaa'17.以下所列的C语言常量中,错误的是(B)。A)0xFF B)1.2e0.5 C)2L D)‘72’18.在C语言中,char型数据在内存中的存储形式是(D)。A)补码 B)反码 C)原码 D)ASCII码19.下面四个选项中,均是合法转义字符的选项是(A)。A)‘’’‘\’‘n’ B)‘’‘ 17’‘”’C)‘ 18’‘f’‘xab’ D)‘\0’‘101’‘xlf’20.下面四个选项中,均是不合法的转义字符的选项是(0)。A)‘””’‘\’‘xf’ B)‘1011’‘’‘a’C)‘ 11’‘f’‘}’ D)‘abc’‘101’‘xlf’//上题中,红色部分表示合法的转义字符。21.下面正确的字符常量是(C)。A)“c” B)‘\’’ C)‘W’ D)‘’22.下面四个选项中,均是正确的数值常量或字符常量的选项是(X)。第215页共215页nA)0.00f8.9e‘&’ B)‘a’3.9e-2.51e1‘’’C)‘3’0110xff000a D)+0010xabcd2e250.23.下面不正确的字符串常量是(A)A)‘abc’ B)”1212” C)”0” D)””24.在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为(A)。A)char
main(){charc1=‘A’,c2=‘Y’;printf(“%d,%dn”,c1,c2);}A)65,89 B)A,Y C)65,88 D)65,9050.以下程序的输出结果是(D)。#includemain(){inta=010,b=10;第215页共215页nprintf(“%d,%dn”,a++,--b);}A)10,10 B)8,10 C)10,9 D)8,951.以下程序的输出结果是(B)。main(){inta,b;a=100;b=200;printf(“%dn”,(a,b));}A)100 B)200 C)20000 D)100=20052.执行语句y=10;x=y++;的结果是(C)。A)x=10,y=10 B)x=11,y=11 C)x=10,y=11 D)x=11,y=1053.在表示C语言的整型变量时,表示“无符号长整型”的符号是(D)。A)unsignedint B)unsignedshortC)longint D)unsignedlong54.在下列形式的常数中,C程序不允许出现的是(B)。A).45 B)±123 C)25.6e-2 D)4e355.以下程序的输出结果是(C)。第215页共215页nmain(){floatx=3.6;inti;i=(int)x;printf(“x=%f,i=%d”,x,i);}A)x=3.600000,i=4 B)x=3,i=3C)x=3.600000,i=3 D)x=3.000000,i=3.60000056.在C语言中,要求运算数必须是整型数据的运算符是(B)。A)/ B)% C)! D)<57.执行下列语句的结果是(D)。i=3;printf(“%d,”,++i);printf(“%d”,i++);A)3,3 B)3,4 C)4,3 D)4,458.已知x=3,y=2,则表达式x*=y+8的值为(C)。A)3 B)2 C)30 D)1459.执行语句inti=65536;printf(“%dn”,i);的结果是(B)。A)65536 B)0 C)第215页共215页n有语法错误,无输出结果 D)-160.在C语言中,不正确的int类型的常数是(A)。A)32768 B)0 C)037 D)0xAF61.C语言提供的合法关键字是(D)。A)swicth B)chan C)Case D)default62.表示“在使用x之前,先使x的值加1”的正确方式是(AA)。A)++x B)x++ C)+x D)+x+63.设x的值为5,则表达式(++x)+(++x)+(++x)的值是(22D)。A)24 B)20 C)15 D)2164.在C语言中,合法的字符常量是(B)。A)‘ 84’ B)‘x43’ C)‘ab’ D)“ ”65.若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是(C)。A)1 B)2 C)2.0 D)2.666.若t为double类型,表达式t=1,t+5,t++的值是(D)。A)1 B)6.0 C)2.0 D)1.067.若有以下定义和语句,则输出结果是(B)。第215页共215页ncharc1=‘b’,c2=‘e’;printf(“%d,%cn”,c2-c1,c2-’a’+’A’);A)2,M B)3,EC)2,E D)输出项与对应的格式控制不一致,输出结果不确定68.设有如下的变量定义:inti=8,a,b;doublex=1.42,y=5.2;则以下符合C语言语法的表达式是(A)。A)a+=a-=(b=4)*(a=3) B)x%(-3)C)a=a*3=2 D)y=float(i)69.若有以下定义和语句:intu=010,v=0x10,w=10;printf(“%d,%d,%dn”,u,v,w);则输出结果是(A)。A)8,16,10 B)10,10,10 C)8,8,10 D)8,10,10二填空题1.若x和a均是int型变量,则计算表达式(1)后的x值为12,计算表达式(2)后的x值为4。(1)x=(a=4,6*2)第215页共215页n(2)x=a=4,6*22.若a是int型变量,则表达式(a=4*5,a*2),a+6的值为26。3.若b是int型变量,则表达式b=25/3%3的值为2。4.若s是int型变量,且s=6则下面表达式s%2+(s+1)%2的值为1。5.若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为6,b值为4,c值为2。6.若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为10,n的值为6。7.若有定义:intb=7;floata=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为4.5。8.若有定义:inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为3.5。9.若有定义:intx=3,y=2;floata=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为1。10.若x和n均是整型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为0。11.以下程序的输出结果是0。main(){unsignedshorta=65536;intb;printf(“%dn”,b=a);}12.请写出数学式a/bc的C语言表达式a/(b*c)。第215页共215页n13.设a、b、c为整型数,且a=2、b=3、c=4,则执行完语句a*=16+(b++)-(++c)后,a的值是28。第四章最简单的C程序设计——顺序程序设计一单项选择题1~5BDDDB1.printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列,如果字符串长度大于5,则输出按方式(B)。A)从左起输出该字符串,右补空格B)按原字符长从左向右全部输出C)右对齐输出该字串,左补空格D)输出错误信息2.已有定义inta=-2;和输出语句printf(“%8x”,a);以下正确的叙述是(D)。A)整型变量的输出形式只有%d一种B)%x是格式符的一种,它可以适用于任何一种类型的数据C)%x是格式符的一种,其变量的值按十六进制输出,但%8x是错误的D)%8x不是错误的格式符,其中数字8规定了输出字段的宽度3.若x,y均定义成int型,z定义为double型,以下不合法的scanf函数调用语句是(D)。第215页共215页nA)scanf(“%d%x,%le”,&x,&y,&z);B)scanf(“%2d*%d,%lf”,&x,&y,&z);C)scanf(“%x%*d%o”,&x,&y);D)scanf(“%x%o%6.2f”,&x,&y,&z);4.以下程序的输出结果是(D)。main(){intk=17;printf("%d,%o,%xn",k,k,k);}A)17,021,0x11 B)17,17,17B)17,0x11,021 D)17,21,115.下列程序的运行结果是(B)。#includemain(){inta=2,c=5;printf("a=%d,b=%dn",a,c);}A)a=%2,b=%5 B)a=2,b=5C)a=d,b=d D)a=2,c=56.语句printf("abre'hi'y\boun");的输出结果是(C)。(说明:'b'是退格符)第215页共215页nA)abre'hi'y\bou B)abre'hi'ybouC)re'hi'you D)abre'hi'ybou7.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是(B)。A)INPUTx、y、z; B)scanf("%d%d%d",&x,&y,&z);C)scanf("%d%d%d",x,y,z); D)read("%d%d%d",&x,&y,&z);8.若变量已正确说明为float类型,要通过语句scanf("%f%f%f",&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是(B):A)10<回车> B)10.0,22.0,33.0<回车>22<回车>33<回车>C)10.0<回车> D)1022<回车>22.033.0<回车>33<回车>9.以下程序的输出结果是(A、n=24)。main(){intn;(n=6*4,n+6),n*2;第215页共215页nprintf(“n=%dn”,n);}A)24 B)12 C)26 D)2010.以下程序的输出结果是(B)。main(){intx=2,y,z;x*=3+1;printf(“%d,”,x++);x+=y=z=5;printf(“%d,”,x);x=y=z;printf(“%dn”,x);}A)8,14,1 B)8,14,5 C)8,13,5 D)9,14,511.下面程序的输出结果是(C)。main(){intx,y,z;x=0;y=z=-1;第215页共215页nx+=-z---y;printf(“x=%dn”,x);}A)x=4 B)x=0 C)x=2 D)x=312.设x为int型变量,则执行语句x=10;x+=x-=x-x;后,x的值为(B)。A)10 B)20 C)40 D)3013.只能向终端输出一个字符的函数是(B)。A)printf函数 B)putchar函数C)getchar函数 D)scanf函数14.下列程序执行后的输出结果是(小数点后只写一位)(A)。main(){doubled;floatf;longl;inti;i=f=1=d=20/3;printf("%d%ld%f%fn",i,l,f,d);}A)666.06.0 B)666.76.7C)666.06.7 D)666.76.015.在下列叙述中,错误的一条是(C)。A)printf函数可以向终端输出若干个任意类型的数据第215页共215页nB)putchar函数只能向终端输出字符,而且只能是一个字符C)getchar函数只能用来输入字符,但字符的个数不限D)scanf函数可以用来输入任何类型的多个数据16.以下程序的输出结果为(B)。main(){charc1=‘a’,c2=‘b’,c3=‘c’;printf(“a%cb%ctc%cn”,c1,c2,c3);}A)abcabcabc B)aabbcc C)abc D)aaaabb17.若输入12345和abc,以下程序的输出结果是(C)。main(){inta;charch;scanf(“%3d%3c”,&a,&ch);printf(“%d,%c”,a,ch);}A)123,abc B)123,4 C)123,a D)12345,abc第215页共215页n18.以下程序的输出结果是(D)。main(){unsignedx1;intb=-1;x1=b;printf(“%u”,x1);}A)%u B)-1 C)%u-1 D)6553519.在printf函数中用来输出十六进制无符号整数的格式字符是(B)。A)d格式符 B)x格式符 C)u格式符 D)o格式符20.设a=12、b=12345,执行语句printf(“%4d,%4d”,a,b)的输出结果为(B)。A)12,123 B)12,12345 C)12,1234 D)12,12345621.以下程序的输出结果是(C)。#include#includemain()第215页共215页n{inta=1,b=4,c=2;floatx=10.5,y=4.0,z;z=(a+b)/c+sqrt((double)y)*1.2/c+x;printf(“%fn”,z);}A)14.000000 B)15.400000 C)13.700000 D)14.90000022.以下程序的输出结果是(D)。main(){inta=2,c=5;printf(“a=%%d,b=%%dn”,a,c);}A)a=%2,b=%5 B)a=%2,c=%5C)a=%%d,b=%%d D)a=%d,b=%d23.请读程序:main(){inta;floatb,c;第215页共215页nscanf(“%2d%3f%4f”,&a,&b,&c);printf(“na=%d,b=%f,c=%fn”,a,b,c);}若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是(C)。A)a=98,b=765,c=4321 B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000 D)a=98,b=765.0,c=4321.024.若有定义:intx,y;chara,b,c;并有以下输入数据(此处代表回车,∪代表空格):1∪2A∪B∪C则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是(D)。A)scanf(“x=%d,y=%d”,&x,&y);a=getchar();b=getchar();c=getchar();B)scanf(“%d%d”,&x,&y);a=getchar();b=getchar();c=getchar();C)scanf(“%d%d%c%c%c”,&x,&y,&a,&b,&c);D)scanf(“%d%d%c%c%c%c%c%c”,&x,&y,&a,&a,&b,第215页共215页n&b,&c,&c);25.下列可作为C语言赋值语句的是(C)。A)x=3,y=5; B)a=b=6 C)i--; D)y=int(x);26.设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:scanf(“i=%d,f=%f”,&i,&f);为了把100和765.12分别赋给i和f,则正确的输入为(B)。A)100<空格>765.12<回车> B)i=100,f=765.12<回车>C)100<回车>765.12<回车> D)x=100<回车>y=765.12<回车>27.以下叙述中正确的是(D)。A)输入项可以是一个实型常量,例如:scanf(“%f”,3.5);B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:scanf(“a=%d,b=%d”);C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:scanf(“%4.2f”,&f);D)当输入数据时,必须指明变量地址,例如:scanf(“%f”,&f);28.设x和y均为int型变量,则以下语句:x+=y;y=x-y;x-=y;第215页共215页n的功能是(D)。A)把x和y按从小到大排序 B)把x和y按从大到小排序C)无确定结果 D)交换x和y中的值二填空题1.下面程序的运行结果是 i:dec=4,oct=4,hex=4,unsigned=65531 。main(){shorti;i=-4;printf(“ni:dec=%d,oct=%o,hex=%x,unsigned=%un”,i,i,i,i);}2.若想通过以下输入语句使a=5.0,b=4,c=3,则输入数据的形式应该是5.0,4,c=3。intb,c;floata;scanf("%f,%d,c=%d",&a,&b,&c);3.下列程序的输出结果是16.00,请填空。main(){inta=9,b=2;floatx=6.6第215页共215页n,y=1.1,z;z=a/2+b*x/y+1/2;printf("%5.2fn",z); }4.在printf格式字符中,只能输出一个字符的格式字符是c;用于输出字符串的格式字符是s;以小数形式输出实数的格式字符是f;以标准指数形式输出实数的格式字符是e。三编程题1.若a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1=’a’,c2=’b’。想得到以下的输出格式和结果,请写出完整的程序(包括定义变量类型和设计输出)。要求输出的结果如下:a=<空格>3<空格><空格>b=<空格>4<空格><空格>c=<空格>5x=1.200000,y=2.400000,z=-3.600000x+y=<空格>3.60<空格><空格>y+z=-1.20<空格><空格>z+x=-2.40u=<空格>51274<空格><空格>n=<空格><空格><空格>128756c1=a<空格>or<空格>97(ASCII)c2=B<空格>or<空格>98(ASCII)/*第215页共215页nvoidmain(){inta,b,c;unsignedu;,longintn;floatx,y,z;charc1,c2;a=3,b=4,c=5,x=1.2,y=2.4,z=-3.6,u=51274,n=128765,c1='a',c2='b';printf("a=%2db=%2dc=%2dn",a,b,c);printf("x=%f,y=%f,z=%+fn");printf("x+y=%5.2fy+z=%+5.2fz+x=%+5.2fn",x+y,y+z,z+x);printf("u=%6dn=%9dn");printf("c1=%cor%d(ASCII)n",c1,c1);printf("c2=%cor%d(ASCII)n",c2-32,c2);}*/2.输入一个华氏温度,要求输出摄氏温度。公式为输出要有文字说明,取2位小数。第215页共215页n/*voidmain(){floatc,f;printf("输入一个华氏温度:n");scanf("%f",&f);c=5.0/9.0*(f-32);printf("n输入的华氏温度%.2f,摄氏温度为:%.2fn",f,c);}*/3.编程序,用getchar函数读入两个字符给c1、c2,然后分别用putchar函数和printf函数输出这两个字符。/*voidmain(){charc1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf("nc1=%c;c2=%cn",c1,c2);第215页共215页n}*/第五章选择结构程序设计一单项选择题1.逻辑运算符两侧运算对象的数据类型是(D)。A)只能是0或1B)只能是0或非0正数C)只能是整型或字符型数据D)可以是任何类型的数据2.已知x=43,ch='A',y=0;则表达式(x>=y&&ch<'B'&&!y)的值是(C)。A)0 B)语法错 C)1 D)“假”3.已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是(B)。if(x>y)z=x;x=y;y=z;A)x=10,y=20,z=30 B)x=20,y=30,z=30C)x=20,y=30,z=10 D)x=20,y=30,z=20第215页共215页n4.执行下列语句后a的值为(2),b的值为(1)。(C)inta,b,c;a=b=c=1;++a||++b&&++c;A)错误1 B)22 C)21 D)115.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”,则以下不能满足要求的表达式是(C)。A)A%2==1 B)!(A%2==0) C)!(A%2) D)A%26.设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值是(B)。A)0 B)2 C)3 D)47.判断char型变量cl是否为小写字母的正确表达式是(D)。A)‘a’<=cl<=‘z’ B)(cl>=a)&&(cl<=z)C)(‘a’>=cl)||(‘z’<=cl) D)(cl>=‘a’)&&(cl<=‘z’)8.以下不正确的if语句形式是(C)。第215页共215页nA)if(x>y&&x!=y);B)if(x==y)x+=y;C)if(x!=y)scanf(“%d”,&x)elsescanf(“%d”,&y)D)if(x12?x+10:x-12;第215页共215页nprintf(“%dn”,y);}A)0 B)22 C)12 D)1016.语句:printf("%d",(a=2)&&(b=-2));的输出结果是(D)。A)无输出 B)结果不确定 C)-1 D)117.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(C)。A)c=b=a; B)(a=c)||(b=c); C)(a=c)&&(b=c); D)a=c=b;18.能正确表示a和b同时为正或同时为负的表达式是(D)。A)(a>=0||b>=0)&&(a<0||b<0) B)(a>=0&&b>=0)&&(a<0&&b<0)C)(a+b>0)&&(a+b<=0) D)a*b>019.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是(C)。A)a>=10ora<=0 B)a>=0|a<=10C)a>=10&&a<=0 D)a>=10||a<=020.有如下程序段第215页共215页ninta=14,b=15,x;charc=‘A’;x=(a&&b)&&(c<‘B’);执行该程序段后,x的值为(D)。A)ture B)false C)0 D)121.以下程序的输出结果是(C)。A)-11 B)01 C)10 D)00main(){inta=-1,b=1,k;if((++a<0)&&!(b--<=0))printf("%d%dn",a,b);elseprintf("%d%dn",b,a);}22.与y=(x>0?1:x<0?-1:0);的功能相同的if语句是(A)。A)if(x>0)y=1; B)if(x)elseif(x<0)y=-1;if(x>0)y=1;elsey=0;elseif(x<0)y=-1;elsey=0;C)y=-1 D)y=0;if(x)if(x>=0)第215页共215页nif(x>0)y=1;if(x>0)y=1;elseif(x==0)y=0;elsey=-1;elsey=-1;23.阅读以下程序:main(){intx;scanf("%d",&x);if(x--<5)printf("%d",x);elseprintf("%d",x++);}程序运行后,如果从键盘上输人5,则输出结果是(B)。A)3 B)4 C)5 D)624.假定w、x、y、z、m均为int型变量,有如下程序段:w=1;x=2;y=3;z=4;m=(w=85.”);case‘B’:case‘C’:printf(“>=60.”);第215页共215页ncase‘D’:printf(“<60.”);default:printf(“error.”);}}A)>=85. B)>=60. C)>=60.<60.error. D)error.32.当执行以下语句后的输出结果是(D)。intx=3,y=0;printf(“%d,%d”,-1>x>-10&&1y>-10&&11+2&&2||2*4<4-!0后,x的值为(C)。A)-1 B)0 C)1 D)534.以下程序的输出结果为(C)。main(){inta,b,c,x,y,z;a=10;b=2;c=!(a%b);x=!(a/b);y=(a=0);第215页共215页nz=(a=0);printf(“c=%d,x=%d,y=%d,z=%dn”,c,x,y,z);}A)c=0,x=1,y=1,z=0 B)c=5,x=0,y=1,z=0C)c=1,x=0,y=0,z=1 D)c=10,x=2,y=0,z=135.下列运算符中,不属于关系运算符的是(D)。A)< B)>= C)== D)!36.以下程序的输出结果是(B)。main(){inta,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%dn”,a,b);}A)6,1 B)2,1 C)6,0 D)2,037.设ch是char型变量,其值为A,且有下面的表达式:ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch上面表达式的值是(B)。A)A B)a C)Z D)z38.若k是int型变量,且有下面的程序片段:k=-3;第215页共215页nif(k<=0)printf(“####”)elseprintf(“&&&&”)上面程序片段的输出结果是(D)。A)#### B)&&&& C)####&&&& D)有语法错误,无输出结果39.请读程序:main(){floatx,y;scanf(“%f”,&x);if(x<0.0)y=0.0;elseif((x<5.0)&&(x!=2.0))y=1.0/(x+2.0);elseif(x<10.0)y=1.0/x;elsey=10.0;printf(“%fn”,y);}若运行时从键盘上输入2.0(表示回车),则上面程序的输出结果是(C)。A)0.000000 B)0.250000 C)0.500000 D)1.000000第215页共215页n40.请读程序:main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;case1:b++;break;}case2:a++;b++;break;}printf(“a=%d,b=%dn”,a,b);}上面程序的输出结果是(A)。A)a=2,b=1 B)a=1,b=1 C)a=1,b=0 D)a=2,b=241.为表示关系x≥y≥z,应使用C语言表达式(A)。A)(x>=y)&&(y>=z) B)(x>=y)AND(y>=z)第215页共215页nC)(x>=y>=z) D)(x>=y)||(y>=z)42.若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为(D)。A)a<>0 B)!a C)a=0 D)a43.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是(A)。main(){intx;scanf(“%d”,&x);if(x++>5)printf(“%d”,x);elseprintf(“%dn”,x--);}A)7和5 B)6和3 C)7和4 D)6和444.以下程序的输出结果是(D)。main(){inta=-1,b=4,k;k=(++a<0)&&!(b--<=0);printf(“%d%d%dn”,k,a,b);第215页共215页n}A)104 B)103 C)003 D)00445.设a为整型变量,不能正确表达数学关系1010&&a<15 D)!(a<=10)&&!(a>=15)46.假定所有变量均已正确说明,下列程序段运行后x的值是(B)。a=b=c=0;x=35;if(!a)x--;elseif(b);if(c)x=3;elsex=4;A)34 B)4 C)35 D)347.设a=1,b=2,c=3,d=4,则表达式ad?a:d的结果是(D)。A)4 B)3 C)2 D)148.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为(B)。if(a0)s=s+1;if(a>b)t=s+t;elseif(a==b)t=5;elset=2*s;printf(“t=%dn”,t);}A)a>b B)aa>b50.设intx=1,y=1;表达式(!x||y--)的值是(B)。第215页共215页nA)0 B)1 C)2 D)-151.若变量a、i已正确定义,且i已正确赋值,合法的语句是(B)。A)a==1 B)++i; C)a=a++=5; D)a=int(i);52.以下程序的输出结果为(C)。main(){inta=2,b=-1,c=2;if(a50)printf(“%d”,a);第215页共215页nif(a>40)printf(“%d”,a);if(a>30)printf(“%d”,a);}2.下面程序的运行结果是-1。main(){inta=2,b=3,c;c=a;if(a>b)c=1;elseif(a==b)c=0;elsec=-1;printf(“%dn”,c);}3.以下程序实现:输入三个整数,按从大到小的顺序进行输出。请填空。main(){intx,y,z,c;scanf(“%d%d%d”,&x,&y,&z);if(x=‘A’&&ch<=‘Z’)?(ch+32):ch;ch=(ch>=‘a’&&ch<=‘z’)?(ch-32):ch;printf(“%c”,ch);}5.若x为int类型,请以最简单的形式写出与逻辑表达式!x等价的C语言关系表达式x==0。6.表示“整数x的绝对值大于5”时值为“真”的C语言表达式是x>5||x<-5。7.下列程序段的输出结果是passwarn。intn='c';switch(n++){default:printf("error");break;case'a':case'A':case'b':case'B':printf("good");break;case'c':case'C':printf("pass");第215页共215页ncase'd':case'D':printf("warn");}8.以下程序将两个数从小到大输出。main(){floata,b,t;scanf("%f%f",&a,&b);if(a>b){t=a;a=b;b=t;}printf(“%5.2f,%5.2fn”,a,b);}9.若输入8642,以下程序的输出结果为(请输入一个0~99999之间的整数:)place=4,每位数字为:8,6,4,2。main(){longintnum;intgw,sw,bw,qw,ww,place;printf(“请输入一个0~99999之间的整数:”);第215页共215页nscanf(“%ld”,&num);if(num>9999)place=5;elseif(num>999)place=4;elseif(num>99)place=3;elseif(num>9)place=2;elseplace=1;printf(“place=%d,”,place);printf(“每位数字为:”);ww=num/10000;qw=(num-ww*10000)/1000;bw=(num-ww*10000-qw*1000)/100;sw=(num-ww*10000-qw*1000-bw*100)/10;gw=num-ww*10000-qw*1000-bw*100-sw*10;switch(place){case5:printf(“%d,%d,%d,%d,%d”,ww,qw,bw,sw,gw);break;case4:printf(“%d,%d,%d,%d”,qw,bw,sw,gw);break;case3:printf(“%d,%d,%d”,bw,sw,gw);break;case2:printf(“%d,%d”,sw,gw);break;case1:printf(“%d”,gw);break;}}第215页共215页n10.若输入1988,程序运行的结果为1988年是闰年。;若输入1989,则结果为1989年不是闰年。。main(){intyear,leap;scanf(“%d”,&year);if(year%4)leap=0;elseif(year%100)leap=1;elseif(year%400)leap=0;elseleap=1;if(leap)printf(“%d年是闰年。n”,year);elseprintf(“%d年不是闰年。n”,year);}11.用以下程序把大写字母A~Z转换成对应的小写字母a~z,其他字符不转换。main(){charch;scanf("%c",&ch);ch=(ch>='A'&&ch<='Z')?ch+32:ch;printf(“char=%cn”,ch);}12.条件“2020&&x<30||x<-100。13.若已知a=10,b=20,则表达式!ab)printf(“****y=%dn”,y);elseprintf(“####x=%dn”,x);第六章循环控制一单项选择题第215页共215页n1.下面程序段的运行结果是(C)。intn=0;while(n++<=2);printf(“%d”,n);A)2 B)3 C)4 D)有语法错2.设有程序段:t=0;while(printf(“*”)){t++;if(t<3)break;}下面描述正确的是(D)。A)其中循环控制表达式与0等价B)其中循环控制表达式与'0'等价C)其中循环控制表达式是不合法的D)以上说法都不对3.下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对相等数时结束循环,请选择填空(B)。#includemain(){inta,b,t;第215页共215页nscanf(“%d%d”,&a,&b);while(___________){if(a>b){t=a;a=b;b=t;}printf(“%d,%dn”,a,b);scanf("%d%d",&a,&b);}}A)!a=b B)a!=b C)a==b D)a=b4.C语言中,while和do-while循环的主要区别是(A)。A)do-while的循环体至少无条件执行一次B)while的循环控制条件比do-while的循环控制条件更严格C)do-while允许从外部转到循环体内D)do-while的循环体不能是复合语句5.对以下程序段描述正确的是(C)。x=-1;do{x=x*x;}while(!x);A)是死循环 B)循环执行二次C)循环执行一次 D)有语法错误第215页共215页n6.以下描述中正确的是(0)。A)do-while循环中循环体内不能使用复合语句B)do-while循环由do开始,用while结束,在while(表达式)后面不能写分号C)在do-while循环体中,一定要有能使while后面表达式的值变为零(“假”)的操作D)do-while循环中,根据情况可以省略while//此题四个选项均有错误。//对于A,当循环体不止一个语句时,可以用花括号包含成一个复合语句;//对于B,while(表达式)后面必须写分号;对于D,do-while是一个整体,不可省略while;//对于C,可能是参考答案。但出题者忽略了特殊情况:利用恒假的判断条件,故意使循//环只执行一次。因此,循环体中可以不必有C选项所强调的操作。7.若有如下语句intx=3;do{printf(“%3d”,x-=2);}while(!(--x));则上面程序段(B)。A)输出的是1 B)输出的是1和-2C)输出的是3和0 D)是死循环第215页共215页n8.下面有关for循环的正确描述是(D)。A)for循环只能用于循环次数已经确定的情况B)for循环是先执行循环的循环体语句,后判断表达式C)在for循环中,不能用break语句跳出循环体D)for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来9.对for(表达式1;;表达式3)可理解为(B)。A)for(表达式1;0;表达式3) B)for(表达式1;1;表达式3)C)for(表达式1;表达式1;表达式3) D)for(表达式1;表达式3;表达式3)10.若i为整型变量,则以下循环执行次数是(B)。for(i=2;i==0;)printf(“%d”,i--);A)无限次 B)0次 C)1次 D)2次11.以下不是无限循环的语句为(A)。A)for(y=0,x=1;x>++y;x=i++)i=x;B)for(;;x++=i);C)while(1){x++;}D)for(i=10;;i--)sum+=i;12.下面程序段的运行结果是(C)。第215页共215页nfor(y=1;y<10;)y=((x=3*y,x+1),x-1);printf(“x=%d,y=%d”,x,y);A)x=27,y=27 B)x=12,y=13 C)x=15,y=14 D)x=y=2713.执行语句for(i=1;i++<4;);后变量i的值是(C)。A)3 B)4 C)5 D)不定14.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。下面程序是求这堆零件总数,请选择填空(D)。#includemain(){inti;for(i=100;i<200;i++)if((i-2)%4==0)if(!((i-3)%7))if(______)printf(“%d”,i);}A)i%9=5 B)i%9!=5 C)(i-5)%9!=0 D)i%9==5第215页共215页n15.下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除,请选择填空(B)。#includemain(){inti=0,j,k;do{i++;k=316-13*i;}while(_______);j=k/11;printf(“316=13*%d+11*%d”,i,j);}A)k/11 B)k%11 C)k/11==0 D)k%11==016.下面程序的运行结果是(D)。#includemain(){inty=10;do{y--;}while(--y);printf(“%dn”,y--);}A)-1 B)1 C)8 D)017.若运行以下程序时,从键盘输入ADescriptor(表示回车),则下面程序的运行结果是(D)。第215页共215页n#includemain(){charc;intv0=1,v1=0,v2=0;do{switch(c=getchar()){case‘a’:case‘A’:case‘e’:case‘E’:case‘i’:case‘I’:case‘o’:case‘O’:case‘u’:case‘U’:v1+=1;default:v0+=1;v2+=1;}}while(c!=’n’);printf(“v0=%d,v1=%d,v2=%dn”,v0,v1,v2);}A)v0=7,v1=4,v2=7 B)v0=8,v1=4,v2=8C)v0=11,v1=4,v2=11 D)v0=12,v1=4,v2=1218.下面程序的运行结果是(B)。#includemain()第215页共215页n{inta=1,b=10;do{b-=a;a++;}while(b--<0);printf(“a=%d,b=%dn”,a,b);}A)a=3,b=11 B)a=2,b=8C)a=1,b=-1 D)a=4,b=919.以下程序的输出结果是(B)。main(){intnum=0;while(num<=2){num++;printf(“%dn”,num);}}A)1 B)1 C)1 D)l2 2 23 3420.设有程序段intk=10;while(k=0)k=k-1;第215页共215页n则下面描述中正确的是(C)。A)while循环执行10次 B)循环是无限循环C)循环体语句一次也不执行 D)循环体语句执行一次21.设有以下程序段intx=0,s=0;while(!x!=0)s+=++x;printf("%d",s);则(B)。A)运行程序段后输出0 B)运行程序段后输出1C)程序段中的控制表达式是非法的 D)程序段执行无限次22.语句while(!E);中的表达式!E等价于(A)。A)E==0 B)E!=1 C)E!=0 D)E==123.下面程序段的运行结果是(A)。a=1;b=2;c=2;while(a20)break;}while(a=14);A)a=12y=12 B)a=12y=12a=14y=16 a=16y=28a=16y=20a=18y=24C)a=12y=12 D)a=12y=12a=14y=26a=14y=44第215页共215页n26.t为int类型,进人下面的循环之前,t的值为0,则以下叙述中正确的是(B)。while(t=l){……}A)循环控制表达式的值为0 B)循环控制表达式的值为1C)循环控制表达式不合法 D)以上说法都不对27.有以下程序段intk=0;while(k=1)k++;while循环执行的次数是(A)。A)无限次 B)有语法错,不能执行C)一次也不执行 D)执行1次28.以下程序执行后sum的值是(C)。main(){inti,sum;for(i=1;i<6;i++)sum+=i;printf("%dn",sum);}A)15 B)14 C)不确定 D)029.有以下程序段第215页共215页nintx=3;do{printf("%d",x-=2);}while(!(--x));其输出结果是(C)。A)1 B)30 C)1-2 D)死循环30.若输入12、8,以下程序的输出结果是(A)。main(){inta,b,num1,num2,temp;scanf(“%d,%d”,&num1,&num2);if(num1>num2){temp=num1;num1=num2;num2=temp;}a=num1,b=num2;while(b!=0){temp=a%b;a=b;b=temp;}printf(“%d,%d”,a,num1*num2/a);第215页共215页n}A)4,24 B)3,24 C)5,25 D)4,2531.以下程序的输出结果是(A)。#include#includemain(){ints=1;floatn=1,pi=0;doublet=1;while(fabs(t)>=2e-6){pi+=t;n+=2;s=-s;t=s/n;}pi*=4;printf(“pi=%.6fn”,pi);}A)3.141592 B)1 C)2e-6 D)032.以下程序的输出结果是(B)。main()第215页共215页n{inti,f1,f2;f1=f2=1;for(i=0;i<4;i++){printf(“%d%d”,f1,f2);f1+=f2;f2+=f1;}}A)12345678 B)1123581321C)1135791113 D)1357911131533.下列叙述中,正确的一条是(B)。A)语句“goto12;”是合法的B)for(;;)语句相当于while(1)语句C)if(表达式)语句中,表达式的类型只限于逻辑表达式D)break语句可用于程序的任何地方,以终止程序的执行34.以下程序的输出结果是(B)。main(){inta,b;for(a=1,b=1;a<=100;a++){if(b>=20)break;if(b%3==1){b+=3;第215页共215页ncontinue;}b-=5;}printf(“%dn”,a);}A)7 B)8 C)9 D)1035.以下的for循环(C)for(x=0,y=0;(y!=123)&&(x<4);x++);A)是无限循环 B)循环次数不定C)执行4次 D)执行3次36.C语言中(D)A)不能使用do-while语句构成的循环B)do-while语句构成的循环必须用break语句才能退出C)do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D)do-while语句构成的循环,当while语句中的表达式值为零时结束循环37.以下程序的输出结果是(A)。main(){inti;for(i=1;i<=5;i++)第215页共215页n{if(i%2)printf(“*”);elsecontinue;printf(“#”);}printf(“$n”);}A)*#*#*#$ B)#*#*#*$ C)*#*#$ D)#*#*$38.有以下程序,从第一列开始输入数据2473(代表一个回车符),则程序的输出结果为(A)。#includemain(){intc;while((c=getchar())!=’n’){switch(c-‘2’){case0:case1:putchar(c+4);case2:putchar(c+4);break;case3:putchar(c+3);default:putchar(c+2);break;第215页共215页n}}printf(“n”);}A)668977 B)668966 C)6677877 D)668876639.执行以下程序片段的结果是(B)。intx=23;do{printf(“%d”,x--);}while(!x);A)打印出321 B)打印出23C)不打印任何内容 D)陷入死循环40.若x是int型变量,则执行以下程序片段的结果是(D)。for(x=3;x<6;x++)printf((x%2)?(“**%d”):(“##%dn”),x);A)**3##4**5 B)##3**4##5 C)##3 D)**3##4**4##5**541.有以下程序,若运行时从键盘输入3.62.4(代表一个回车符),则程序的输出结果为(B)。#include第215页共215页n#includemain(){floatx,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%fn”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.40000042.以下程序的输出结果是(A)。main(){intx=10,y=10,i;for(i=0;x>8;y=++i)printf(“%d%d”,x--,y);}A)10192 B)9876 C)10990 第215页共215页nD)10109143.以下程序的输出结果是(A)。main(){intn=4;while(n--)printf(“%d”,--n);}A)20 B)31 C)321 D)21044.以下程序的输出结果是(B)。main(){inti;for(i=’A’;i<’I’;i++,i++)printf(“%c”,i+32);}A)编译通不过,无输出 B)aceg C)acegi D)abcdefghi45.若i、j已定义为int型,则以下程序段中内循环体的总的执行次数是(A)。for(i=5;i;i--)for(j=0;j<4;j++){}第215页共215页nA)20 B)24 C)25 D)3046.若j为int型变量,则以下for循环语句的执行结果是(B)。for(j=10;j>3;j--){if(j%3)j--;--j;--j;printf(“%d”,j);}A)63 B)74 C)62 D)7347.以下程序的执行结果是(D)。main(){inti,x;for(i=1;i<=50;i++){x=i;if(++x%2==0)if(x%3==0)if(x%7==0)printf(“%d”,i);}}A)28 B)27 C)42 D)4148.以下程序的执行结果是(B)。main(){inti,j;第215页共215页nfor(j=10;j<11;j++){for(i=9;i=j-1)printf(“%d”,j);}}A)11 B)10 C)9 D)101149.在下列选项中,没有构成死循环的程序段是(C)。A)inti=100; B)for(;;);while(1){i=i%100+1;if(i>100)break;}C)intk=1000; D)ints=36;do{++k;}while(s);--s;while(k>=10000);50.以下程序的输出结果是(B)。main(){inti,j,x=0;for(i=0;i<2;i++){x++;for(j=0;j<=3;j++)第215页共215页n{if(j%2)continue;x++;}x++;}printf(“x=%dn”,x);}A)x=4 B)x=8 C)x=6 D)x=1251.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果是(C)。main(){intm,n;scanf(“%d%d”,&m,&n);while(m!=n){while(m>n)m-=n;while(n>m)n-=m;}printf(“m=%dn”,m);}A)m=3 B)m=2 C)m=1 D)m=052.以下程序的输出结果是(C)。main()第215页共215页n{inti,j,m=0,n=0;for(i=0;i<2;i++)for(j=0;j<2;j++)if(j>=i)m=1;n++;printf(“%dn”,n);}A)4 B)2 C)1 D)053.以下程序执行后sum的值是(C)。main(){inti,sum=0;for(i=1;i<=3;sum++)sum+=i;printf("%dn",sum);}A)6 B)3 C)死循环 D)0二填空题1.以下程序运行后的输出结果是52。main(){inti=10,j=0;do{j=j+i;i--;}第215页共215页nwhile(i>2);printf("%dn",j);}2.设有以下程序:main(){intn1,n2;scanf("%d",&n2);while(n2!=0){n1=n2%10;n2=n2/10;printf("%d",n1);}}程序运行后,如果从键盘上输入1298,则输出结果为8921。3.若输入字母b,程序输出结果为b,B;若输入字符*,程序将怎样等待重新输入。#includemain(){charc1,c2;c1=getchar();while(c1<97||c1>122)c1=getchar();c2=c1-32;第215页共215页nprintf("%c,%cn",c1,c2);}4.用以下程序计算1到100的整数的累加和。main(){inti=1,sum=0;for(;i<=100;){sum+=i;i++;}printf("sum=%dn",sum);}5.以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束。请填空。main(){floatx,amax,amin;scanf(“%f”,&x);amax=x;amin=x;while(x>=0){if(x>amax)amax=x;if(x,则以下while循环体将执行0次。while((ch=getchar())==‘e’)printf(“*”);第七章数组一单项选择题1.下列描述中不正确的是(C)。A)字符型数组中可以存放字符串B)可以对字符型数组进行整体输入、输出C)第215页共215页n可以对整型数组进行整体输入、输出D)不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值2.执行下面的程序段后,变量k中的值为(A)。intk=3,s[2];s[0]=k;k=s[1]*10;A)不定值 B)33 C)30 D)103.设有数组定义:chararray[]="China";则数组array所占的空间为(C)。A)4个字节 B)5个字节 C)6个字节 D)7个字节4.下列程序执行后的输出结果是(A)。#includemain(){chararr[2][4];strcpy(arr,"you");strcpy(arr[1],"me");arr[0][3]=’&’;printf("%sn",arr);}A)you&me B)you C)me D)err5.执行下列程序时输入:123<空格>456<空格>789<回车>,输出结果是(D)。第215页共215页nmain(){chars[100];intc,i;scanf("%c",&c);scanf("%d",&i);scanf("%s",s);printf("%c,%d,%sn",c,i,s);}A)123,456,789 B)1,456,789C)1,23,456,789 D)1,23,4566.假定int类型变量占用两个字节,若有定义:intx[10]={0,2,4};则数组x在内存中所占字节数是(D)。A)3 B)6 C)10 D)207.以下程序的输出结果是(C)。main(){inti,a[10];for(i=9;i>=0;i--)a[i]=10-i;printf("%d%d%d",a[2],a[5],a[8]);}A)258 B)741 C)852 D)3698.以下数组定义中不正确的是(D)。第215页共215页nA)inta[2][3]; B)intb[][3]={0,1,2,3};C)intc[100][100]={0}; D)intd[3][]={{1,2},{1,2,3},{1,2,3,4}};9.以下程序的输出结果是(A)。main(){inta[4][4]={{1,3,5},{2,4,6},{3,5,7}};printf("%d%d%d%dn",a[0][3],a[1][2],a[2][1],a[3][0]);}A)0650 B)1470 C)5430 D)输出值不定10.以下程序的输出结果是(B)。#includemain(){charst[20]="hello t\";printf(%d%dn",strlen(st),sizeof(st));}A)99 B)520 C)920 D)202011.以下程序的输出结果是(B)。main(){inti,k,a[10],p[3];第215页共215页nk=5;for(i=0;i<10;i++)a[i]=i;for(i=0;i<3;i++)p[i]=a[i*(i+1)];for(i=0;i<3;i++)k+=p[i]*2;printf("%dn",k);}A)20 B)21 C)22 D)2312.以下程序的输出结果是(C)。main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",x[i][2-i]);}A)159 B)147 C)357 D)36913.以下程序的输出结果是(A)。main(){inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%dn",s);}A)18 B)19 C)20 D)21第215页共215页n14.以下程序的输出结果是(D)。main(){charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;for(k=1;k<3;k++)printf("%sn",w[k]);}A)ABCD B)ABCD C)EFG D)EFGHFGHEFGJKIJKLKLIJOM15.当执行下面的程序时,如果输入ABC,则输出结果是(A)。#include#includemain(){charss[10]="12345";gets(ss);strcat(ss,"6789");printf("%sn",ss);}A)ABC6789 B)ABC67 C)12345ABC6 D)ABC45678916.若要定义c为2×3×第215页共215页n4的三维数组,正确的定义语句是(A)。A)floatc[2][3][4] B)floatc[2,3,4]C)floatc(2,3,4) D)floatc(2)(3)(4)17.若定义inta[2][2]={1,2,3,4},则a数组的各数组元素值分别为(A)。A)a[0][0]=1,a[0][1]=2,a[1][0]=3,a[1][1]=4B)a[0][0]=1,a[0][1]=3,a[1][0]=2,a[1][1]=4C)a[0][0]=4,a[0][1]=3,a[1][0]=2,a[1][1]=1D)a[0][0]=4,a[0][1]=2,a[1][0]=3,a[1][1]=118.在下列叙述中,正确的一条是(A)。A)以下语句是正确的:charc[]=”ab”;B)一维数组的定义可采用下列格式:inta(10);C)下面的语句定义了一个二维数组:floata[3,4];D)以下两个语句中的a[3][4]的含义相同:inta[3][4];a[3][4]=1;19.当输入的数据为2、5时,以下程序的输出结果是(C)。#includemain(){intf[100],i,j,k,m;scanf(“%d%d”,&k,&m);第215页共215页nfor(i=0;i<=m;i++)f[i]=0;f[k-1]=1;for(i=k;i<=m;i++)for(j=i-k;j<=i-1;j++)f[i]+=f[j];printf(“%d%10d%10dn”,k,m,f[m]);}A)355 B)357 C)255 D)36920.在下列语句中,正确的是(A)。A)charstr[]=”China”;B)charstr[];str=”China”;C)charstr1[5],str2[]={”China”};str1=str2;D)charstr1[],str2[];str2={”China”};strcpy(str1,str2);21.下面语句中不正确的是(D)。A)inta[5]={1,2,3,4,5}; B)inta[5]={1,2,3};C)inta[]={0,0,0,0,0}; D)inta[5]={0*5};22.若先后输入4、1、5、3、7,以下程序的输出结果为(D)。#defineMAX100main(){第215页共215页ninti,j,n,flag,t,a[MAX];printf(“输入数据个数:”);scanf(“%dn”,&n);for(i=1;i<=n;i++)scanf(“%d”,&a[i]);for(i=1;ia[j+1]){flag=0;t=a[j];a[j]=a[j+1];a[j+1]=t;}if(flag)break;}for(i=1;i<=n;i++)printf(“%-3d”,a[i]);printf(“n”);}A)2467 B)1234C)1547 D)135723.以下程序的输出结果是(B)。main()第215页共215页n{intn,a[10];for(n=0;n<=9;n++)a[n]=n;for(n=9;n>=0;n--)printf(“%d”,a[n]);}A)12345678910 B)9876543210C)10987654321 D)012345678924.若输入aefjhi、c、adfjhijk,以下程序的输出结果为(B)。#include#includemain(){inti;charstring[20],str[3][20];for(i=0;i<3;i++)gets(str[i]);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);elsestrcpy(string,str[1]);if(strcmp(str[2],string)>0)strcpy(string,str[2]);printf(“Thelargeststringisn%sn”,string);}A)adfjhi B)c C)aefjhijk D)第215页共215页naefjhi25.以下程序的输出结果是(A)。#include#includemain(){charstr[12]={’s’,’t’,’r’,’i’,’n’,’g’};printf(“%dn”,strlen(str));}A)6 B)7 C)11 D)1226.有以下程序:#include#defineN6main(){charc[N];inti=0;for(;i代表一个回车符:a第215页共215页nbcdef程序的输出结果是(C)。A)abcdef B)a C)a D)abbbccdddcdefef27.设有:charstr[]=“Beijing”;则执行:printf(“%dn”,strlen(strcpy(str,“China”)));后输出的结果为(A)。A)5 B)7 C)12 D)1428.请选出以下程序的输出结果(A)。#includemain(){chars1[10],s2[10],s3[10],s4[10];scanf(“%s%s”,s1,s2);gets(s3);gets(s4);puts(s1);puts(s2);puts(s3);puts(s4);}输入数据如下:(此处代表回车符)第215页共215页naaaabbbbccccddddA)aaaa B)aaaa C)aaaa D)aaaabbbbbbbbbbbbbbbbccccccccccccddddddddccccddddddddeeee29.请读程序:main(){intn[2],i,j,k;for(i=0;i<2;i++)n[i]=0;k=2;for(i=0;i