C语言考试题及答案

上传人:lis****211 文档编号:68217062 上传时间:2022-04-02 格式:DOC 页数:7 大小:57KB
收藏 版权申诉 举报 下载
C语言考试题及答案_第1页
第1页 / 共7页
C语言考试题及答案_第2页
第2页 / 共7页
C语言考试题及答案_第3页
第3页 / 共7页
资源描述:

《C语言考试题及答案》由会员分享,可在线阅读,更多相关《C语言考试题及答案(7页珍藏版)》请在装配图网上搜索。

1、C语言考试题及答案Lastrevisiondate:13December2020.1. 一、单项选择题:(10分,每题2分)char*p10;该语句声明了一个:。A) 指向含有10个元素的一维字符型数组的指针变量pB) 指向长度不超过10的字符串的指针变量pC) 有10个元素的指针数组p,每个元素可以指向一个字符串2. 有10个元素的指针数组p,每个元素存放一个字符串若intx;且有下面的程序片断,则输出结果为:。for(x=3;x6;x+)printf(x%2):x);3. A)#3B)*3C)*3D)#3*4*4#4#4*水5聊5#5*5在while(!x)语句中的!x与下面条件表达式等价

2、的是:。4. A)x!=0B)x=lC)x!=lD)x=0已知structpointintx;inty;;structreetstructpointptl;struetpointpt2;);structrectrt;structrect*rp=&rt;则下面哪一种引用是不正确的。5. A)rt.ptl.xB)(*rp).ptl.xC)rp-ptl.xD)rt-ptl.x若二维数组d有m行n列,则下面能够正确引用元素的为:。A)(a+j*n+i)B)*(a+i*n+j)C)*(*(a+i)+j)D)*(*a+i)+jCDDDC二、分析程序并写出运行结果。(25分,每题5分)1#includema

3、in()intn;staticchar*monthName=Illegalmonth,January,February*,MairchApril,M&yJune,July,August,September,October,November,December;for(n=l;n=12;n卄)printf(%sn,monthNamen);运行结果是:JanuaryFebruaryMarchriynelyguAPMaJUJUAUSeptemberOctoberNovemberDecember2.#include#defineARR_SIZE7voidYH(intaARILSIZE,intn);voi

4、dPrintYH(intaARR_SIZE,intn);main()intaARILSIZEARR_SIZE;YH(a,ARR_SIZE-l);PrintYH(a,ARR_SIZE-l);voidYH(intaARRSIZE,intn)inti,j;for(i=l;i=n;i+)for(j=l;j=i;j+)if(j=l11i=j)aielseaij=ai-lj-l+ai-lj;voidPrintYH(intaARR_SIZE,intn)inti,j;for(i=l;i=n:i+)for(j=l;jmain()inti,n;for(i=l;i=5;i+)printf(Pleaseentern:

5、);scanf&n);if(n=0)continue;printf(n=%dn,n);printf(Programisover!n);程序运行时输入:1-23-45/运行结果是:n=lPleaseentern:Pleaseentern:n=3Pleaseentern:Pleaseentern:n=5Programisover!#includevoidFunc(intn);main()inti;for(i=0;i2;i+)Func(i);voidFunc(intn)staticintt=l;printf(t=%dn*,t+);运行结果是:t=lt二25.#includeintFunc(inti)

6、;main()inti;for(i=3;i0;i)k+;return(k);运行结果是:I. 1317三、阅读并完成程序,在标有下划线的空白处填入适当的表达式或语句,使程序完整并符合题目要求。(20分,每空2分)下面程序用于读入10个字符串,然后找出最大的字符串并打印。#include#includemain()charstr1080,maxstring80;inti;printf(Entertenstrings:n);for(i=0;i10;i+)scanf(”s,stri);strcpy(maxstring,str0);for(i=l;i0strcpy(maxstring,stri);2.

7、 printf(Themaxstringis:%sn,maxstring);下面这个程序用于交换两个数组的对应元素的值。#include#defineARRAY_SIZE10voidSwap(int*x,int*y);voidExchange(inta,intb,intn);voidinputArray(inta,intn);voidPrintArray(inta,intn);main()intaARRAY_SIZE,bARRAY_SIZE,n;printf(Inputarraylenthn=10:”);scanf&n);printf(InputarrdyeurT);InputArray(a,

8、n);printf(Inputarrayb:n);InputArray(b,n);Exchange(a,b,n);printf(Afterswap:n);printfCArraya:n*);PrintAiray(a,n):printf(Arrayb:n);PrintArray(b,n);voidSwap(int*x,int*y)inttemp;temp=*x;*x=*y;*y=temp;voidExchange(intd,intb,intn)inti;for(i=0;in;i+)Swap(&ai,&bi);voidlnputArray(inta,intn)inti;for(i=0;in;i+)

