2024计算机二级C语言考试真题汇总.docx

上传人:夺命阿水 文档编号:1255563 上传时间:2024-04-21 格式:DOCX 页数:14 大小:97.11KB
返回 下载 相关 举报
2024计算机二级C语言考试真题汇总.docx_第1页
第1页 / 共14页
2024计算机二级C语言考试真题汇总.docx_第2页
第2页 / 共14页
2024计算机二级C语言考试真题汇总.docx_第3页
第3页 / 共14页
2024计算机二级C语言考试真题汇总.docx_第4页
第4页 / 共14页
2024计算机二级C语言考试真题汇总.docx_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《2024计算机二级C语言考试真题汇总.docx》由会员分享,可在线阅读,更多相关《2024计算机二级C语言考试真题汇总.docx(14页珍藏版)》请在课桌文档上搜索。

1、模拟卷11填空题下列给定程序中,函数fun的功能是:在形参S所指字符串中找寻及参数C相同的字符,并在其后插入一个及之相同的字符,若找不到相同的字符则不做任何处理。例如,若S所指字符串为baacda,C中的字符为a,执行后S所指字符串为baaaacdaa”。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。留意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:*includevoidfun(char*s,charc)inti,j,n;/found*/for(i三0;si!1;i+)if(s(i=c)(found/n三2j;while(si*1n!三,0,)

2、n*;141518参考解析:【参考答案】for(j-i+n1;ji;jsj+1=sj);*found/sjl=3j;i-i+1;)ImainO(charswbaacdaw,c;printf(,nTestring:%snrs);printf(,nlnputacharacter:r);scanf(%cf4c);fun(src);printf(,nTheresultis:%s(1),0,(2)0(3)C【解题思路】填空1:for语句循环条件是推断是否到达字符串结尾,即当前字符是否为0。填空2:WhiIe语句用以确定字符串的长度,所以变量n赋初值为0。填空3:题目要求假如找到及参数C相同的字符,就在后

3、面插入一个相同的字符,且找到后应当给数组元素赋值,本题目给出参数为c。二、程序修改题2简答题下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCll值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为aBCDeFgH,b字符串为Abcd”,则c中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。留意:部分源程序在文件MODlLC中,不得增行或删行,也不得更改程序的结构!fincludr#in(*lulevoiIfun(clarp.har*q,charc)I/*found*/inik=1;/*fb

4、unl*/while(pJ三q)Iif(*p*q)ck=*q:riseck=p;iK*P)P+;if(q)q+;main()Ihara!0=aBCDdH”,b10=mABcdfc80=,Q,l;fun(atb.c):prinlf(,Thestringa:);put(a);Printf(Thestringb:w);puts(b);printf(Theresult:);PUtS(C);I参考解析:【参考答案】(Dintk=0;(2)while(*p*q)【考点分析】本题考查:变量初始化,需依据题意确定变量含义,然后对其进行初始化操作;WhiIe循环语句。【解题思路】(1)变量k存放数组e的下标,因

5、此应初始化为0。(2)While循环语句的循环条件是推断两个字符串是否到达结尾。三.程序设计题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。例如,字符串中的内容为:*A*BC*DEF*G*”.删除后,字符串中的内容应当是:*A*BC*DEF*G。在编写函数时,不得运用C语言供应的字符串函数。留意:部分源程序在文件PROGLC中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。main()Icharj81;VoidN0N0();pnnlf(Enterafitring:n)W);un()

6、;prinlf(TheMringaftercirlrled:n);puU();NONO();IvoidNONO()本函数用于打开文件,输人数据,调用函数,输出数据.关闭文件-/HLE*in.out;intiIchar8);infopen(in.dat,r);out三fopen(out.iato.,w,*);for(i三0;i10;i+)IfM-anf(in,s.s)sfun();fprintf(out,%n,a);Ifdose(in);(close(oul);参考解析:【参考答案】voidfun(char*a)Iwhile(a;.W)-x指付指向字符串的星部/while(a三;/,指针,指向J

7、后一个字母/(1)”;/在字符率最后加上结束物志符/【考点分析】本题考查:删除字符串尾部+号:删除的主要思想是把不删除的字符保留起来。【解题思路】对于一个字符串要删除其尾部的*号,只须要在最终一个不是*号的字符后面加上结束符号0O详细操作为:首先找到字符串的结尾,然后从最终一个字符起先往前逐个推断是否为*号,直到找到非*号字符为止,最终在该字符后面加上结束符号O。模拟卷2一、程序填空题1填空题下列给定程序中,函数fun的功能是:从形参SS所指字符串数组中,删除全部串长超过k的字符串,函数返回剩余字符串的个数。SS所指字符串数组中共有N个字符串,且串长小于M请在程序的下划线处填入正确的内容并将下

8、划线删除,使程序得出正确的结果。留意:部分源程序在文件BLANKLC中。不得增行或删行,也不得更改程序的结构!#includeWinclukIhlefinrN5WtlefineMIOinifun(char(s)M.inik)Iirti,j0Jen;/*found*/fbr(i=0;i1;i+)Irn=trlrn(i.);/*found*/if(Ien=2】)/(bundslrcpy(sJ+J.3);rrtumj;Inain()IcharxNfM三,Beijing.ShanghaiTianjinJNanjing.Wuhan;intitf;prinl(nTh*originalstring1111)

9、;fbr(i三OiN;i)pula(xi);PriMWf=fun(x.7);rinlf(wT1esiringwitchlengthinIeusthanorrquull7:n);for(i=0;if;i+)puts(xiJ);printf(,n);参考解析:【参考答案】(I)N(2)k(3)ssi【考点分析】本题考查:for循环语句;if语句条件表达式;字符串拷贝函数StrePy的运用。【解题思路】填空1:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len=k填空3:通过字符串拷贝函数将串长

10、不大于k的字符串另存,并记录个数。【解题宝典】字符串拷贝函数SlrCPy,其格式为:StrePy(字符数组名1,字符数组名2)功能:把字符数组2中的字符串拷贝到字符数组1中。字符串结束标识0也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串给予一个字符数组。二、程序修改题给定程序MODiLC中,函数fun的功能是:推断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出全部可能的序列,否则输出“不能分解”。例如:当输入100时,输出:100=9+10+11+12+13+14+15+16100=18+19+20+21+22请改正函数fun中指定部位的错误,使它

11、能得出正确的结果。留意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#includevoidfun(intn)Iintj,b,c,m,flag=0;for(b=1;b三c)(bund*/m=m-cjc+I/found*/if(m!三0)Iprintf(h%d=m,n);for(j=b;jc-1;j+)rintf(-%d,j)jprintf(%dn-,j);三hif(lag=0)PnnML不能分*n);IInain()Iintn(Primf(”请输入一个整数:);Mann-%d&n);fun(n);参考解析:【参考答案】(l)m=n;(2)m=m-c;c+;(3)i(m

12、=0)【解题思路】(1)每次循环,程序须要对n执行减去连续的正整数序列来推断n是否刚好为0,即n是否是连续的正整数序列之和,所以须要运用临时变量m寄存n的值,每次循环对m执行减运算操作,不满意接着下一轮。另外,程序声明变量m时,未初始化它的值,所以此处应当修改为:m=n0(2)语法错误。C语言中每个语句必需以分号结束,所以应修改为:m=m-c;c+;o(3)题目推断n是否是连续的正整数序列之和,若是,则输出全部序列,程序中m依次减去连续的正整数,当m为。时,表示m(即11)满意条件,再输出当前序列中的每个正整数,所以此处推断条件反了,应修改为:if(m=0)03简答题请编写函数fun,其功能是

13、:移动一维数组中的内容,若数组中有n个整数,要求把下标从0P(含P,P小于等于nT)的数组元素平移到数组的最终。例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,维数组中的内容应为:5、6、7、8、9、IOs1、2、3、4。留意:部分源程序给出如下。请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:Hinclude!defineN80voidfn(intw,intp,intn)()mainOintaN1,2,3,4,5,6,7,8,9,10,11/12,13,14,15);Inti,p,n-15;prin

14、tf(*Theoriginaldata八n);for(i=0;iprintf(l3d*,ai);printf(n11Enterp:);scanf(,%4p);fun(a,p,n);printf(nThedataaftermoving:);for(i-0;in;i+)printf;参考解析:【参考答案】【解题思路】void fun (int w, int p, int n)(int r j, ch;for (x =0;x =p;x +)( ch = w;for (j -l;j n;j ) / i*t for揪环语句.将p+U1n-l(n -1)之间的 做施无术依次向嗡移动p+1个存修单元/(w

15、j -1 w j;)wn -1 ch; / 将。到 P 个敬娘七大连一M埼数蛆wn -1 /)本题要求把下标从0P(含P, P小于等于n-1)的数组元素平移到数组的最终,可以依据输入的 P值,通过for循环语句,将P+l-n-l(含nT)之间的数组元素依次向前移动P+1个存储单元,即 Wj-l=wj;,同时将0P个数组元素逐一赋给数组wnT,也就是通过语句WST =ch;来实现此 操作的。printfrnnw);模拟卷3一、程序填空题1填空题给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从今文本文件中逐个读入并显示在终端屏幕上。请在程序的下画线处填

16、入正确的内容并把下画线删除,使程序得出正确的结果。留意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:Ixncludevoidfn(charstinta,doublef)(/found*/Lllfp;charch;ffopen(fIlel.txtm,rwh);fprintf(f,%s%d%fn,3,a,f);fclose(fp);fp三fopen(filel.txtwrHr);printf(,nTheresult:VnKn*);ch三fgetc(f);/*found*/while(!feof(2)(Z*found/putchar(3);ch三fgetc(fp);)putc

17、har(,n,);fclose(fp);main()(charal-Hello!*;intb-12345;doublec-98.76;fun(arbfc);参考解析:【参考答案】(I)FILE*(2)fp(3)ch【解题思路】填空1:由语句fopen(filel.IxtA/)可知,fp应当是文件类型指针,因此本空应当填写FILE*o填空2:feof函数只能对文件类型数据进行操作,因此本空应填写fp。填空3:PUtehar()代表输入一个字符,从ch=fgetc(fp)可以看出本题应当填写ch,二、程序修改题2简答题给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指

18、字符串中的字符和b所指字符串中的字符,按排列的依次交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a所指字符串中的内容为“abedefg,b所指字符串中的内容为“1234”时,C所指数组中的内容应为“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abedefg”时,C所指数组中的内容应当为“192f3e4dcba”。请改正程序中的错误,使它能得出正确的结果。留意:部分源程序在文件MODlLC中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:*include!includevoidfun(chara,char

19、b,char*c)(inti,j;charch;i=0;j-strlen(b)-1;/*found*/while(ij)chNbi;bi-bj;bj=ch;i;j-;while(aIb)(/*found*/If(a)(c三*a;c;a+;if(*b)c=*b;c+;b+;)c-0;)main()charsl100,s2100rt200;printf(nEntersistring:);scant(,%swzsl);printf(,nEnters2string:);scanf(,%sn,s2);fun(si,s2,t);参考解析:【参考答案】【解题思路】printf(wnTheresultis:%

20、sn,由i和定义的初始值可知,此处应当推断i是否小于,所以应改为WhiIe(i(2)此处将if错写成If,这个错误比较简洁,但往往不简洁发觉。三.程序设计题3简答题请编写一个函数VOidfun(intm,intk,intxx),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。例如,若输入17,5,则应输出19、23、29、31、37。留意:部分源程序在文件PROGLC中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:includeinclude!includevoidfun(intm,intk,intxx)(voidmai

21、n()(FILEwf;intm,n,zz1000;system(wCLSn);printf(wnPleaseentertwointegers:w);scanf(w%d%dr&m,&n);fun(m,n,zz);for(m=0;mn;m)printf(w%dm,zzm);printf(wn);/*/Wf-fopen(wout.datwrww);fun(17,5,ZZ);for(m=0;m5;m+)fprintf(wf,%d”,zzm);fclose(wf);*/参考解析:【参考答案】1 voidfun(intm,intkrint)2 3 intirj,n;4 for(i=m+l,n-0;nk;i+)/找大于m的素数.循环k次,即找出紧拿m的k个素数*/5 (for(j三2;j=i)/*如果是素数,放人数组XX中*/8 xxn+三i;9 10 【解题思路】本题主要考查素数的判定方法,假如一个数不能被除了1和其自身以外的数整除,则这个数为素数。本程序运用循环语句限制须要推断的数,在循环体中推断该数是否为素数,若是则存入数组XX中。

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

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


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号