2010级专升本C语言试题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言程序设计考试模拟题集1第一卷说明:(1)第一卷全部为选择题,每题可供选择的答案中,只有一个正确答案。(2)答本卷的题目时,要在标准答题纸上编号对应的栏目中,用铅笔将正确答案涂黑。在试题上直接勾划者步得分。(3)本卷共70分,其中第1~26题每题2分,第27~32每题3分。第一部分:基础知识(20题,共40分)(1)若有定义:inta=8,b=5,C;,执行语句C=a/b+0.4;后,c的值为。A)1.4B)1C)2.0D)2(2)若变量a是int类型,并执行了语句:a=‘A'+1.6;,则正确的叙述是。A)a的值是字符CB)a的值是浮点型C)不允许字符型和浮点型相加D)a的值是字符‘A’的ASCII值加上1。(3)不合法的main函数命令行参数表示形式是。A)main(inta,char*c[])B)main(intarc,char**arv)C)main(intargc,char*argv)D)main(intargv,char*argc[])(4)以下选项中不属于C语言的类型的是。A)signedshortintB)unsignedlongintC)unsignedintD)longshort(5)若有说明语句:inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是。A)scanf(%d%d%d,&a,&b,d);B)scanf(%d%d%d,&a,&b,&d);C)scanf(%d%d%d,a,b,d);D)scanf(%d%d%d,a,b,*d);(6)在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是。A)a=20000+20000;B)a=4000*10;C)a=30000+10000;D)a=4000L*10L;(7)以下叙述正确的是。A)可以把define和if定义为用户标识符B)可以把define定义为用户标识符,但不能把if定义为用户标识符C)可以把if定义为用户标识符,但不能把define定义为用户标识符D)define和if都不能定义为用户标识符(8)若定义:inta=511,*b=&a;,则printf(%d\n,*b);的输出结果为。A)无确定值B)a的地址C)512D)511(9)以下程序的输出结果是。main(){inta=5,b=4,c=6,d;printf(%d\n,d=ab?(ac?a:c):(b));}A)5B)4C)6D)不确定2(10)以下程序中,while循环的循环次数是。main(){inti=0;while(i10){if(i1)continue;if(i==5)break;i++;}}A)1B)10C)6D)死循环,不能确定次数(11)设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中正确的是。A)PER是结构体变量名B)PER是结构体类型名C)typedefstruct是结构体类型D)struct是结构体类型名(12)若有以下程序#includestdio.hvoidf(intn);main(){voidf(intn);f(5);}voidf(intn){printf(%d\n,n);}则以下叙述中不正确的是。A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB)若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数fC)对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明D)函数f无返回值,所以可用void将其类型定义为无值型(13)若有以下定义和语句:ints[4][5],(*ps)[5];ps=s;则对s数组元素的正确引用形式是。A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+3(14)在C语言中,形参的缺省存储类是。A)autoB)registerC)staticD)extern(15)若指针p已正确定义,要使p指向两个连续的整型动态存储单元,不正确的语句是。A)p=2*(int*)malloc(sizeof(int));B)p=(int*)malloc(2*sizeof(int));C)p=(int*)malloc(2*2);D)p=(int*)calloc(2,sizeof(int));3(16)在说明语句:int*f();中,标识符f代表的是。A)一个用于指向整型数据的指针变量B)一个用于指向一维数组的行指针C)一个用于指向函数的指针变量D)一个返回值为指针型的函数名(17)若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是。A)fopen(A:\user\abc.txt,r)B)fopen(A:\\user\\abc.txt,r+)C)fopen(A:\user\abc.txt,rb)D)fopen(A:\\user\\abc.txt,w)(18)以下不能正确进行字符串赋初值的语句是。A)charstr[5]=good!;B)charstr[]=good!;C)char*str=good!;D)charstr[5]={‘g',‘o',‘o',‘d'};(19)若有下面的说明和定义:structtest{intml;charm2;floatm3;unionuu{charul[5];intu2[2];}ua;}myaa;则sizeof(structtest)的值是。A)12B)16C)14D)9(20)若有定义:intaa[8];。则以下表达式中不能代表数组元aa[1]的地址的是。A)&aa[0]+1B)&aa[1]C)&aa[0]++D)aa+1第二部分:简单程序(12题,共30分)(21)以下程序的输出结果是。main(){inta=4,b=5,c=0,d;d=!a&&!b||!c;printf(%d\n,d);}A)1B)0C)非0的数D)-1(22)以下程序的输出结果是。main(){intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;for(i=0;i3;i++)for(j=i;j=i;j++)t=t+b[i][b[j][j]];printf(%d\n,t);}A)3B)4C)1D)9(23)以下程序的输出结果是。#includestdio.h4#includestring.hmain(){charb1[8]=abcdefg,b2[8],*pb=b1+3;while(--pb=b1)strcpy(b2,pb);printf(%d\n,strlen(b2));}A)8B)3C)1D)7(24)以下程序的输出结果是。f(intb[],intm,intn){inti,s=0;for(i=m;in;i=i+2)s=s+b[i];returns;}main(){intx,a[]={1,2,3,4,5,6,7,8,9};x=f(a,3,7);printf(%d\n,x);}A)10B)18C)8D)15(25)以下程序的输出结果是。main(){charch[3][5]={AAAA,BBB,CC};printf(\%s\\n,ch[1]);}A)AAAAB)BBBC)BBBCCD)CC(26)以下程序的输出结果是。main(){inta=0,i;for(i=1;i5;i++){switch(i){case0:case3:a+=2;case1:case2:a+=3;default:a+=5;}}printf(%d\n,a);}A)31B)13C)10D)20(27)以下程序的输出结果是。#includestdio.hmain(){inti=0,a=0;while(i20)5{for(;;){if((i%10)==0)break;elsei--;}i+=11;a+=i;}printf(%d\n,a);}A)21B)32C)33D)11(28)以下程序的输出结果是。charcchar(charch){if(ch=‘A’&&ch=‘Z')ch=ch-‘A'+‘a';returnch;}main(){chars[]=ABC+abc=defDEF,*p=s;while(*p){*p=cchar(*p);p++;}printf(%s\n,s);}A)abc+ABC=DEFdefB)abc+abc=defdefC)abcaABCDEFdefD)abcabcdefdef(29)以下程序的输出结果是。intf(){staticinti=0;ints=1;s+=i;i++;returns;}main(){inti,a=0;for(i=0;i5;i++)a+=f();printf(%d\n,a);}A)20B)24C)25D)15(30)以下程序的输出结果是。unionmyun{struct{intx,y,z;}u;intk;6}a;main(){a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(“%d\n”,a.u.x);}A)4B)5C)6D)0(31)下列程序执行后的输出结果是。voidfunc1(inti);voidfunc2(inti);charst[]=hello,friend!;voidfunc1(inti){printf(%c,st[i]);if(i3){i+=2;func2(i);}}voidfunc2(inti){printf(%c,st[i]);if(i3){i+=2;func1(i);}}main(){inti=0;func1(i);printf(\n);}A)helloB)helC)hloD)hlm(32)下列程序执行后的输出结果是。#includestdio.hinta[]={0,1,2,3,4,5,6,7,8,9};floatf(intn){if(n==1)returna[0];elsereturn((float)(n*f(n-1)+a[n])/n+1);}main(){intn=9;printf(“f(%d)=%f\n”,n+1,f(n));}A)14B)15C)16D)137第二卷说明:(1)第二卷含二大题,均属填空题,每题各有5个空栏,在阅读和理解原题程序的基础上,在空栏处填入适当的字符、语句,以构成一个正确的C语言程序。(2)每空栏填对得3分,两大题10个空栏,全填对得30分。试题一下面的程序是求二维数组中的最大值及其所在的行下标并输出。其中,select函数的功能是:在N行M列的二维数组中,选出一个最大值作为函数值返回,并通过形参传回此最大值所在的行下标。#defineN3#defineM3select(inta[N][M],int*n){inti,j,row=0,colum=0;for(i=0;iN;i++)for(j=0;①;j++)if(②){row=i;colum=j;}*n=③;return④;}main(){inta[N][M]={9,11,23,6,1,15,9,17,20},max,n;max=⑤;printf(max=%d,line=%d\n,max,n);}试题二以下程序的功能是将n个字符按输入顺序的逆序排列。其中,函数sort实现n个字符的逆置。sort(char*p,intm){inti;chartemp,*p1,*p2;for(i=0;⑥;i++){p1=⑦;p2=⑧;temp=*p1;⑨;*p2=temp;}}main(){inti,n;char*p,num[20];printf(“inputn:”);scanf(“%d”,&n);8printf(“pleaseinputthesenumbers:\n”);for(i=0;in;i++)scanf(“%c”,&num[i]);p=⑩;sort(p,n);printf(“now,thesequenceis:\n”);for(i=0;in;i++)printf(“%c”,num[i]);}9第一卷说明:(1)第一卷全部为选择题,

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功