您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言程序设计模拟试题7(附答案)
《C语言程序设计》模拟试卷七一、填空题。(每空2分,共30分)1.下述算术表达式的结果值是_____。(int)(13.7+25.6)/4%42.设整型变量value的值为20。执行下述程序段的输出结果是。if(value=3)if(value100)printf(Error:value100.\n);elseprintf(Error:value3.\n);3.对于下述程序段intb,c;floata;scanf(%f,%d,c=%d,&a,&b,&c);若欲使a、b、c的值分别为5.0、4、3,则应按如下形式输入数据:___。4.设int类型变量占内存两个字节,今有变量说明语句inta=20;则执行下述printf语句的输出结果是____。printf(%d,%0,%x,%u\n,a,a,a,a);5.执行下述程序的输出结果是___________。#includestdio.hmain(){intarr[10],i,k=0;for(i=0;i10;i++)arr[i]=i;for(i=1;i4;i++)k+=arr[i]+i/2;printf(%d\n,k);}6.执行下述程序的输出结果是___。#includestdio.hmain(){inti=0;charx[]=China;chary[]=Chinese;while(x[i]!='\0'&&y[i]!='\0')if(x[i]==y[i])printf(%c,x[i++]);elsei++;printf(\n);}7.下述函数定义的功能是:把两个整数指针所指的存储单元中的内容进行交换。请填空。voidexchange(){intt;t=*y;*y=*x;*x=t;}8.设有如下变量说明语句inta[8]={44,55,12,42,94,18,6,67},*p=a;则通过指针变量p引用值为18的表达式是____或____。9.执行下述程序#includestdio.hintstrlength(chara[],charb[]){intnum=0,n=0;while(*(a+num)!='\0')num++;while(b[n]){*(a+num)=b[n];num++;n++;}return(num);}main(){charstr1[81],str2[81],*p1=str1,*p2=str2;gets(p1);gets(p2);printf(%d\n,strlength(p1,p2));}若从键盘输入qwertyabcd则输出结果是_______。10.下面的函数定义是一个求阶乘的递归调用函数。假定n≠0。请填空。longfac(intn){longf;if(n==0)f=1;elsef=_______;return(f);}11.下述程序的功能是:输入n值,输出高度为n的、由字符'*'组成的直角三角形,例如当n=4时的输出图形如下(最后一行前面没有空格):**********请填空。#includestdio.hvoidfunc(charc,intn){if(n0){printf(%c,c);func(c,n-1);}}main(){inti,n;scanf(%d,&n);for(i=1;i=n;i++){_______;printf(\n);}}12.执行下述程序的输出结果是。#includestdio.h#defineCOMPstructcomplexCOMP{floatre;floatim;};voidplus(COMP*z1,COMP*z2,COMP*z3){z3-re=z1-re+z2-re;z3-im=z1-im+z2-im;}main(){COMPa,b,c;a.re=7.0;a.im=4.0;b.re=-2.0;b.im=5.5;plus(&a,&b,&c);printf(c=%5.lf+%5.lfi\n,c.re,c.im);}13.以下程序在运行时输入102030则输出结果是_____。#includestdio.hintfunc(inta,intb,intc){return(a+b+c);}main(){intx,y,z;printf(Enterx,y,z:);scanf(%d%d%d,&x,&y,&z);z=func(x,x+y,func(x,x+y,z));printf(z=%d\n,z);}14.下面的程序把从终端读入的文本(用字符'@'作为文本结束标志)逐个字符复制到一个当前磁盘目录下名为bi.dat的新文本文件中。请填空。#includestdio.h#includestdlib.hmain(){FILE*fp;charch;if((fp=fopen(bi.dat,w))==NULL){printf(Can'topenfilebi.dat.\n);exit(0);}while((ch=getchar())!='@');fclose(fp);}15.执行下述程序的输出结果是。#includestdio.hintabc(intu,intv);intabc(intu,intv){intw;while(v){w=u%v;u=v;v=w;}returnu;}main(){inta=24,b=16,c;c=abc(a,b);printf(%d\n,c);}二、单项选择题。(每题1分,共20分)1.在计算机上可以直接运行的程序是写【】A.高级语言程序B.汇编语言程序C.机器语言程序D.C语言源程序2.下列符号串中,合法的C语言标识将是【】A._121B.121_C.a.121D.#1213.下列符号串中,合法的十进制整型常量是【】A.09876B.0x9876C.9.876*e4D.-98764.设有关变量已经正确定义并赋值,则下列表达式中符合C语言语法规则的是【】A.a_=\12B.a_1=a_2+=12C.int13.5%2D.a=b+7=C-25.若整型变量x的值为8,则下列表达式中值为1的表达式是【】A.x+=x-=x=xB.x%=x-1C.x%=x%=3D.x/=x+x6.字符串m\x43\\\np\102q的长度是【】A.7B.9C.15D.167.设有定义语句“inta=10,*p=&a;”,则表达式“a十*p”的值是【】A.10B.20C.100D.语法出错8.若有定义语句“intx,*p=&x,**ppx=&px;”,则下列表达式中错误的是【】A.x=*pxB.x=**ppxC.px=&ppxD.*ppx=&x9.如果某个函数在定义时,省略了存储类型,则默认的存储类型是【】A.autoB.voidC.externD.static10.能正确定义一个用来指向打开文件的文件型指针变量fp的语句是【】A.filefp;B.file*fp;C.FILEfp;D.FILE*fp;11.函数fopen()的返回值不能是【】A.NULLB.OC.1D.某个内存地址12.以只写方式打开一个二进制文件,应选择的文件操作方式是【】A.a+B.w+C.rbD.Wb13.设有定义语句“charch='\77';”,则下列说法中正确的是【】A.ch中含有1个字符B.ch中含有2个字符C.ch中含有3个字符D.语法出错14.设有函数调用语句“f(x1,x1+x2,(x1,x2));”,正确的说法是【】A.调用的实际参数是2个B.调用的实际参数是3个C.调用的实际参数是4个D.调用时会出现语法错误。15.计算平方数时不可能引起二义性的宏定义是【】A.#defineSOR(x)x*xB.#defineSQR(x)(x)*(x)C.#defineSQR(x)(x*x)D.#defineSQR(x)((x)*(x))16.执行下列程序段后,x的位是【】inta=8,b=7,c=6,x=1;if(a>6)if(b>7)if(c>8)x=2;elsex=3;A.OB.1C.2D.317.执行下列程序段后,变量y的值为【】intx[]={1,2,3,4},y,*p=&x[1];y=(*--P)++;A.1B.2C.3D.418.能正确表达逻辑关系“-1<x<1并且-1<y<1”的表达式是【】A.(-1<x<1)&&(-1<y<1)B.(-1<x<1)&(-1<y<1)C.((-1<x)¦¦(x<1))&&((-1<y)¦¦(y<1))D.(-1<x)&&(x<1)&&(-1<y)&&(y<1)19.函数调用时,下列说法中不正确的是【】A.若用值传递方式,则形式参数不予分配内存B.实际参数和形式参数可以同名C.主调函数和被调用函数可以不在同一个文件中D.函数间传送数据可以使用外部全局变量20.下列关于结构型变量的定义语句中,错误的是【】A.typedefstructCCCB.#defineGGGstruct{charname[20];GGGCCC{charname[20];intage;intage;}GGG;};GGGabc;GGGCCCabc;C.structD.struct{charname[20];{charname[20];intage;intage;}ccc;}abc;CCCabc;三、程序分析题(每题8分,共32分)1.写出执行下述程序的输出结果。#includestdio.hmain(){inta=2,b=4,c=5;switch(a0){inta=2,b=4,c=5;switch(a0){case1:switch(b=b2){case1:printf(@);case0:printf(!);default:printf(?);}case0:swith(c==5){case0:printf(*);break;case1:printf(#);break;dafault:printf($);}default:printf(&);}printf(\n);}2.写出执行下述程序的输出结果。#includestdio.h#defineN5main(){inti,j,cent;for(cent=1;cent=N;cent++){for(i=1;i=N-cent+5;i++)printf();for(j=1;i=cent;j++)printf(%d,j));for(j=cent-1;j=1;j--)printf(%d,j);printf(\n);}}(注:第一行1前面有9个空格,以下类推)3.阅读下述程序,设输入如下数据85794请写出输出结果。#includestdio.h#defineN5main(){inti,j,k,1;inta[N];for(i=0;iN;i++)scanf(%d,&a[i]);for(i=N-1;i=0;i--){k=a[N-1];for(j=N-2;j=0;j--)a[j+1]=a[j];a[0]=k;for(1=0;1n;1++)printf(%3d,a[1]);printf(\n);}}4.写出执行下述程序的输出结果。#includestdio.hmain(){chars[]=ABCDE,*p;for(p=s;ps+5;p++)printf(%s\n,p);}四、程序设计题(每小题9分,共18分)1、编写程序,从键盘输入一个字符序列(以字符'#'作为结束标志),将其中的英文小写字母全部转换成相应的英文大写字母,逐个字符写入一个名为test.dat的磁盘文本文件以保存。然后,从该文件中读取所存入的字符序列,将它们输出在显示屏上。2、编写一程序,从键盘输入10个实数,计算并输出算术平均值。模拟试卷七参考答案一、填空题。(每空2分,共30分)1)12)Error:value3.3)5.0,4,c=34)20,24,24,205)86)Chin7)int*y,int*x8)p[5]或*(p+5)9)1010)n*fac(n-1)11)func('*',i)12)c=5+10i13)z=11014)fputc(ch,fp)15)
本文标题:C语言程序设计模拟试题7(附答案)
链接地址:https://www.777doc.com/doc-4010619 .html