2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案).docx

上传人:李司机 文档编号:6776810 上传时间:2024-02-04 格式:DOCX 页数:42 大小:104.58KB
返回 下载 相关 举报
2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案).docx_第1页
第1页 / 共42页
2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案).docx_第2页
第2页 / 共42页
2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案).docx_第3页
第3页 / 共42页
2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案).docx_第4页
第4页 / 共42页
2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案).docx_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案).docx》由会员分享,可在线阅读,更多相关《2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案).docx(42页珍藏版)》请在三一办公上搜索。

1、2021年内蒙古自治区乌兰察布市全国计算机等级考试C语言程序设计模拟考试(含答案)学校:班级:姓名:考号:一、2.填空题(10题)1 .设有以下定义struetssintinfo;struetss*link;x,y,z;且已建立如下图所示链表结构:请写出删除结点y的赋值语句【】。2 .一般来说,算法可以用顺序、选择和三种基本控制结构组合而成。3 .设有下列程序:#include#includemain()i11ti;charsIOJ1t10;gets(t);for(i=0;i2;i+)gets(s);if(strcmp(t,s)O)strcpy(t,s);)printf(,%snn,t);)程

2、序运行后,从键盘上输入(代表回车符):DEFBADEFQTHRG,则程序的输出结果是O4 .下列函数从字符数组s中删除和C一样的字符,请在下面横线处填空。voiddelete(s,C)charsjc;inti,j;for(i=j=0;();i+)if(si!-c!)sU+=si;sU=0t;)5 .下面程序的输出结果是【structaaintx,*y;j*p;inta8=10,20,30,40,50,60,70,80);structaab4=100,&al,200,&a3,10,&a5,20,&a7;main()P=b;printf(%d,*+p-y);printf(,%dn,+(p-x);6

3、 .数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和【】两个含义。7 .面向对象的模型中,最基本的概念是对象和8 .以下程序的输出结果是【】。#include#defineMAX(x,y)(x)(y)?(x):(y)main()inta=5,b=2,c=3,d=3,t;t=MAX(a+b,c+d)*10;printf(%dn,l);9 .数据库存管理系统常见的灵敏据模型有层次、网状和【】三种。10 .下面程序执行后输出的结果是【】。intm=13;intfun(intx,inty)intm+3;return(x*y-m);)main()inta=7,b,5;pmtf(,%dn,f

4、un(a,B)m);二、单选题(10题)11 .作为信息处理热点技术之一的“多媒体技术”中的媒体,强调的是()oA.存储媒体B.表现媒体C.传输媒体D.感觉媒体12 .软件需求规格说明书的作用不包括()。A.软件设计的依据B.软件可行性研究的依据C.软件验收的依据D.用户与开发人员对软件要做什么的共同理解13 .同一个关系模型的任意两个元组值()。A.可以全相同B.不能全相同C.必须全相同D.以上都不对14 .有以下程序:mainchara-a,b;printf(%c,+a);printf(%cn,b=a+):)程序运行后的输出结果是()。A.A.b,bB.bjcC.a,bD.ajC15 .设

5、二叉树的中序序列为BCDA,前序序列为ABCD1则后序序列为OoA.CBDAB.DCBAC.BCDAD.ACDB16 .以下定义语句中正确的是A.inta=b=0;B.charA=65+l1b=,b,;C.noata=l,*b=&a,*c=&b;D.doublea=0.0;b=l.l;17 .下列有关数据库的描述,正确的是0A.数据库是一个DBF文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件18 .有下列程序:#include.hmain()Iinta123456,b;while(a)Ib=a%10;a/=10;switch(b)Idefault:Printf(%

6、d*tb);case1:break;cae2:printf(%d,b-);breakicase3:printf(%dw,b);case4:Print(%d,.b)case5:Prirltf(*%d*,b);程序执行后的输出结果是0。A.654321B.65432C.65453452D.65453452119 .有以下程序:#includevoidexch(inttJ)tO=ts;main()intx10=l,2,3,4,5,6,7,8,9,10,i=0;while(i=4)exch(fexi);i+;for(i=0;ib)c=a,a=b,b=c;B.if(ab)c=a,a=b,b=c;C.if

