2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案).docx

上传人:夺命阿水 文档编号:965111 上传时间:2024-02-04 格式:DOCX 页数:45 大小:124.13KB
返回 下载 相关 举报
2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案).docx_第1页
第1页 / 共45页
2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案).docx_第2页
第2页 / 共45页
2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案).docx_第3页
第3页 / 共45页
2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案).docx_第4页
第4页 / 共45页
2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案).docx_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案).docx》由会员分享,可在线阅读,更多相关《2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案).docx(45页珍藏版)》请在课桌文档上搜索。

1、2021年辽宁省盘锦市全国计算机等级考试C语言程序设计真题(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1 .类是一个支持集成的抽象数据类型,而对象是类的【】。2 .以下程序运行时若从键盘输入:102030。输出结果是【#includemain()(inti=O,j=O,k=O;SCanf(d%*d%d”,&i,&j,&k);printf(%d%d%dn,i,j,k);)3 .当先后输入1、3、4、12、23时,屏幕上出现【】;再输入12时,则屏幕上出现【】。#include#defineN5main()inti,j,number,top,bott,min,locajaN,flag

2、;chare;printf(,Pleaseinput5numbers(aiai-l)n);scanf(%d,j&a0);i=l;while(i=ai-l)i+;)printf(un);for(i=0;iN;i+)printf(%d,jai);printf(un);Aag=I;while(flag)scanf(,%d,&number);Ioca=O;top=0;bott=N-l;if(numberalN-l)Ioca=-I;while(Ioca=O)&(top=bott)min=(bott+top)2;if(number=amin)loca=min;printf(%disthe%dthnumbe

3、rn,number,loca+1);)elseif(numberaminj)bott=min-l;elsetop=min+l;if(Ioca=OIIloca=-1)printf(,%disnotinthelist.n,number);c=getchar();if(C=NIIc=H)flag=O;4 .设一棵完全二叉树共有700个结点,则在该二叉树中有【】个叶子结点。5 .以下程序的运行结果是o#includelongfib(intg)switch(g)case0:return0;case1:case2:return1;return(fib(g-l)+fib(g-2);)main()longk;

4、k=fib;printf(k=%51dn,k);)6 .数据库设计分为以下6个设计阶段:需求分析阶段逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。7 .若a是int型变量,则下列表达式的值为o(a=2*3,a*2),a+48 .数据的结构在计算机存储空问中的存放形式称为数据的存储结构或物理结构。9 .以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:y1=(x+8)2-2(x+8)+6y2=sin2(x)-2sin(x)+6请填空。doublefun(doublex)return(x*x-2*x+6);doublex,yl,y2;printf(uEnter

5、x:n);scanf(%lf,&x);yl=fun(6);y2=fun(7);printf(,yl=%lfjy2=%ln1yl,y10 .以下程序的输出结果是【】。main()intx=0;SUb(&x,8,1);printfCt%dn,x);)sub(int*a,intn,intk)if(k=n)sub(a,n2,2*k);*a+=k;二、单选题(10题)11 .下列程序的运行结果是()。#include#defineADD(x)x+xmainintm=1,n=2,k=3;intS=ADD(m+n)*k;printf(s=%d,s);)A.sum=18B.sum=10C.sum=9D.sum

6、=2512 .有以下程序:#includeint*f(int*s)sl+=6;*s=7;s+=2;returns;)main()i11ta5=1,2,3,4,5,*p=a;P=f(P);Printfr%d,%d,%d,a0,al,*p);)程序运行后的输出结果是OOA.9,8,9B.7,8,7C.7,8,3D.l,2,l13 .以下不能将s所指字符串正确复制到t所指存储空间的是()。A.while(*t=*s)t+;s+;)B.for(i=0;ti=sij;i+);C.do*t+:*s+;while(*s);D.for(i=0,j=0;ti+=sj+;);14 .链表不具有的特点是()。A.插

