欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

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

    • 资源ID:1255563       资源大小:97.11KB        全文页数:14页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    模拟卷11填空题下列给定程序中,函数fun的功能是:在形参S所指字符串中找寻及参数C相同的字符,并在其后插入一个及之相同的字符,若找不到相同的字符则不做任何处理。例如,若S所指字符串为"baacda",C中的字符为a,执行后S所指字符串为"baaaacdaa”。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。留意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:*include<stdio.h>voidfun(char*s,charc)inti,j,n;/found*/for(i三0;si!»1;i+)if(s(i=c)(found/n三2j;while(si*1÷n!三,0,)n*÷141518参考解析:【参考答案】for(j-i+n÷1;j>i;j>sj+1=sj);*found/sj÷l=3j;i-i+1;)ImainO(charswbaacdaw,c;printf(,nTestring:%sn"rs);printf(,nlnputacharacter:r);scanf("%c"f4c);fun(src);printf(,nTheresultis:%s(1),0,(2)0(3)C【解题思路】填空1:for语句循环条件是推断是否到达字符串结尾,即当前字符是否为0'。填空2:WhiIe语句用以确定字符串的长度,所以变量n赋初值为0。填空3:题目要求假如找到及参数C相同的字符,就在后面插入一个相同的字符,且找到后应当给数组元素赋值,本题目给出参数为c。二、程序修改题2简答题下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCll值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为"aBCDeFgH",b字符串为"Abcd”,则c中的字符串应为“aBcdeFgH”。请改正程序中的错误,使它能得出正确的结果。留意:部分源程序在文件MODlLC中,不得增行或删行,也不得更改程序的结构!fincludr<Mdio.h>#in(*lu<le<string.h>voi<Ifun(clarp.<har*q,charc)I/*found*»»»/inik=1;/*fbun<l*/while(pJ三q)Iif(*p<*q)ck=*q:riseck=p;iK*P)P+;if(q)q+÷main()I<hara!0="aBCDdH”,b10=mABcd"fc80=,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的下标,因此应初始化为0。(2)While循环语句的循环条件是推断两个字符串是否到达结尾。三.程序设计题规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:将字符串尾部的*号全部删除,前面和中间的*号不动。例如,字符串中的内容为:*A*BC*DEF*G*”.删除后,字符串中的内容应当是:''*A*BC*DEF*G"。在编写函数时,不得运用C语言供应的字符串函数。留意:部分源程序在文件PROGLC中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。main()Icharj»81;VoidN0N0();pnnlf("Enterafitring:n")W);un();prinlf("TheMringaftercirlrled:n");puU(»);NONO();IvoidNONO()本函数用于打开文件,输人数据,调用函数,输出数据.关闭文件-/HLE*in.out;intiIchar8);infopen("in.dat","r");out三fopen("out.<iato.,'w,*);for(i三0;i<10;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后一个字母/(1)”;/在字符率最后加上结束物志符/【考点分析】本题考查:删除字符串尾部+号:删除的主要思想是把不删除的字符保留起来。【解题思路】对于一个字符串要删除其尾部的*号,只须要在最终一个不是*号的字符后面加上结束符号0'O详细操作为:首先找到字符串的结尾,然后从最终一个字符起先往前逐个推断是否为*号,直到找到非*号字符为止,最终在该字符后面加上结束符号'O'。模拟卷2一、程序填空题1填空题下列给定程序中,函数fun的功能是:从形参SS所指字符串数组中,删除全部串长超过k的字符串,函数返回剩余字符串的个数。SS所指字符串数组中共有N个字符串,且串长小于M请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。留意:部分源程序在文件BLANKLC中。不得增行或删行,也不得更改程序的结构!#include<»ldio.h>Winclu<k<siring.Ii>IhlefinrN5WtlefineMIOinifun(char(s)M.inik)Iirti,j0Jen;/*found*/fbr(i=0;i<1;i÷+)Irn=trlrn(i.);/*found»*/if(Ien<=2】)/(bundslrcpy(sJ+J.3);rrtumj;Inain()IcharxNfM三,Beijing"."Shanghai"Tianjin"JNanjing"."Wuhan";intitf;prinl("nTh<*originalstring1111");fbr(i三Oi<N;i)pula(xi);PriMWf=fun(x.7);rinlf(wT1esiringwitchlengthinIeusthanorrquull<>7:n");for(i=0;i<f;i+)puts(xiJ);printf(,n");参考解析:【参考答案】(I)N(2)k(3)ssi【考点分析】本题考查:for循环语句;if语句条件表达式;字符串拷贝函数StrePy的运用。【解题思路】填空1:for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是填空2:题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是len<=k°填空3:通过字符串拷贝函数将串长不大于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中指定部位的错误,使它能得出正确的结果。留意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<sldio.h>voidfun(intn)Iintj,b,c,m,flag=0;for(b=1;b<=n/2;b÷÷)/*found/n m;while(m!=0&&m>三c)(bund*/m=m-cjc÷+I/««found*/if(m!三0)Iprintf(h%d=m,n);for(j=b;j<c-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=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,其功能是:移动一维数组中的内容,若数组中有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<stdio.h>!defineN80voidfn(intw,intp,intn)()mainOintaN1,2,3,4,5,6,7,8,9,10,11/12,13,14,15);Inti,p,n-15;printf(*Theoriginaldata八n");for(i=0;i<n;i+÷>printf("l3d*,ai);printf("n11Enterp:");scanf(,%4p);fun(a,p,n);printf("nThedataaftermoving:");for(i-0;i<n;i+)printf<"%3d"rai>参考解析:【参考答案】【解题思路】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 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的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从今文本文件中逐个读入并显示在终端屏幕上。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。留意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:Ixnclude<stdio.h>voidfn(charstinta,doublef)(/found*/Lllfp;charch;f«fopen("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);)putchar(,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所指字符串中的字符和b所指字符串中的字符,按排列的依次交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a所指字符串中的内容为“abedefg",b所指字符串中的内容为“1234”时,C所指数组中的内容应为“a4b3c2dlefg”;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abedefg”时,C所指数组中的内容应当为“192f3e4dcba”。请改正程序中的错误,使它能得出正确的结果。留意:部分源程序在文件MODlLC中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:*include<stdio.h>!include<string.h>voidfun(chara,charb,char*c)(inti,j;charch;i=0;j-strlen(b)-1;/*found*/while(i>j)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:%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的花括号中填入你编写的若干语句。试题程序:include<conio.h>include<stdio.h>!include<stdlib.h>voidfun(intm,intk,intxx)(voidmain()(FILEwf;intm,n,zz1000;system(wCLSn);printf(wnPleaseentertwointegers:w);scanf(w%d%d"r&m,&n);fun(m,n,zz);for(m=0;m<n;m÷÷)printf(w%dm,zzm);printf(wn");/*/Wf-fopen(wout.datwrww");fun(17,5,ZZ);for(m=0;m<5;m+)fprintf(wf,%d”,zzm);fclose(wf);*/参考解析:【参考答案】1 voidfun(intm,intkrint××)2 3 intirj,n;4 for(i=»m+l,n-0;n<k;i+)/找大于m的素数.循环k次,即找出紧拿m的k个素数*/5 (for(j三2;j<i;j+÷)/*判断一个款是否为沫数,如果不是,跳出此循环.判断下一个数*/6 if(i%j=0)break;7 if(j>=i)/*如果是素数,放人数组XX中*/8 xxn+三i;9 10 【解题思路】本题主要考查素数的判定方法,假如一个数不能被除了1和其自身以外的数整除,则这个数为素数。本程序运用循环语句限制须要推断的数,在循环体中推断该数是否为素数,若是则存入数组XX中。

    注意事项

    本文(2024计算机二级C语言考试真题汇总.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开