您好,欢迎访问三七文档
模拟试题五一、选择题(本大题30分,每小题2分)1.下列说法正确的是。A)在执行C程序时不是从mian函数开始的B)C程序书写格式严格限制,一行内必须写一个语句C)C程序书写格式自由,一个语句可以分写在多行上D)C程序书写格式严格限制,一行内必须写一个语句,并要有行号2.设有以下定义,则能使值为3的表达式是:。intk=7,x=12;A)x%=(k%=5)B)x%=(k-k%5)C)x%=kD)(x%=k)-(k%=5)3.以下选项中是C语言的数据类型的是:。A)复数型B)逻辑型C)双精度型D)集合型4.下面能正确表示变量a在区间[0,5]或(6,10)内的表达式为:。A)0=a||a=5||6a||a10B)0=a&&a=5||6a&&a10C)(0=a||a=5)&&(6a||a10)D)0=a&&a=5&&6a&&a105.已知字母A的ASCII码为十进制65,下面程序段的运行结果为:。charch1,ch2;ch1=‘A’+5-3;ch2=‘A’+6-3;printf(“%d,%c\n”,ch1,ch2);A)67,DB)B,CC)C,DD)不确定值6.根据定义和数据的输入方式,输入语句的正确形式为:。已有定义:floata1,a2;数据的输入方式:4.5233.52A)scanf(“%f%f”,&a1,&a2);B)scanf(“%f,%f”,a1,a2);C)scanf(“%4.3f,%3.2f”,&a1,&a2);D)scanf(“%4.3f%3.2f”,a1,a2);7.在C语言中,多分支选择结构语句为:switch(c){case常量表达式1:语句1;……case常量表达式n-1:语句n-1;default语句n;}其中括号内表达式c的类型:。A)可以是任意类型B)只能为整型C)可以是整型或字符型D)可以为整型或实型8.以下能对二维数组a进行正确说明和初始化的语句是:。A)inta()(3)={(1,0,1),(2,4,5)}B)inta[2][]={{3,2,1},{5,6,7}}B)inta[][3]={{3,2,1},{5,6,7}}D)inta(2)()={(1,0,1),(2,4,5)}9.下面有关形参的说明语句中正确的是:。A)形参在被调函数中定义,当被调定义完后形参就将占用内存空间,并将获得值。B)形参只有在发生函数调用时才会被分配内存空间,才会获得值,且调用结束后又会消失。C)形参将会在程序编译阶段获得内存空间和值,且在整个程序运行过程中都将保持。D)以上说法都不正确。10.以下程序的输出结果是:。main(){intI=012,j=12,k=0x12;printf(“%d,%d,%d\n”,I,j,k);A)10,12,18B)12,12,12C)10,12,12D)12,12,1811.以下叙述中不正确的是。A)C语言中的文本文件以ASCII码形式存储数据B)C语言中对二进制位的访问速度比文本文件快C)C语言中,随机读写方式不使用于文本文件D)C语言中,顺序读写方式不使用于二进制文件12.以下程序的运行结果是:。main(){intn=4;while(n--)printf(“%2d”,--n);}A)20B)31C)321D)21013.以下程序的功能是:按顺序读入10名学生的4门课程的成绩,计算出每位学生的平均分并输出,程序如下:main(){intn,k;floatscore,sum,ave;sum=0.0;for(n=1;n=10;n++){for(k=1;k=4;k++){scanf(%f,&score);sum+=score};}ave=sum/4.0;printf(NO%d:%f\n,n,ave);}}上述程序有一条语句出现在程序的位置不正确。这条语句是。A)sum=0.0;B)sum+=score;C)ave=sum/4.0;D)printf(NO%d:%f\n,n,ave);14.设有如下函数定义:intf(char*s){char*p=s;while(*p!=‘\0’)p++;return(p-s);}如果在主函数中用下面语句调用该函数,则输出结果应为:。printf(“%d\n”,f(“goodbye!”));A)3B)6C)8D)015.下面程序的输出结果是:。intm=13;intfun(intx,inty){intm=3;return(x*y-m);}main(){inta=7,b=5;printf(“%d\n”,fun(a,b)/m);}A)1B)2C)7D)10二、判断题(本大题10分,每小题1分)1.C程序是按书写的顺序执行的。()2.在C语言中,int、char和short三种类型数据在内存中所占用的字节数都是一样的。()3.在C程序中语句是以分号结束的。()4.在C语言的if语句中,else可以单独出现。()5.在C语言中break和continue都是循环中途退出语句,其中break语句用来跳出一次循环结构;continue语句用来结束一层循环。()6.C语言中while和do-while循环的主要区别是do-while语句的循环体至少会被执行一次,而while语句的循环体则可能一次也不执行。()7.数组首地址不仅能通过数组中第一个元素的地址表示,也可以通过数组名来表示。()8.在C语言中,函数strcpy是用来连接字符串的。()9.函数的返回值类型是由函数的类型和return语句中表达式的类型共同决定的,当这两类型不一致时最终起决定作用的是return中表达式的类型。()10.由于指针变量存储的是地址,指针变量被定义之后可以指向任一类型的变量。()三、程序填空题(本大题12分,每小题2分)1.以下程序可求出所有水仙花数(指3位正整数中各位数字立方和等于该数本身,如153=13+53+33),请填空。main(){intx,y,z,a[10],m,i=0;printf(“shuixianhuanshu:\n”);for(____(1)____;m1000;m++){x=m/100;y=____(2)____;z=m%10;if(m==x*x*x+y*y*y*y+z*z*z){____(3)____;i++;}}for(x=0;xi;x++)printf(“%6d”,a[x]);}2.以下程序可计算10名学生1门功课成绩的平均分,请填空。floataverage(floatarray[10]){inti;floataver,sum=array[0];for(i=1;____(4)____;i++)sum+=____(5)____;aver=sum/10;return(aver);}main(){floatscore[10],aver;inti;printf(“\ninput10scores:”);for(i=0;i10;i++)scanf(“%f”,&score[i]);aver=____(6)____;printf(“\naveragescoreis%5.2f\n”,aver);}四、写出下面程序的执行结果(本大题24分,每小题4分)1.main(){inti=2,p;p=f(i++,++i);printf(“%d”,p);}intf(inta,intb){intc;if(ab)c=1;elseif(a==b)c=0;elsec=-1;return(c);}2.#includestdio.hmain(){inti,j;for(i=0;i=3;i++){for(j=0;j=5;j++){if(i==0||j==0||i==3||j==5)printf(“*”);elseprintf(“”);}printf(“\n”);}}3.main(){intn=0;while(n++=1);printf(%d,,n);printf(%d\n,n);}4.inta=5;intb=7;main(){inta=4,b=5,c;c=plus(a,b);printf(“A+B=%d\n”,c);}plus(intx,inty){intz;z=x+y;return(z);}5.#includestdio.hmain(){charb[]=ABCDEFGchar*chp=&b[7];while(--chp&b[0])putchar(*chp);putchar('\n');}6.structn{intx;charc;};main(){structna={10,’x’};func(a);printf(“%d,%c”,a.x,a.c);}func(structnb){b.x=20;b.c=’y’;}五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1.试编程完成如下功能:输入一个不多于4位的整数,求出它是几位数,并逆序输出各位数字。2.若有一4*4二维数组,试编程完成如下功能:(1)求4*4列数组的对角线元素值和。(2)将二维数组元素行列互换后存入另一数组,并将此数组输出。3.有两个字符串,各有10个字符,是编程完成如下功能:(1)分别找出两个字符串中最大的字符元素;(2)将两字符串对应位置元素逐个比较,并统计输出两个字符串对应元素大于、小于和等于的次数。(所有功能都通过函数调用实现)模拟试题五答案一、选择题(本大题30分,每小题2分)1~5CDCBA6~10ACBBA11~15DAACB1、判断题(本大题10分,每小题1分)1.×2.×3.√4.×5.×6.√7.√8.×9.×10.×三、程序填空题(本大题12分,每小题2分)评分标准:全对的满分,半对半错的给一半分,全错的不得分。1.(1)m=100(2)m/10%10(3)a[i]=m2.(4)i10(5)array[i](6)average(score)四、写出下面程序的执行结果(本大题24分,每小题4分)评分标准:全对的满分,半对半错的给一半分,全错的不得分。1.02.****************3.3,34.A+B=95.GFEDCB6.10,x五、编程题(本大题24分,第一题7分,第二题8分,第三题9分)1.main(){intnum,a,b,c,d,p;scanf(“%d”,&num);if(num=9999&&num999)p=4;elseif(num99)p=3;elseif(num9)p=2;elseif(num0)p=1;printf(“位数是:%d\n”,p);a=num/1000;b=num/100%10;c=num/10%10;d=num%10;switch(p){case4:printf(“%d%d%d%d\n”,d,c,b,a);case3:printf(“%d%d%d\n”,d,c,b);case2:printf(“%d%d\n”,d,c);case1:printf(“%d\n”,d);}}2.main(){inta[4][4],i,j,sum;for(i=0;i4;i++)for(j=0;j4;j++)scanf(“%d”,&a[i][j]);sum=he(a);huan(a);printf(“sum=%d”,sum);}he(intb[][]){inti,j,sum=0;for(i=0;i4;i++)for(j=0;j4;j++)if(i==j)sum=sum+b[i][j];elseif(i+j==3)sum=sum+b[i][j];return(sum);}huan(intb[][]){intc[4][4],i,j;for(i=0;i4;i++)for(j=0;j4;j++)c[j][i]=b[i][j];for(i=0;i4;i++){for(j=0;j4;j++)printf(“%d”,c[i][j]);printf(“\n”);}}3.main(){voidtongji(charc[],chard[]);charzuida(charc[]);chara[10],b[10
本文标题:C语言模拟试题
链接地址:https://www.777doc.com/doc-8134527 .html