7、入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比15 .对一个算法的评价,不包括()方面的内容。A.健壮性和可读性B.并行性C.正确性D.时空复杂度16 .若有“doublea;二则正确的输入语句是()。A.scanf(,%lf,a);B.scanf(%f,a);C.scanf(%lf,a)D.scanf(,%le,a);17 .关于指针,以下说法正确的是0。A.可以直接向指针中写入数据B.若指针指向变量,则可以向指针所指内存单元写入数据C.指针可以指向内存中任何位置,并写入数据D.两个指针可以通过加运算求和,形成一个功能更强大的指针18 .有以

8、下程序段:#includeintj;floaty;charname50;SCanf(%2d%fs”,&j,&y,name);当执行上述程序段时,从键盘上输入555667777abc后,y的值为OOA.566.0B.55566.0C.7777.0D.566777.019 .下列数据结构中,能够按照“先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树20 .若在以下定义和赋值语句,则才S数组的第i行第j歹J(假设i,j已正确说明并赋值)元素地址的合法引用为ints23=0,(*p)3;P=S;A*(*(p+i)+j)B.*(pi+j)C.(p+i)+jD.(*(p+i)j三、程序

9、设计题(1。题)21 .请编写函数ProC(),其功能是:利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。xnl=COS(xn)迭代步骤如下:(1)取Xl初始值为Q0;(2)x0=xl,把?Xl的值赋给x;(3)xl=cos(x),求出一个新的X1;(4)若xxl的绝对值小于0.000001,则执行步骤(5),否则执行步骤(2);(5)所求Xl就是方程Cos(X)-X=O的一个实根,作为函数值返回。程序将输出结果root=。.739085o注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数ProC()的花括号中填入所编写的若干语句。试题程序:tn

10、ciudc9mcludcWincludeIkMQProC(11o*)*O.OaO)w*lKlco(9)Iwhit(UIm(MD-jl-1-6)1rmmm!vodtnain()11clf三PfoC()1rutf(*roo*S(n*.1)22.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放人结构体数组StU中,请编写函数PrOC(),它的功能是:把指定分数范围之外的学生数据放在b所指的数组中,分数范围之外的学生人数由函数值返回。例如,输入的分数是70和79,则应当把分数低于70和高于79的学生数据输出,不包含70分和79分的学生数据。主函数中把70放在IOW中,把79放在heigh中。注

11、意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数PrOC()的花括号中填人所编写的若干语句。试题程序:gMM-Iud*林deluveM16typdefMruci(durumlantISTREC,miPrOe(STRECSTRKbmilimh*odmamC(KrRECRtM=11iADQS.SSHGA03.M.aGAOOI.88.GA7.74hGA00a*.S).GA00*.89KGAOIS.90)GA013*51UGOI2*.MHCCiAOH*.82hGAO11.73.(GAO11.S9HGAOIS.MlGAO)*.MHSTRECh(Mntinlow.heigh

12、,tpnnt(vEnterZmeernumberlow&Krtght”cnf,d%J&knr&hcb).(hethlow)1三hetghheh*lowlow-kt)n-pvoc(nMhlowlwh)Iprnt(*TbcHtudcAtwhet*h)tlor(ivOa+)rtntfes4dnhl),出指定分题内的学生记*prmf三includeHinclude养includeVstdlib.hHdefineM5voidprocintaM)voidmain()for(i-OjiVMji+)产生一个随机的55矩阵for(j-0jrr(i0=rand()%10pnntf)printf(*n)j)proc

13、arr)tprintf(THERESULTn)tfor(i=0MM*i)(for(j-0jMj+)Printf(%4d,rrij)tprintf(n)24.使用VC+2010打开考生文件夹下PrOgl中的解决方案。此解决方案的项目中包含一个源程序文件PrOgLc。在此程序中,请编写一个函数fun(),用来求出数组中值最大的元素在数组中的下标并将其存放在k所指向的存储单元中。例如,输入如下整数:876675896IOl301401980431451777则输出结果为6,980。注意:部分源程序在文件ProgLC中。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入

14、你编写的若干语句。试题程序1 1include2 1include3 1include4 intfun(intszinttrintk)5 67 )8 voidmain()9 (10 FILEwf;11 inta10=876,675,896,101,301,401,980,431,451,777,k;12 system(,CLS,);13 fun(a,10,&k);14 printf(m%d,%dn,k,ak);15 /*/16 wf=fopen(wout.dat,rmwm);.17fprintf(wfr0%d,%d,k,ak);18 fclose(wf);19 /*/20 )25 .请编写函数

