第1页共13页说明:请将单项选择题(1~50空)的正确答案涂写考试答题卡,将填空(51~75空)等文字题按【】中的序号写入下面文字答题卡,否则不得分。二、阅读程序题文字答题卡:(每空2分,共24分)1题【51】1题【52】2题【53】3题【54】4题【55】5题【56】6题【57】7题【58】7题【59】8题【60】9题【61】10题【62】三、完善程序填空题文字答题卡:(每空2分,共26分)1题【63】2题【64】【65】【66】3题【67】【68】【69】4题【70】【71】【72】5题【73】【74】【75】一、单项选择题(每空1分,共50分)请将正确答案按【】中的序号写入答题卡,否则不得分。1.C源程序的扩展名为【】。第2页共13页A).CB).DLLC).EXED).DOC2.按照标识符的要求,【】符号不能组成标识符。A)数字符号B)下划线C)连接符D)大小写字母3.设有说明:charc;inta;floatx;doubley;则表达式c*a+y-x值的数据类型是【】。A)doubleB)charC)intD)float4.已知小写字母a的ASCII码值是97,大写字母A的ASCII码值是65,下列语句中不能输出大写字母B的是【】。A)putchar('A'+1);B)putchar('b'-32);C)putchar(98-32);D)putchar(B);5.在C语言中,数值常量0x9f对应十进制值是【】。A)160B)87C)9fD)1596.整型变量a定义后赋初值的结果是【】。inta=2.8*6;A)12B)16C)17D)187.将小写字母n赋值给字符变量one_char,正确的操作是【】。A)one_char=’\n’;B)one_char=”n”;C)one_char=110;D)one_char=’N’;8.若有以下说明和语句,则输出结果是【】。chars[10]=atest!;printf(%d,strlen(s));A)6B)8C)7D)99.下面的程序结果为:【】。main(){inta;printf(%d\n,(a=3*5,a*4,a+5));}执行完输出函数后,a的值是【】。A)65B)20C)15D)1010.下列运算附中,优先级最低的是【】。A)&B)&&C)^D)|11.C语言的下列运算符中,运算对象必须是整型数据的是【】。A)%B)/C)&&D)*12.设有以下语句:intx=10;x+=3+x%(-3),则x的值是【】。A)14B)15C)11D)1213.下面程序的输出结果是【】。main(){inta=-1,b=4,k;第3页共13页clrscr();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,314.下面哪个表达式的值为4【】。A)11/3B)11.0/3C)(float)11/3D)(int)(11.0/3+0.5)15.下列程序的运行结果是【】。main(){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,116.下面程序的输出结果是【】。main(){intx=2,y=-1,z=2;if(xy)if(y0)z=0;elsez+=1;printf(“%d\n”,z);}A)3B)1C)2D)017.运行下面程序,若从键盘输入“3”和“5”,则程序的输出结果是【】。main(){intx,y;scanf(“%d,%d”,&x,&y);if(x==y)printf(“x==y”);elseif(xy)printf(“xy”);elseprintf(“xy”);}A)35B)53C)xyD)xy18.若有条件表达式x?a++:b--,则以下表达式中能完全等价于表达式x的是【】。A)(x==0)B)(x!=0)C)(x==1)D)(x!=1)第4页共13页19.结构化程序设计的三种基本结构是【】。A)顺序结构、选择结构、循环结构B)顺序结构、转移结构、递归结构C)嵌套结构、选择结构、递归结D)嵌套结构、循环结构、顺序结构20.下面的程序main(){inti;for(i=0;i10;i++);printf(%d\n,i);}的输出结果是【】。A)0B)123456789C)0123456789D)1021.do语句的循环次数为【】。inta=10;do{a--;}while(a!=0)A)10B)9C)11D)1222.下面程序段的运行结果是【】。intn=0;while(n++=2);printf(“%d”,n);A)2B)3C)4D)出错信息23.对以下程序段的叙述正确的是【】。intk=0;while(k=0)k=k-1;A)while循环之行10次B)无线循环C)循环体一次也不执行D)循环体被执行一次24.下面程序的运行结果是【】。main(){inti,b,k=0;for(i=1;i=5;i++){b=i%2;while(b--=0)k++;}printf(“%d,%d\n”,k,b);}A)3,-1B)8,-1C)3,0D)8,-225.以下不正确的定义语句是【】。A)doublex[5]={2.0,4.0,6.0,8.0,10.0};B)inty[5]={0,1,3,5,7,9};C)charc1[]={'1','2','3','4','5'};第5页共13页D)charc2[]={'\x10','\xa','\x8'};26.以下不能对二维数组a进行正确初始化的语句是【】。A)inta[2][3]={0};B)inta[][3]={{1,2},{0}};C)inta[2][3]={{1,2},{3,4},{5,6}};D)inta[][3]={1,2,3,4,5,6};27.下面的程序运行时,若从键盘输入WhatdoesCRthiswordCRmean?CR则输出Whatdoesthiswordmean?请将程序填完整。#includestdio.hmain(){chars1[10],s2[10],s3[10],s4[10];scanf(%s%s\n,s1,s2);【】;scanf(%s,s4);printf(%s%s%s%s\n,s1,s2,s3,s4);}A)gets(s3);B)scanf(%s\n,s3);C)scanf(%s,s3);D)getchar(s3);28.设有说明char*a=Nosmoking!;则以下不能正确输出的语句是【】。A)printf(%s,&a);B)printf(%s,a);C)puts(a);D)puts(Nosmoking!);29.以下程序的输出结果是【】。#includestring.hmain(){charstr[12]={'s','t','r','i','n','g',’\0’};printf(%d,strlen(str));}A)12B)11C)7D)630.以下程序的输出结果是【】。main(){inti,x[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i3;i++)printf(%d,,x[i][2-i]);}A)1,5,9,B)1,4,7,C)3,5,7,D)3,6,9,31.若有说明intx;则下面判断不正确的是【】。A)x和(&x)[0]等价B)x和*&x等价C)&x和x[0]等价D)*&x和(&x)[0]等价32.下面说明不正确的是【】。A)chara[10]=china;B)chara[10],*p=a;p=china第6页共13页C)char*a;a=china;D)chara[10],*p;p=a=china33.设己定义staticinta[]={0,1,2,3,4,5,6,7,8,9},*p=a,i;其中0<i<9,则对a数组元素的引用不正确的是【】。A)p[p–a]B)*(&a[i])C)p[i]D)*(*(a+i))34.若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则下列叙述中不正确的是【】。A)ps+1与ps[1]等价B)*(ps+1)与ps[1]等价C)ps[1][1]与*(*(ps+1)+1)等价D)**(ps+1)与ps[1][1]等价35.C语言规定,函数返回值的类型是由【】。A)return语句的表达式类型所决定B)调用该函数时的主调函数类型所决定C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型所决定36.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是【】。A)地址传递B)单向值传递C)由实参传给形参,再由形参传回实参D)传递方式由用户指定37.请读程序:#includestdio.hfun(char*s){char*p=s;while(*p!='\0')p++;return(p-s);}main(){printf(“%d\n”,fun(“abcdef”));}上面输出结果是【】。A)3B)6C)8D)038.在一个C源程序文件中,若要定义一个只允许在该源程序文件中所有函数使用的变量,则该变量需要的存储类别是【】。A)staticB)externC)registerD)auto39.以下程序的输出结果是【】。intf(){staticinti=0;ints=1;s+=i;第7页共13页i++;returns;}main(){inti,a=0;for(i=0;i5;i++)a+=f();printf(%d\n,a);}A)20B)24C)25D)1540.若定义enumcolor{red,green,blue,purple,yellow,black,orange}cl;,执行语句c1=green+blue;后,以下选项中cl的结果正确的是【】。A)greenblueB)purpleC)yellowD)编译出错41.使用typedef定义一个新类型的正确步骤是【】。1.把变量名全部删除换成一个新类型名2.按定义变量的方法写出定义体3.用新类型名定义变量4.在最前面加上关键字typedefA)2,3,1,4B)1,3,2,4C)2,1,4,3D)4,2,3,142.为了显示一个文本文件的内容,在打开文件时,文件的打开方式应当是【】。A)“r+”B)“w+”C)“wb+”D)“ab+”43.在进行文件操作时,写文件的一般含义是【】。A)将计算机内存中的信息存入磁盘B)将磁盘中的信息存入计算机内存C)将计算机CPU中的信息存入磁盘D)将磁盘中的信息存入计算机CPU44.已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是【】。A)一个整型变量,代表要读入的数据项总数B)一个文件指针,指向要读入的文件C)一个指针,指向要存放读入数据的首地址D)一个存储区,存放要读入的数据项45.若调用fputc函数输出字符成功,则其返回值是【】。A)输出的字符B)0C)1D)EOF46.当读写二进制文件,没到文件末尾时,feof函数的值是【】。A)非零值B)0C)1D)TRUE47.编译预处理命令不可以放在【】。A)源文件末尾B)函数内部C)函数外部D)源程序文件的开头48.下列程序的运行结果是【】。#defineN2#defineMN+2#defineCUBE(x)(x*x*x)第8页共13页main(){inti;i=CUBE(M);printf(%d\n,i);}A)12B)53C)64D)4149.下列程序的运行结果是【】。#defineM3#defineNM+1#defineNNN*N/2main(){printf(%d\n,5*NN);}A)17B)18C)30D)4050.以下程序段的输出结果是【】。main(){chars[]=\\141\141abc\t;printf(%d\n,str