当前位置:文档之家› 计科模拟卷1(答案)

计科模拟卷1(答案)

第一部分 C语言程序设计(共100分)答案一、单项选择题(本大题共30小题,每小题2分,共60分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将正确答案代码填写在答题纸相应位置上。

1、()是整型常量。

AA、0xffB、12e+2C、(double)3D、-2.32、已知各变量的类型说明如下:int k,a,b ;unsigned long w=5 ;double x=1.42以下不符合C语言语法的表达式是()AA、x%(-3)B、w+=-2C、k=(a=2,b=3,a+b)D、a+=a-=(b=4)*(a=3)3、'\0'&&'0'的值为()AA、0B、1C、大于0D、小于04、'x' 和 "x"各占()字节 AA、1,2B、1,1C、2,1D、2,25、以下for循环体的执行次数是for (x=0,y=0;(y=123)&&x<4;x++); ()CA、执行3次B、循环次数不定C、执行4次D、是无限循环6、int a[10],*p=a; 则*(p+5)表示()BA、元素a[5]的地址B、元素a[5]的值C、元素a[6]的地址D、元素a[6]的值7、若定义int a[3][4],下列四种对a数组元素的引用中有可能出错的是()DA、a[0][2*1]B、a[1][3]C、a[4-2][0]D、a[3][3]8、设m,n,a,b,c,d均为0,执行(m=a= =b)||(n=c= =d)后,m,n的值是()CA、0,0B、0,1C、1,0D、1,19、设int a,i,j;则赋值语句 a+=a=(i=14)%(j=12);执行后a的值为()CA、2B、0C、4D、不确定10、float *p, 则p+1的含义是()BA、p的值加1B、p的值加上sizeof(float)C、p的值减去sizeof(float)D、p的值加211、设int a[12]; 则a[i] 的地址为()CA、&(a+i)B、a[i]C、(a+i)D、*(a+i)12、执行以下程序段后,输出结果是()Amain(){ int x=-1,a=0,b=0;switch(x){ case 0:b++;case 1:a++;b++;case 2:b++;}printf("a=%d,b=%d\n",a,b);}A、a=0,b=0B、a=1,b=1C、a=1,b=2D、a=2,b=213、设char x='0';则 printf("%c,%d",x,x);的输出为()AA、0,48B、0,0C、48,0D、48,4814、设int x=1,*p=&x;则语句 x=*p+x;则()BA、语法错误B、执行后x的值为2C、执行后x的值为1D、执行后x的值无法确定15、执行以下程序段后,输出结果是()Dmain(){char *p="\\\"ABC\"\\";printf("%d,%d\n",strlen(p),sizeof(p));}A、7,8B、8,8C、8,4D、7,216、逻辑运算符两侧的运算对象()DA、只能是0或1B、只能是0或非0正数C、只能是整型或字符型数据D、可以是任意类型数据17、设int m1=5,m2=3; 表达式m1>m2?(m1=1):(m2=-1)运算后m1和m2的值分别是()BA、1和-1B、1和3C、5和-1D、5和318、设char c[5]={'a','b','\0','c','\0'};则printf("%s",c);的输出是()BA、'a' 'b'B、abC、abcD、"ab\0"19、设char *s="china";则 printf("%s,%c,%c\n",s,*s,s[3]);的输出是()AA、china,c,nB、china,china,iC、c,cnD、china,china,n20、与语句if (a>b) if(c>d)x=1;else x=2;等价的是()AA、if (a>b) {if(c>d)x=1;else x=2;}B、if (a>b){if(c>d)x=1;}else x=2;C、if ((a>b)&& (c>d))x=1;else x=2;D、if(a<=b) x=2;else if(c>d)x=1;21、执行下列程序int a[3][3]={{1},{2},{3}};int b[3][3]={1,2,3};main(){ printf("%d\n",a[1][0]+b[0][0]); }后的输出结果是()DA、0B、1C、2D、322、在文件使用方式中,字符串"rb"表示()AA、打开一个已存在的二进制文件,只能读取数据B、打开一个文本文件,只能写入数据C、打开一个已存在的文本文件,只能读取数据D、打开一个二进制文件,只能写入数据23、设char str1[10]="ABCDE",str2[10]="XYZ";则执行语句printf("%d",strlen(strcpy(str1,str2)));后的输出是()AA、3B、5C、8D、924、下列运算符中,优先级最低的是()DA、[ ]B、.C、( )D、!25、对静态变量m1,m2进行如下定义:static int m1,m2;则下列叙述正确的是()BA、m1,m2无初值B、m1,m2初值均为0C、上述语句有错误D、m1,m2初值为随机数26、若已知int 类型占两个字节,则下述程序运行结果为()D struct abc{char a[10];double b;int c;};printf("%d\n",sizeof(struct abc ));A、8B、16C、30D、2027、对两个静态数组A和B进行如下初始化static char A[]="ABCDEF";static char B[]={'A','B','C','D','E','F'};则下列叙述正确的是()DA、A和B完全相同B、A和B只是长度相等C、A和B不相同,A是指针数组D、A数组长度比B数组长28、从键盘输入:china#后,下面程序的执行结果是:()D void try(){char c;if((c=getchar())!='#'){try();putchar(c);}}main(){ try(); }A、程序出错,因为try为保留字B、china#C、chinaD、anihc29、执行下列程序#define R 0.5#define AREA(x) R*x*xmain(){ int a=1,b=2;printf("%5.1f\n",AREA(a+b));}后输出的结果是()DA、0.0B、0.5C、3.5D、4.530、若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是()DA、a[g-c]B、a[4]C、a['d'-'c']D、a['d'-c]二、程序阅读题(本大题共4小题,每小题5分,共20分)阅读下列程序,请将运行时输出的结果写在答题纸相应的位置上。

31、main(){char *a[2]={"one","two"},**p=a;printf("%s,",*(p++)+1);printf("%c\n",**p-1);}ne,s32、main(){int i, j, x=3;for(i=0; i<3; i++){x++;for(j=0;j<=2;j++){if(j%2 == 0)continue;x+=2;}}printf(“x=%d,\n”,x);}x=12,33、void func(char *s,char *t){int i;for(i=strlen(s);i>0;i--) *t++=*(s+i-1);*t='\0';}void main(){ char *s="Computer";char t[10];func(s,t);printf("%s\n",t);}retupmoC34、/*程序段中□表示空格*/void a(int i){int j,k;for (j=0;j<=4-i;j++)printf("□"); for (k=0;k<2*i+1;k++)printf("*"); printf("\n");}void main(){ int i;for (i=0;i<3;i++)a(i);for (i=3;i>=0;i--)a(i);}□□□□□*□□□□* * *□□□* * * * *□□* * * * * * *□□□* * * * *□□□□* * *□□□□□*三、完善下列程序(本大题共2小题,每空4分,共20分)请将答案写在答题纸相应的位置上。

35、输入一个数x,找出x在数组a中的位置,若该数不在数组a中,则打印“无此数”。

main(){int a[10]={1,4,5,6,7,8,9,12,17,18};int x,bot,top,mid;scanf("%d",&x);top=0;bot=9;while(top<=bot){mid= ① ;if(x= =a[mid]) ② ;else if(x<a[mid])bot=mid-1;else top=mid+1;}if(top<=bot)printf("%d is the %dth num\n",x,mid+1);else printf("There is no num");}① (top+bot)/2② break36、将字符串的数字字符删除后输出。

相关主题