15、proc(),它的功能是:求出11000中能被5或13整除,但不能同时被5和13整除的所有整数,并将它们放在arr所指的数组中,通过n返回这些数。注意:部分源程序给H如下。请勿改动main0函数和其他函数中的任何内容,仅在函数ProC()的花括号中填入所编写的若干语句。试题程序:Sincludeconio.h/includeVzdio.hJSincludeViudlib.hvoidproc(inarr.intn)voidmflin(intarr1000.n.ksystcfn(CI.S)tproc(arr.n)fork-0kif(kl)10-0)(pnnt(KSd.arrk)jprintf(n)

16、一行写10个数)elseprintf(5darrkj)26 .某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩己在主函数中给出,请编写函数,其功能是:求出该学生的平均分,并放入记录的ave成员中。例如,学生的成绩是:85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应为78.875o注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun部位中填入你编写的若干语句。试题程序:#include<stdio.h>#defineN8typedefstruct(charnum10;doublesN:doubleave;

17、STREC;voidfun(STREC*a)()voidmainSTRECs=GA005n,85.5,76,69.5,85,91,72,64.5,87.5;inti;fun(&s);printf(The%ssstudentdata:n,s.num);for(i=0;i<N;i+)printf(%4.lfkn,s.si);printf(nknave=%7.3fkn,s.aVe);printf(n);)27 .请编写fun函数,其功能是:计算并输出3m所有素数的平方根之和。例如,若主函数从键盘给m输入50后,则输出为s=68.66579U请勿改动main函数与其他函数中的任何内容,仅

18、在函数fun的花括号中填入所编写的若干语句。注意:m的值要大于2但不大于100。部分源程序给出如下。试题程序:#include#includedoublefun(intm)()voidmain(intm;doubles;FILE*out:printf(,nnlnputm:);scanf(%d,&m);s=fun(m);printf(,nns=%fnn,s);ut=fopen(outfile.dat,w);for(m=0;m10;m+)fprintf(out,%fn,fun(m+80);ilose(out);)28 .使用VC+2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包

19、含一个源程序文件Progl.c。在此程序中,请编写一个函数fun(),该函数的功能是使变量h的值保留两位小数,并对第3位进行四舍五入(规定h的值为正数)。若h的值为1234.567,则函数返回1234.570000;若h的值为1234.564,则函数返回1234.560000。注意:部分源程序在文件progl.c中。请勿改动主函数main。和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:include#include#includefloatfun(floath)()voidmain()(FILE*wf;floata;system(,CLS);printf(

20、nEntera:);scanf(%f,&a);printf(Theoriginaldatais:,);printf(%fnn,za);printf(nTheresult:%fnt,rfun(a);/*/wf=fopen(out.datnr,w);fprintf(wf,%flfun(8.32533);fclose(wf);/*/)29 .规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:*A*BC*DEF*G*删除*后字符串中的内容应当是:ABCDEFGo注意:部分源程序在文件PROGl.C中

21、。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#inclutlcvoidfin(chara)man()chars81;VoidNON()()srintf(mEnHTsiring:n*);grbi()fun()(nntf(Thestringafterdelrtrdi11r);PUbI(10;N(NO();voidNONO(本函数用于打开文件,辎人数据,调用函数.*出数据,关闭文件./FlIJtin,out;inti;rhar8l;in=om(in.1.r);mH三fen(*oul.dal,.wm);fbr(i=O;i10;i)Ifcanf(in.%