7、(ab)c=a;a=b;b=c;D.if(ab)c=a;a=b;;b=c;三、程序设计题(10题)21.请编写一个函数introc(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:876675896101999401980431451777则输出结果为4,999o注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数ProC()的花括号中填入所编写的若干语句。试题程序:&indudincludeVQoKintproemirr0-a7S.57S.8M.1Ol.m.4OI.MO.UI.4Sl711L

8、ky*mc(*rr10&khPErtKdHdnh.B11iL)l22.函数fun的功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,S所指串中剩余的字符形成的新串放在t所指的数组中。例如,若S所指字符串中的内容为“ABCDEFG12345”,其中字符C的ASCn码值为奇数,在数组中的下标为偶数,因此必须删除;而字符1的ASCn码值为奇数,在数组中的下标为奇数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是“BDF12345”。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#includ

9、e#includevoidfun(char*s,chartD(main().charslOOtt100;Printf(nPleaseenterstringS:);af(%ss);fu11(s.t);PKntf(nleresultis:%sntl,t);23.请编写一个函数VoidPrOC(intm,intk,intxxE3),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。例如,若输入206,则应输出232931374143。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数ProC()的花括号中填入所编写的若干语句。试题程序:$xnciu3e9

10、include3InClUdeVNdahVotdrocvodmam()mitn.n4ff(1000ay*en*CLS)prmd(nPIsECTtwotateg*ri)ttei*nfttid4.&m.&.n)tprocmnrr)Cor(tna0m)rtatf(*Xd.a(m)rmd(n*)24.使用VC+2010打开考生文件夹析下progl中的解决方案。此解决方案的项目中包含一个源程序文件ProgLc。在此程序中,编写程序,实现矩阵(3行、3歹U)的转置(即行列互换)。例如,若输入下面的矩阵:100200300400500600700800900则程序输出:1004007002005008003

11、00600900注意:部分源程序在文件ProgLC中。请勿改动主函数main。和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:11 #include2 #include3 #include4 voidfun(intarray33)5(67 )8 voidmain()910FILE*wf;11 inti,j;12 intarray33=100,200,300),400,500,600,700,800,900);13system(,CLS);14for(i=0;i3;i+)15forO=0;j3;j+)16printf(,%7d,arrayij);17print

12、f(,n);18 )19 fun(array);20 printf(Convertedarray:n,);21 for(i=0;i3;i+)22forG=0;j3;j+)23printf(,%7dn,arrayij);24 printf(n);25 )26 /*found*/27wf=fopen(out.datn,w);28for(i=0;i3;i+)29for(j=0;jluISHICludeWdefineM3&finrN20midprocvoidtnaift)IcUrMrMJLN-(wABCD.wBlDEFG,.CDEFGHr).lcharrr(l*#9StfflffStfSSSllSSp

13、rm(foriOiprtfi(prc(*trarr)pnof(TheANrlnet*pnntf(*Hs*.rr)pnmf(aan26 .请编写fun()函数,其功能是:计算并输出3m所有素数的平方根之和。例如,若主函数从键盘给m输入50后,则输出为s=63.665791。注意:m的值要大于2但不大于100o部分源程序给出如下。请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。试题程序:indudeVmath.hVittdudeV.tdao,hdouble(unvoidmaia()iatmdoubkMFtl.Eou1prmfMm!)caid*Hf*

14、&.1.funm)Ipncoutlopn(aowtGk.df*.w*)(orn三0mIOsm)fprnf(un)kktfe27 .规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用C语言提供的字符串函数。例如,字符串中的内容为:*A*BC*DEF*G*删除*后字符串中的内容应当是:ABCDEFGo注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#inclutlcvoidfin(char.un()CharS!81;VoidNON()()srintf(mEnH

15、Tsiring:n*);grbi()fun()inntf(Thestringafterdelrtrdi11,*);PUbI(10;N(NO();voidNONO(本函数用于打开文件,辎人数据,调用函数.*出数据,关闭文件./FlIJtin,out;iti;char81;in=oprn(in.en(*oul.dal,.wm);fbr(i=O;i10;i)Ifftcanf(in,%nt);fun(s);Fl(out.%11*,a);Imc(in);felM(exit);28 .规定输入的字符串中只包含字母和。号。请编写函数fun,其功能是:将字符串尾部的。号全部删除,前面和中间的*号不动。例如,字

16、符串中的内容为:ABCDEFG”,刷除后.字符串中的内容应当ft:-A.BC.DEFG在编写函数时,不得使用C语在提供的字符串函数。注意:部分源程序在文件PROGI.Co请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。includevoidfun(chara)main()chars81;WidNoNO();rintf(EnteraNring:n)grta();ftm();pri11tf(Thetringafterdeleted:na);put(s);N0N0();voidNONO()本函数用于打开文件,人数据,网用函数.输出数据,关闭文件。/FILE

17、in.out;inii;chars81;in=fofn(in.dat,r);out=fopen(out.hl,w);for(i=O;iIO;i)Ifcmf(in.-%*,s);ft():fjprintf(out,n,);Ifcloe(in);fcloe(out);29 .编写fun()函数,它的功能是:利用以下所示的简单迭代方法求方程cos(y)-y=0的一个实根。yn+l=cos(yn)迭代步骤如下:取yl初值为0.0;(2)y0=yl,把yl的值赋给yO;(3)yl=cos(yO),求出一个新的yl;若y=yl的绝对值小于0.OOOOOl,则执行步骤(5),否则执行步骤(2);所求yl就是

18、方程COS(y)-y=0的一个实根,作为函数值返回。程序将输出结果ReSUIt=0.739085o请勿改动main()函数与其他函数中的任何内容,仅在函数fun()的花括号中填入所编写的若干语句。部分源程序给出如下。试题程序:。nclukr4 includeVmith.h5 nriudrV*tdao.h11otfun(void11Mn)IFILCnnoaeo*(nn)pntMf(aR*Mh*Haco)out,fopnMt(Uc.dat*w*)fpntf(out*HPcm)(cobcou()30 .使用VC+2010打开考生文件夹下progl中的解决方案。此解决方案的项目中包含一个源程序文件Pr

19、ogLC。在此程序中,请编写函数fun(),该函数的功能是将S所指字符串中ASCll值为偶数的字符删除,字符串中剩余字符形成一个新字符串并将其存放在t所指的数组中。例如,若s所指字符串中的内容为“ABCDEFG123456,其中字符B的ASCn值为偶数,字符2的ASCll值为偶数,都应当删除,其他依此类推。最后t所指的字符串中的内容应是“ACEG135”。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花括号中填入你编写的若干语句。试题程序:#include#include#include#includevoidfun(char*s,chart)

20、()voidmain()(chars100,t100;SyStem(CLS);printf(tnPleaseenterstrings:);scanf(t%s,s);fun(s,t);printf(nTheresultis:%sn,t);)四、2.程序修改题(10题)31 .给定程序MODll.C中函数。fun的功能是:从3个红球,5个白球,6个黑球中任意取出8个作为一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数作为函数值返回。正确的组合数应该是15o程序中i的值代表红球数,j的值代表白球数,k的值代表黑球数。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不

21、要改动main函数,不得增行或删行,也不得更改程序的结构!123456789!include int fun()(int i,j,k,sum0; printf(wnThe result :nn);* f。Und for (i0; i3; i+)(for(j-l; j-0 & K-6)(sumsum+l;printf(nred:%4d %4d black:%4dnw, i,j,k);white:1516return sum;171819202122main()intsum;sum三fun();printf(sum三%4dnn,sum);32 .下列给定程序中,函数fun()的功能是:依次取出字符

22、串中所有的数字字符,形成新的字符串,并取代原字符串。请改正函数fun()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#includevoidfun(char*s)inti,j;for(i=Oj=0;si!=0,;i+)if(si=,0,si=9,)/*found*/sj=si;/*Und*/Sj=,0;)main()charitem80;clrscr();printf(nEnterastring:n);gets(item);printf(nnThestringis%sn,item);fun(item);printf

23、(nnThestringofchangingis:%sn,item);33 .给定程序MODn.C中函数fun的功能是:先将S所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t所指串的后面。例如:当s所指的字符串为:“ABCDE”时,则t所指的字符串应为:“EDCBAABCDE”。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*include !include void fun4567891011121314151617181920found*(char*srchar*t)inti;si三strlen

24、(s);for(i三0;isl;i+)found*ti-ssl-i;for(i三0;isl;i+)t(sli三s(i;t2*sl三0,;main()chars100,t(100;printf(XnPleaseenterstrings:;scanf(w%snrs);EUn(s,t);printf(Theresultis:%snwrt);34 .在主函数中从键盘输入若干个数放入数组中,用。结束输入并放在最后一个元素中。下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。例如:数组中元素的值依次为43,47,-21,53,-8,12,0,则程序的运行结果为-25.333

25、333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#includedoublefun(intx)(doublesum=0.0;intc=0,i=0;/*Und*/while(xi=0)(if(xi0)(sum=sum+xi;c+;)i+;)/*f)und*/sum=sumc;returnsum;)main()(intx1000;inti=0;clrscr();printf(nPleaseentersomedata(endwith0):”);do(scanf(%dj&xi);while(xi+!=0);pr

26、intf(%fn,tfun(x);35 .下列给定程序中,函数fun()的作用是,将字符串注中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab,cD”,则输出ab,cdo请改正函数fun()中的错误,使它能得出正确的结果。注童:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#includechar*fun(chartt)(inti;for(i=0;tti;i+)/*found*/if(,A,=tti(tti=z)tti+=32;return(tt);)main()inti;chartt81;clrscr();printf(

27、nPleaseenterastring:);gets(tt);printf(,nTheresultstringis:n%s,fun(tt);36 .下列给定程序中,函数fun()的功能是绐定n个实数,输出平均值,并统计平均值以上(含平均值)的实数个数。例如,n=8时,输入193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763,所得平均值为195.838745,在平均值以上的实数个数应为5。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#

28、includeintfun(floatx,intn)/*found*/ihtj,c=0;floatxa=0.0;for(j=0;jn;.j+)xa+=xjn;printf(ave=%n,xa);for(j=0;j=xa)c+;returnc;)main()floatx100=193.199,195.673,195.757,196.051,196.092,196.596,196,579,196.763;clrscr();printf(%dn,fun(x,8);37 .下列给定程序中,函数fun()的功能是:输出M行N列整数方阵,然后求两条对角线上的各元素之和,返回此和数。请改正程序中的错误,使它

29、能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include#include#defineM5ihtfun(intn,intxx)inti,j,sum=0;printf(nThe%dx%dmatrixn,M,M);for(i=0;iM;i+)for(j=OJM;j+)printf(%4f,xxij);/printf(,n);)for(i=0;in;i+)sum+=xxii+xxin-i-l;return(sum);)main()intaaMM=1,2,3,4,5,4,3,2,1,0),(6,7,8,9,0,9,8,7,6,5,3,4,5,6,7

30、);clrscr();printf(nThesumofallelementson2diagnalsis%d,fun(M,aa);)38 .给定程序中函数fun的功能是:从低位开始取出长整型变量S中偶数位上的数,依次构成一个新数放在t中。高位仍在高位,低位仍在低位。例如,当S中的数为7654321时,t中的数为642。请改正程序中的错误,使它能得到正确结果。注意不要改动main函数,不得增行或删行,也不得更改程序的结构。试题源程序#include/*fk)und*/voidfun(longs,longt)(longsl=10;s/=10;*t=s%10;/*fk)und*/while(s0)(s

31、=s100;*t=s%10*sl+*t;sl=sl*10;)msin()(longs,t;printf(nPleaseenters:n);scanf(%ldu,&s);fun(s,&t);printf(Theresultis:%ldn,t);)39 .给定程序MOD11.C中函数fun的功能是:计算n!。例如,给n输入5,则输出120.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!*includedoublefun(intn)doubleresult-1.0;found*0 91011121314151617retu

32、rn1.0;while(n14&n170)*found*result*en-returnresult;main()(intn;printf(InputN:w);scanf(%dr&n);printf(wnn%ci!-%lfnnrnrfun(n);40 .给定程序MoDHC中函数fun的功能是对N名学生的学习成绩,按从高到低的顺序找出前m(mW0)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!2345678910111213141

33、5161718192021222324252627282930313233343536373839404142434445464748*includeincludeincludetdefineN10typedefstructss(charnum10;ints;STU;STU*fun(STUa,intm)STUbNr*t;inti,j,k;/*found*/t-(STU*)calloc(sizeof(STU),m)for(i-0;iN;i+)bi三a(i;for(k-0;km;k+)(for(i-j-0;ibj.s)j-i;found*/t(k)-b(j);b(j.s三0;returnt;Out

34、result(STUa(,FILE*pf)int1;for(i三0;i10)printf(wnGivethenumberofthestudentswhohavebetterscore:w);scanf(%d,&m);)prder-fun(arm);printf(*THERESULT*n);printf(Thetop:n);for(i三0;im;i+)printf(%s%dn,prderi.num,prderi.s);free(prder);五、程序改错题(2题)41 .下列给定程序中,函数fun()的功能是:将Str所指字符串中的字母转换为按字母序列的后续字母(Z转换A,Z转换a),其他字符不

35、变。请修改函数fun()中的错误,得出正确的结果。注意:不要改动main。函数,不得增行或删行,也不得更改程序的结构。试题程序:4tftdude,tncludr9includevoid(unIfoundWIM”r!(W(rA&r三*Z*lItr三*a&MYitr三三,Z*) mr三*A*elsetf tr三* rtr三l/found(MF+Iodmm()Huirtr(tjPHtM”nEnraMdngwithkmhet*(r)prtMf(aTheNrSCtnn*PUENrIIwn(Mr)Irtf(nnTheConbtn0*)puBMr)42.下列给定程序中,函数ProC的功能是计算正整数m各位上

36、数字的平方和。例如,输入498,则输出应该是161。请修改程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdlib.h>#include<stdio.h>#include<conio.h>longproc(10ngm)(II*jpQund*longsum=l;do(sum+=(m%10)*(m%10);m/=10;!I*jund*)while(m)return(sum);voidmainlongn;system(,CLS);printf(Pleaseenteranumber:);scanf(%1d”,&n);printf(n%ldn

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号