9、scanf(”%d,&ai):voidPrintAzray(inta,intn)inti;for(i=0;in;i+)printfai);printfCn);3从键盘任意输入一个年号,判断它是否是闰年。若是闰年,输岀YesS否则输岀No。已知符合下列条件之一者是闰年:能被4整除,但不能被100整除。能被400整除。#includemain()intyear,flag;printf(Enteryear:);scanf(”d,ftyear);if(year%4=0&year%100!=01Iyear%400=0)flag=l;elseflag=0;if(flag)printf(Yes!n);els

10、eprintf(No!n);在下面给出的4个程序中,共有15处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。(在错误的代码下边画一根横线,把正确的代码写在旁边;漏掉的代码正确插入合适的位置。30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。)1.编程计算矩阵相乘之积。#include#defineR0W2#defineC0L3/voidMultiplyMatrix(intaROWCOL,intbCOLROW,intcR0WROWh_main()intaEROWlCOL,bCOLROW,cROWROW,i,j;printfClnputarraya:Xn);for(i=0

11、;iR0W;i+)for(j=0;jCOL;j+)scanf(d,&aij);/%dprintf(Inputarrayb:n);for(i=0;iC0L;i+)for(j=0;jROW;j+)scanf(d,&bij);MultiplyMatrix(a,b,c);printf(Results:n);for(i=0;iR0W;i+)for(j=0;jROW;j+)printf(%6d,&cij):/cijprintfCn*);voidMultiplyMatrix(intaROWCOL,intbCOLROW,intcROWROW)inti,j,k;for(i=0;iR0W;i卄)for(j=0;j

12、ROW;j+)for(k=0;kC0L;k+)/cij=O;cij=cij+aik*bjk:/bkj2.编程输入10个数,找出其中的最大值及其所在的数组下标位置。#includeintFindMax(intnum,intn,int*pMaxPos);main()intnum10,maxValue,maxPos,minValue,minPos,i/;printf(Inpu110numbers:n);for(i=0;i10;i+)scanf(”%d”,numi);/&numimaxValue=FindMax(num,10,*maxPos):/ftmaxPosprintf(Max=%d,Positi

13、on=%dn,maxValue,meixPos);intFindMax(intnum,intn,int*pMaxPos)inti,max;max=num0;for(i=l,in,i+)/i=l;imax)max=numi;*pMaxPos=i;returnmax;3. 韩信点兵。韩信有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩信至少有多少兵吗?#includemain()intx;/x=0while(1)辻(x%5=

14、lfe&x%6=5&x%7=4&x%l1=10)/x%5=l&x%6=5&x%7=4&x%l1=10break;x+/x+;printf(x=%drT,x);4.下面函数Squeez()的功能是删除字符串s中所出现的与变量c相同的字符。voidSqueeze(chars,chare);/voidSqueeze(chars,chare)inti,j;j=0;for(i=0;si!=0;i+)if(si!=,c)/csj=si;j+;si70;/sjY(V;或sji0;五、编程(15分)从键盘任意输入某班10个学生的成绩,调用save函数把数据存入到以你的学号命名的磁盘文件中,然后打开该文件读岀数

15、据,对成绩进行山高到低的排序,并打印成绩不及格的学生人数。最后再次调用save函数把数据存入到原磁盘文件中。要求按照如下给岀的函数原型进行编程:voidsave(floatscore,intn);voidSort(floatscore,intn);intFail(floatscore,intn);要求用一维数组做函数参数编程实现成绩排序和统讣成绩不及格的学生人数,然后在主函数中打印这些结果,不能使用全局变量编程。参考程序如下:voidload(floatscore,intn)/3分FILE*fp;inti;辻(fp二fopen(02406101,rb)=NULL)printf(,zcannot

16、openinfilen,z);return;for(i=0;in;i+)if(fread(&scorei,sizeof(float),1,fp)!=1)if(feof(fp)fclose(fp);return;printf(z/filereaderrorn,z);fclose(fp);voidsave(floatscore,intn)/3分FILE*fp;inti;if(fp二fopen(02406101,wb)=NULL)printf(,zcannotopenfilen,z);return;for(i=0;in;i+)if(fwrite(ftscoreLi,sizeof(float),1,f

17、p)!=1)printf(z/filewriteerrorn,z);fclose(fp);voidsort(floatscore,intn)/3分inti,j,k;floatt;for(i=0;inl;i+)k=i;for(j=i+l;jn;j+)if(scorejKscorek)k=j;t二scorek;scorek二score匸;scorei二t;intFail(floatscore,intn)/3分inti,k=0;for(i=0;in;i+)if(scorei60)k+;returnk;voidmain()/3分inti;floatscore10J;for(i=0;i10;i+)scanf&scorei);save(score,10);load(score,10);sort(score,10);printf(,zTheFailnumberis%d,z,Fail(score,10);save(score,10);

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!