22、-t);fun(s);Fl(out.%11,a);frlovc(in)ifelM(exit);30 .n个人的成绩存放在SeOre数组中,请编写函数PrOC(),它的功能是将低于平均分的人数作为函数值返回,将低于平均分的分数放在down所指的数组中。例如,当score数组中的数据为99,80,40,56,59,84,60,76,100时,函数返回的人数应该是4,down中的数据应为40565960o注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数ProC()的花括号中填入所编写的若干语句。试题程序:9include*t9indudeVCottMXbndudcS

23、includeVznnMProC0Usrv(3*mtnmidowp11Dtfwntotheaveragecorvar9:)(ori三0PriK%d.dowaCipnff(e*)tI四、2.程序修改题(10题)31 .下列给定程序中,函数fun()的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上,并将该字符前的原字符向后顺序移动。例如,调用fun()函数之前给字符串输入ABCDeFGH,调用后字符串中的内容为eABCDFGHo请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include/*fou

24、nd*/fun(char*p)charmax,*q;inti=0;max=pi;while(pi!=0)if(maxpi)(/*found*/p=q+i;max=pi;)i+;)/*found*/while(qp)*q=*(q-l);q-;)p0=max;)main()charstr8O;printf(Enterastring:);gets(str);printf(nTheoriginalstring:);puts(str);fun(str);printf(nThestringaftermoving:);puts(str);printf(nn);32 .给定程序MoDll.C中函数fun的功能

