一、单项选择题(每小题2分,共50分)1、一个C程序的执行是从___A__。A、本程序的main函数开始,到main函数结束B、本程序的main函数开始,到本程序文件的最后一个函数结束C、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束D、本程序文件的第一个函数开始,到本程序main函数结束2、C语言程序的基本单位是___C___。A、程序行B、语句C、函数D、字符3、请选出可用作C语言用户标识符的一组标识符___B___。A、voidB、a3_b3C、ForD、2adefine_123-abcDOWORDIFasesizeof4、假定x和y为double型,则表达式(x=2,y=x+5/2)的值是__C__。A、4.500000B、4C、4.000000D、2.0000005、下列可以正确表示字符型常量的是___D__。A、297B、aC、\nD、'\t'6、在C语言中,要求运算数必须是整型的运算符是__D__。A、/B、++C、*=D、%7、C语言中,复合语句的构成是将一系列语句置于__C__。A、begin与end之间B、方框号“[]”之间C、花括号“{}”之间D、圆括号“()”之间8、有如下程序段,对应正确的数据输入是___A___。floatx,y;scanf(”%f%f”,&x,&y);printf(”a=%f,b=%f”,x,y);A、2.04回车B、2.04,5.67回车5.67回车C、A=2.04,B=5.67回车D、2.045.67回车9、以下程序段的输出结果是___D__。inta=5678;printf(”%2d\n”,a);A、提示出错、无结果B、56C、78D、567810、已知:charch='A';则下列表达式的值是__B__。ch=(ch='A'&&ch='Z')?(ch+32):ch;A、AB、aC、ZD、z11、下列描述,正确的是___B__。A、表达式3.91%5是合法的B、用b=89作为while循环的条件是合法的C、逗号表达式是没有值和类型的D、字符型变量和int型变量的操作完全不同12、阅读以下程序:main(){intx;scanf(%d,&x);if(x--5)printf(%d,x);elseprintf(%d,x++);}程序运行后,如果从键盘上输人5,则输出结果是__B__。A、3B、4C、5D、613、下列程序的运行结果是___C__。#include”stdio.h”main(){intk;k=3;switch(k){case1:printf(”%d\n”,k++);case2:printf(”%d\n”,k++);case3:printf(”%d\n”,k++);case4:printf(”%d\n”,k++);break;default:printf(”Full!\n”);}}A、3B、4C、3D、44414、设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=1,则逻辑表达式(m==ab)&&(n==cd)的值为__A__。A、0B、1C、2D、315、设x、y和temp均为longint型变量,则以下语句:{temp=x;x=y;y=temp;}的功能是__D__。A、把x和y按从大到小排列B、把x和y按从小到大排列C、无确定结果D、交换变量x和变量y的值16、以下程序的输出结果是___A__。main(){inta,b;for(a=1,b=1;a=100;a++){if(b=10)break;if(b%3==1){b+=3;continue;}}printf(%d\n,a);}A、4B、6C、5D、10117、执行以下程序后输出的结果是___D__。main(){inty=10;do{y--;}while(--y);printf(%d\n,y--);}A、-1B、1C、8D、018、执行以下程序后输出的结果是___B__。main(){inti,j,w=0;for(i=4;i;i--)for(j=1;j=2;j++)w=w+i*j;w=i*j;printf(%d\n,w);}A、4B、0C、1D、3019、以下程序运行后,输出结果是__C__。main(){intn[5]={3,3,3},i,k=2;for(i=0;ik;i++)n[i]=n[i]+1;printf(%d\n,n[k]);}A、4B、9C、3D、不确定的值20、以下程序的输出结果是__A__。f(inta){intb=0;staticintc=3;b++;c++;return(a+b+c);}main(){inta=2,i;for(i=0;i3;i++)printf(%d\n,f(a));}A、7B、7C、7D、78910791113721、设C程序如下:#defineABC(x)x*x#includestdio.hmain(){inta=3,b;b=ABC(a+1);printf(b=%d,b);}上述程序运行输出的结果是__D_。A、b=4B、b=a+1C、b=16D、b=722、以下程序的输出结果是__B__。main(){inti,a[10];for(i=9;i=0;i--)a[i]=10-i;printf(%d%d%d,a[1],a[6],a[9]);}A、169B、941C、961D、35723、若定义:floatx=3.14159,*p=&x;则printf(%f\n,*p++);的输出结果为__C__。A、无确定值B、x的地址C、3.14159D、4.1415924、以下程序的输出结果是___B__main(){charb[]=Language;char*p=b;printf(%c,*(b+2));p=p+7;printf(%c\n,*p++);}A、27B、neC、agD、nu25、下列程序的输出结果是___A__。#includestdio.hmain(){inta[]={1,2,3,4,5,6,7,8,9,0},i,s,*p;p=a;s=0;for(i=0;i=9;i++)s+=*p++;printf(%d\n,s);}A、45B、44C、0D、9二、判断题(每小题1分,共10分)1.语句int*point;中的point是指针变量名。(T)2.主函数和其它函数之间可以相互调用。(F)3.puts()和gets()函数只能输入或输出一个字符。(F)4.可以对字符型数组元素进行整体输入、输出。(T)5.do-while语句构成的循环不能用其他语句构成的循环来代替。(F)6.在一个函数内的复合语句中定义的变量可以在本函数范围内有效。(F)7.函数必须有返回值,否则不能使用函数。(F)8.for(;;);语句相当于while(1);语句。(T)9.C程序的执行总是从第一个定义的函数开始。(F)10.C语言中的关键字专门用作语言的特定成分,而不能作为一般标识符使用。(T)三、程序填空题(每空2分,共10分)1、下面程序完成判断某一个数m是否为素数,如果是则输出misaprime!,否则就输出misnotaprime!,请选择填空。main(){inti,m;scanf(m=%d,&m);for(i=2;im;i++){if(m%i==0){printf(%disnotaprime!\n,m);(1)}else(2)}if(i==m)printf(%disaprime!\n,m);}(1)、A、breakB、continueC、break;D、continue;(2)、A、breakB、break;C、continueD、continue;2、以下程序的功能是:求出用数字0至9组成没有重复数字且是13倍数的三位数的个数,请选择填空。#includestdio.hvoidmain(){inti,j,k,w,count=0;for((3);i=9;i++)for(j=0;j=9;j++)for(k=0;k=9;k++)if((4)){w=i*100+j*10+k;if((5))count++;}printf(\ncount=%d\n,count);}(3)、A、i=0B、i=1C、i=9D、i=-1(4)、A、i!=jB、i!=j||j!=kC、i!=j&&j!=kD、i!=j&&j!=k&&k!=i(5)、A、w%13=0B、w/13=0C、w%13==0D、w/13==0四、编程题(第1小题12分,第2小题18分,共30分)1、从键盘输入一个4位数的正整数n,将该数反序输出。例如,若输入的是1357,则输出的是7531。要求:1)利用VC++编译系统进行调试、运行2)对输入的正整数n的合法性进行检查3)将源程序以“编程题1.c”为文件名保存在网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他地方均不能得分2、已知一组字符串a[27]=jjyyzzabcdefgJJYYZZABCDEFG;请编一程序,将其中的小写字母换成其前一个字母,即z换成y,y换成x,...,b换成a,若是a则换成z。然后对数组a[27]从小到大排序,并输出排序后的字符串。要求:1)利用VC++编译系统进行调试、运行2)先输出原字符串(即未做任何改变的字符串),最后输出排序后的字符串3)将源程序以“编程题2.c”为文件名保存在网络盘(K:盘)的考生文件夹上,用其它文件名保存或保存在其他地方均不能得分