大学期末c语言考试习题试题集_第1页
大学期末c语言考试习题试题集_第2页
大学期末c语言考试习题试题集_第3页
大学期末c语言考试习题试题集_第4页
大学期末c语言考试习题试题集_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言考试题(一)一、单项选择题(每题2分,共20分)1、以下选项中属于C语言的数据类型是()A.复数型B.逻辑型C.集合型D.双精度型2、一个C程序的执行是从()A.main。函数开始,直到main。函数结束B.第一个函数开始,直到最后一个函数结束C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束3、设有语句inta=3;则执行语句a+=a-=a*a;后,变量a的值是()30C.-12D.94、若有charc[5]={匕小0%则执行语句print"%",c);结果是()。A.cd\0ecd;最后一个元素的首地址为:6.C标准库函数中,数学函数的原型在:头文件中,自定义头文件D:\MYC\MY.H应如何包含到源程序文件中:oP.1307.已知函数定义为:intstat(inta,float*p){}则此函数的两个参数类型分别是.设intx,y,z=4;x=y=++z;x=(y>z)?x+2;x++;则x的值是:设inta=0,b=0,c=0;c=++a||b++;,则a、b>c值分别是:.与if(x=0)等价的写法是if(!x);判断两个(float)变量x,z是否相等一般:if(fabc(x-z)<le-6)。.已知赋值语句zhang.year=1985;可判断zhang是类型的变量;定义文件指针的C语句是:二.单项选择题(每题1分,共10分)1.组成C程序的基本单位是OA.函数B.标识符C.表达式D.语句.设int类型的数据长度为2字节,则该类型数据的取值范围是O0至655360至65535-32767至32768-32768至32767.在C语言中,逻辑值"真〃是用表示的。A.预定xx为真值的宏.非零数C.正数D.非零整数.C语言对于嵌套if语句规定else总是与匹配。A.与最外层的if.与之前最近的ifC.与之前最近的不带else的ifD.与最近的{}之前的if.数组定义chara[10]={'a','b','c'}:包括了几个元素。39410数组名作为实参传给被调用的函数时,形参获得的是A.该数组第一个元素的值B.该数组所有元素的值C.该数组第一个元素的首地址D.该数组所有元素的首地址为表示关系X2y2z,正确的C语言表达式为(x>=>y>=z)(x>=y)AND(y>=z)(x>=y)&&(y>=z)(x>y)&(y>=z).根据定义inta[]二{1,2,3},i,*p=a;从语法分析是不正确的。a[p-a]*(&a)p*(*(a+i)).若有语句scanf("%d%d〃,&a,&b);要使变量a,b分别得到12和34;正确的输入形式为o123412,34123412:34.unionuex{inti;floatf;charc;Jex;则sizeof(ex)的值是。4567三.分析程序,写出运行结果。(每题4分,共20分).源程序如下,运行时假定键盘输入字符串为、'2004、、#includevoidmain(void){intn=0;charc;while((c=getchar())!='\n')/*字符型数字*/{if(c>='0'&&c<二'9')n=n*10+c-'O';/*数字*/}printf("value=%d|n〃,n);}结果为:value=2004o.源程序如下:#includevoidmain(void){intnum[9]={399,398,397,396,395,299,290,311,301);intscore[9]={81,85,59,77,90,66,89,93,73};intiMax,iPos,i;iPos=0;iMax=score[iPos];for(i=l;i<9;i++)if(score>iMax){iPos=i;iMax=score[iPox];Jprintf(〃num=%d,score=%d,\num[iPos];score[iPos]);结果为:num=311,score=93o.源程序如下,运行时假定键盘输入数据为:12345678910#includevoidmain(void){inti,a[10];int*p;p=a;for(i=0;i<10;i++)scant("%d",p++);for(p=a;p<SPAN>;p++)if(*p%2)printf("%3d〃,*p);}结果为:13579。.源程序如下,两次运行,分别输入数据13和21#include#includevoidmain(void){intn,s;scant("%d”,&n);s=panduan(n);if(s==l)printf("yes\n");elseprintf)zzno\n);}intpanduan(intn){intkJ;k=(int)sqrt((double)n);for(j=2;j<=k,j++){if(n%j==O)break;}if(j>k)return(1);elsereturn(0);}结果为yesno5,源程序如下,运行时假定键盘输入字符为:AxByCz#include#includevoidmain(void){charstr[80];inti;gets(str);for(i=0;str!='\O';i++)if(str>='a'&&str<='zv)str-=32;elseif(str>='Ax&&str<='Zx)str+=32;puts(str);}结果为:aXbYcZo四.下列程序中每个划线处有一个错误,改正划线中的错误,使其实现题目要求。(每体4分,共20分).求s=l+2+3+>、、、、、、+100include改正为。voidsum(void)改正为。{ints,i;for(s=0,i=l;i<=100;i++){s=s+i++;改正为。Jprintf("s=%f〃,s)改正为。).源程序实现求x#)改正为。voidmain(void){inti,n;floatx;scanf("%f,%d〃,&x,&n);for(i=l;i<9;i++)printf("%d,%e\n",i,pow(i,x);}改正为odoublevvpowjfloatx,intn){inti;doublep=0;改正为ofor(i=l;i<i++)>改正为op*=x;retum(p);}.源程序实现排升序。#includevoidmain(void){inti,j,iMin,a[10]={4,3,5,l,10,12,2,6,7,9},iTemp;for(i=0;i<9;i++){iMin=0;改正为。for(j=i+l;j<10;j++)if(a[iMin]<iMin="j;">改正为。if(iMin二二i)改正为。{iTemp=a;a[iMin]=a;改正为a[iMin]=iTemp;}}for(i=0;i<10;i++)printf("%4d”,a):}.源程序为求平均值。ttincludevoidmain(void){inti,sum;改正为floatavg;intsc[10],*p=sc;for(i=0,i<10;i++)改正为{scanf("%d〃,p++);sum+=*p;改正为o}avg=sum/10;改正为。printf(zzavg=%f\avg);}.源程序求〃〃+xn/n!前n+1项之和ttincludevoidmain(void>{floatexp,x,t;inti,n;scanf("%f,%d〃,&x,&n);t=0;改正为Oexp=1.0;for(i=l;i<=n;i++){if(t<le-6)loop;改正为。t+二x/i;改正为oexp*=t;改正为o}printf("\n%15.6f\exp);}五.编程题(每题6分,共30分).根据以下程序框架,编写子函数,实现交换两个整型变量x和y的值。#includevoidswap(int*,int*);voidmain(void){intx,y;scanf("%d,%d〃,&x,&y);swap(&x,&y);printf("%d,%d〃,x,y);}voidswap(){}.设某班人数36人,参加C语言考试,用一维数组score[36]存放考试成绩,已给出一部分程序,完善以下程序,使其实现统计并输出不及格人数及百分比。#includevoidmain(void){inti;floatscoer[36],precent;D.cde5、已知:inta[2][3]={l,234,5,6},(*p)[3]=a;则下列表达式不是4的是()。*(*p+3)*p+3*(*(p+0)+3)a[0][3]6、以下有宏替换不正确的叙述().A.宏替换不占用运行时间B.宏名无类型C.宏替换只是字符串替换D.宏名必须用大写字母表示7、执行charstr[10]=,,Ch\nina,";strlen(str)的值是()56C.7D.98、下面程序的输出结果是:()#definePOWER(x)(x*x)main)){inti=4;printf("%d\POWER(i-2));}-9-7intcount=0;for(i=0;i<36;i++){scanf("%f”,&score);}.完善以下程序使其实现由键盘任意输入一串字符,统计其中大写字母个数iA、小写字母个数ia>其他字符个数iothero#include#includevoidmain(void){charstr[80];inti,iA=0,ia=0,iother=0;}.完善以下程序使其实现求方阵主和辅对角线元素之和及其转置矩阵,设方阵用二维数组a表示,转置矩阵用t表示,si和s2表示主和辅对角线元素之和。#includevoidmain(void){inta[3][3]={1,3,5,7,9,11,13,15,11);inti,j,si,s2;intt[3][3];printf("%d,%d,\n〃,sl,s2);for(i=0;i<3;i++)for(j=0;j<3;j++).已知字符数组str[80],编写返回指针的子函数,实现在其中查找字符ch首次出现的位置。^include#include#includechar*lstrchar(char*,char);voidmain(void){charc,*p,str[80];gets(str);scanf("%c〃,&c);p=lstrchar(str,c);if(p==NULL)printf(zzchar%cnotfound\n"c);elseprintf(zzThepositionis%d〃,p-str);charzzlstrchar()()5-69、在定义inta[3][4][2];后,第10个元素是()A.a[2][l][2]B.a[l][0][l]C.a[2][0][l]D.a[2][2][l]10、下面程序的输出结果是:()typedefstruct{longx⑵;shorty[4];charz[8];JMYTYPE;MYTYPEa;main(){printf("%d\n",sizeof(a));}281424二、填空题(每空1分,共11分)1、字符串在内存中占用的字节数为。2、C语言中的标识符只能由字母、下划线和组成。3、若有定义语句"inta=25,b=14,c=19;'',以下语句的执行结果是if(a++<=25&&b--<=2&&c++)printf("***a=%d,b=%d,c=%d\n",a/b,c);elseprintf(',###a=%d/b=%d,c=%d\n",a,b,c);4、有如下定义3口=明\172\\\匕%%”;则执行语句printf("%d,strlen(a));的结果为。5、若有定义:inta[12]={l,2,3,4,5,6,7,8,9,10,ll,02},*p[4Li;for(i=0;i<4;i++)p[i]=&a[i*3];则*(*(p+l)+2)的值为,*p[2]的值为o若数组的首地址为2000,则P⑴指向的地址为。6、设a=2zb=3,x=35y二2.5,则表达式(float)(a+b)/2+(int)x%(int)y的结果是。7、设x、y都是int型变量,初值都为L则执行表达式:-x&&y++后,y的值为。8、语句for(i=l;i==10;i++)continue;循环的次数是。9、以下程序输出。main(){enumem{eml=3,em2=l/em3};char*aa[]={,,AA,,;,BB";,CC";,DD"};printf("%s%s%s\n"/aa[eml]/aa[em2]/aa[em3]);}三、写程序结果(每题5分,共35分)main(){intx,y,z;x=l,y=2,z=3;x+=y+=z;printf(,,l:%d\n,,,z+=x>y?x++:y++);x=0x02ff;y=0xff00;printf(,,2:%d\n,1,(x&y)»410x005f);x=y=z=-l;++x||++y&&++z;printf("3:%d,%d,%d\n,,,x,y,z);}2、#definef(x)x*xmain(){inta=6,b=2,c;c=f(a+b)/f(b);printf("%d\n〃,c);}3、fun(intk){printf(”%cT,k);if(k>0)fun(k-l);}main(){intw=5;fun(w);printf(”\n");}4、#includemain(){intx=l,y=O;switch(x){case1:switch(y){case0:printf(zzfirst\n,z);break;casel:printf(〃second\n");break;}case2:printf(〃third\n");}}5、#includemain(){intk=4;func(k);func(k);}func(inta){staticintm=0;m+=a;printf("%d",m);}6、structst{intx;int*y;}*p;ints[]={30z20};structsta[]={l,&s[0],2,&s[l]};main(){p=a;printf(,,%d,,,,p->x);printf(',%d\n,l,++(*(++p)->y));}7、假定在当前盘目录下有2个文本文件,其名称和内容如下:文件名:al.txta2.txt内容:ABCDEF#abcdef##include"stdio.h"main)){FILE*fp;voidfc();if((fp=fopen("al.txtl,;,r,,))==NULL){pnntf(HCannotopenfile!\nM);exit⑴;}else{fc(fp);fclose(fp);}if((fp=fopen("a2.txt,,;,r,,))==NULL){printf(MCannotopenfile!\nM);ex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论