25、是:为一个偶数寻找两个素数,这两个素数之和等于该偶数,并将这两个素数通过形参指针传回主函数。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!includeinclude3456789101112voidfun(inta,Int*brint*c)(inti,j,d,y;for(i-3;i-a2;i-i+2)(*f。Imd*/Y-I;for(j-2;j-sqrt(double)1);j+)if(i%j-0)y-0;if(y-1)(*m*fOUnd*f*/da-i;13for(j-2;j-sqrt(double)d);j)15

26、161718192021222324252627if(d%j0)y三0;if(y-1)*b三i;*c三d;Imain()(inta.b,cjdo(printf(wnlnputa:);scanf(w%drfta)jwhile(a2);fun(a,&c);printf(wnn%d%d%dn”,a,b,c);33.给定程序MoDn.C中函数fun的功能是:先将S所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。3 45 67891011121315main ()16 char s 100, t100;例如:当S所指的字符串为:“ABCDE”时,则t所指的

27、字符串应为:“EDCBAABCDE”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*include!includevoidfun(char*srchar*t)(/found/Inti;si-strlen(s);for(i-0;isl;i+)/found/t(i-s(sl-i;for(i三0;isl;i+)t(sli.si;t2*sl三0,;17181920printf(XnPleaseenterstrings:);scanf(w%snrs);EUn(s,t);printf(Theresultis:%snrt);34 .给定程序Mo

28、Dll.C中函数fun的功能是:判断一个整数是否是素数,若是返回1,否则返回0。在mai()函数中,若fun返回1输出YES,若fun返回0输出NO!。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数。不得增行或删行,也不得更改程序的结构!234567 91011121314151617*includeIntfun(intm)(intk-2;while(k-m&(m%k)/found*k+*ound*if(m-k)return1;elsereturn0;main()intn;printf(wnPleaseentern:w);scanf(,%d,&n);if(fun(n)pr

29、intf(YESn);elseprintf(wNO!nw);35 .给定程序MODn.C中函数fun的功能是:用下面的公式求的近似值,直到最后一项的绝对值小于指定的数(参数num)为止:X1111+十4357例如,程序运行后,输入0.0001,则程序输出3.1414。请改正程序中的错误,使它能输出正确的结果。注意:不要改动Smain函数,不得增行或删行,也不得更改程序的结构!345678910111213141516171819202122232425!include!includefloatfun(floatnum)ints;floatn,trpi;t三lpi三0n,lsl;*foUnd*/

30、while(t=num)(pi-pi+t;nn+2;s-s;/*/und*/t三s%n;pipi*4;returnpi;)main(Jfloatnl,n2;printf(Enterafloatnumber:);scanf(,%fr&nl);n2-fun(nl);printf(%6.4fnw,n2);36 .下列给定程序中,函数fun()的功能是:将S所指字符串中的字母转换为按字母序列后续字母(但Z转换为A,Z转换为a),其他字符不变。请改正程序指定部位的错误,使它能得到正确结果。注意不要改动main函数,不得增行或删行,也不得更改程序的结构。试题源程序#include#includevoidf

31、un(char*s)/*fjund*/While(*s!=)if(*s=,A,&*s=,a,&=,)(if(*s=,Z,)*s=A;elseif(*s=,z,)*s=,a,;else*s+=l;)/*found*/(*s)+;)voidmain()(chars80;printf(nEnterastringwithlength80.:nn);gets(s);printf(nThestring:nnt);puts(s);fun(s);printf(nnTheCords:nn);puts(s);)37 .下列给定程序中,函数fun()的功能是:将字符串p中所有字符复制到字符串b中,要求每复制3个字符

32、之后插入一个空格。例如,在调用fun()函数之前给字符串a输入ABCDEFGHlJK,调用函数之后,字符串b中的内容则为ABCDEFGHIJKo请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#includevoidfun(char*p,char*b)inti,k=0;while(*p)/*Und*/i=l;/*Qund*/while(i3*P)bk=*p;k+;p+;i+;if(*P)/*Qund*/bk=;)bk=,0;)main()chara80,b80;printf(Enterastring:,);gets(a);p

33、rintf(Theoriginalstring:,);puts(a);fun(a,b);printf(nThestringafterinsertspace:,);puts(b);printf(nn”);38 .下列给定程序中函数fun()的功能是:将长整型数中每一位上为偶数的数依次逆向取出,构成一个新数放在t中。高位在低位,低位在高位。例如当s中的数为25846513时,t中的数为6482o请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#includeincludevoidfun(longS,long*t)(in

34、td;longsl=l,i=l;*t=0;while(si0)i=i*10;i=i10;while(s0)d=si*求*仙Und*/if(d%2!=0)/*砧Und*/t=d*sl+t;sl*=10;)S=S%i;i=i10;)main()(ongS,t;clrscr();printf(,nPleaseenterS:);scanf(%ldu,&s);fun(S,&t);printf(,Theresultis:%ldn,t);)39 .下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到C数组中,形成一个新的字符串。例如:a中的字

35、符串为fshADfg1b中的字符串为SdAEdi,则C中的字符串应为fdAADfo请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#includevoidfun(char*p,char*q,char*c)intk=0;while(*pH*q)/*found*/if(*p=*q)ck=*q;elseck:*p;if(*p)P+;k+main()chara10=,fshADfg,lb10=sdAEdi,c80=,0,);fun(a,bjc);printf(Thestringa:,);puts(a);printf(,

36、Thestringb:n);puts(b);printf(Theresult:);puts(c);)40 .下列给定程序中,函数fun()的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使它能得到正确结果。注意不要改动main函数,不得增行或删行,也不得更改程序的结构。试题源程序#include#defineN20voidfun(inta,intn)(inti,j,t,p;for(j=0;jn-l;j+)/*found*/p=jfbr(i=j;in;i+)if(aiap)P=j;t=aP;ap=aj;aj=t;)msin()(intaN=(9,6,8,3,-1

37、),i,m=5;Printf(排序前的数据巧;for(i=0;im;i+)printf(%d,ai);printf(,n);fun(a,m);Printf(排序后的数据for(i=0;im;i+)printf(%d,ai);printf(n,);)五、程序改错题(2题)41.下列给定程序中,函数PrOC()的功能是:求S的值。设S-(22(3)(U)74小以I)(21)例如,当k为20时,函数的值应为1.551759。请修改程序中的错误,使它能得出正确的结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结构。试题程序:MmclueamcludeVeOneo.h三mcldcV“didh9includeVah.hf/foundproHk)ntnfloatvpqfcl三l.0whle(0三k)wt,0np三w-1.0q*w.0a三Ww,p*qI(oufjreturnmidmain()ytiE(*CWrmtf(*fne*proc(201)42.下列给定的程序中,函数ProC()的功能是:将

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号