2018年度计算机二级C语言专业考试真题汇总_第1页
2018年度计算机二级C语言专业考试真题汇总_第2页
2018年度计算机二级C语言专业考试真题汇总_第3页
2018年度计算机二级C语言专业考试真题汇总_第4页
2018年度计算机二级C语言专业考试真题汇总_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

2、 * .whi Le fs i + 1 4力 j !2131415161752 国用北21芍认2336士har sflO 1 - "-bflacd", c;print1|"The airing:同;匚工二七工 rkilnput a cttaracter:");S£anf(h % tHj 占O ;fun(巧c );peintf f'VnThe r4ult is:参考解析:【参考答案】W (2) 0r【解题思路】填空1: for语句循环条件是判断是否到达字符串结尾,即当前字符是否为0'。填空2: while语句用以确定字符串的长度,

3、所以变量n赋初彳t为0。填空3:题目要求如果找到与参数 c相同的字符,就在后面插入一个相同的字符,且找到后应该 给数组元素赋值,本题目给出参数为 Co二、程序修改题2 简答题下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符, 并把ASCII 值大或相等的字符依次存放到 c所指的数组中,形成一个新的字符串。例如,若主函数中a字符串为、BCDeFgH,b字符串为"Abcd",则c中的字符串应为“aBcdeFgH。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件 MOD11.C中,不得增行或删行,也不得更改程序的结构AiTiC-luf

4、Jr < 用4“1 h > c trinp. h >vofii I fun( tluir p /小时 *q, rhtlT r)/=>* * hni tkd */ im = Iq/* * + *«GmjfkI * * * * * 4 /wkile( * p J » « q )津 p V * q p It = * qirise r | k | - * p;if( * p) P + + : iR * q) q + + :mAin( JI= *题DeFgH, b10 ="ABc(r t c80=;MXfun( , b,c);primfl

5、"Hik siring : * ) * put«( a) iprintfi "The应in* b: M ) ; puls( b);piint( "Tbu mull ; * ) ; pi4ts(cr)*参考解析:【参考答案】(1)int k=0;(2)while(*p|*q)【考点分析】本题考查:变量初始化,需根据题意确定变量含义,然后对其进行初始化操作;while循环语句【解题思路】(1)变量k存放数组e的下标,因此应初始化为 0。(2)while循环语句的循环条件是判断两个字符串是否到达结尾。三.程序设计题3 简答题规定输入的字符串中只包含字母和 *号

6、。请编写函数fun ,其功能是:将字符串尾部的*号全部删 除,前面和中间的*号不动。例如,字符串中的内容为:* *a*bc*deF*G* ” .删除后,字符串中的内容应当是:*A*BC*DEF*G"。在编写函数时,不得使用 C语言提供的字符串函数。注意:部分源程序在文件 PROG1.呼。请勿改动主函数 main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。Hitw211Mle < 4t(Ll0r II >如ti( t-hiir * a riwin():char ,BlJguHrmWW );pnnd( ' Entfr j suing: ItT

7、pH :fun( juintft" Thr firing liicr drlrwdrr" ) ;puu(t);NONOt):P-本南数用于打开这件墉人t!(据“调用喇散,嫡出放据“关闭文件 ” ELE in , out ;nt i ; rhtr .:in 丽出"Fn. d&t- Jr");oul = (npcii( " etui, chit" J n "):or( i = 0 : i < 10 j i + +-)I.in b,hn(«) ifpriatf(oult 帘 *"*.*):I in

8、) + ErhwH uul i参考解析:【参考答案】wtd Lh nhw * )* * r * *vri* -t/指a *指向半耕中的尼郁/vhil( t a ± ' * ')工一;,播豺*指向餐后一个字母,*Frr/,在字初申融filJD上秸剃用芯济“1|【考点分析】本题考查:删除字符串尾部+号;删除的主要思想是把不删除的字符保留起来。【解题思路】对于一个字符串要删除其尾部的*号,只需要在最后一个不是*号的字符后面加上结束符号'0 '。 具体操作为:首先找到字符串的结尾,然后从最后一个字符开始往前逐个判断是否为*号,直到找到非*号字符为止,最后在该字

9、符后面加上结束符号'0 '。模拟卷2一、程序填空题1 填空题下列给定程序中,函数fun的功能是:从形参ss所指字符串数组中,删除所有串长超过k的字符串,函数返回剩余字符串的个数。ss所指字符串数组中共有 N个字符串,且串长小于 ML请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。注意:部分源程序在文件 BLANK1.8。不得增行或删行,也不得更改程序的结构!tinclude < btdiv. h >#inrlutk < string, h >M 5 M 10 ml fmi(1chiit *»;()_ M , i iut k

10、j int i J =口1 无阻;/* *knt(+ + )len = ilrlr n(咯: ); /* found *,¥ ¥* */iffleu <-之)八 * Gwnd */”rrp> w J + : ,31 )1;nJum j ;irmih() dtaf='、"Beijing* ,"Shanghui" /Tiimjin" J Mnjiw" J NuharT :in i £|MriniT(" nTht cngiiul 而ng'ntn"):fot( i s 0;i

11、 < IVJ + + )puth( k i');(-fnn( u d 7 1 jpdnlf( * Hmtrii塔 witch len/ili it 】ihan ur lunL io ? :n" I ;(i?r( i = 0 ; i < 口 i 十十)puiH(x. j );ph miff * 1口" :参考解析:【参考答案】(1)Nk(3)ssi【考点分析】本题考查:for循环i句;if语句条件表达式;字符串拷贝函数strepy的使用。【解题思路】填空l : for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量 i的循环条件是 i填空2:题目

12、要求删除串长度小于 k的字符串,所以if条件语句的条件表达式是len<=k o填空3:通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数。【解题宝典】字符串拷贝函数strcpy ,其格式为:strepy(字符数组名1,字符数组名2)功能:把字符数组2中的字符串拷贝到字符数组l中。字符串结束标识0'也一同拷贝。字符 数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。二、程序修改题2 简答题给定程序MODI1.C中,函数fun的功能是:判断输入的任何一个正整数n,是否等于某个连续正整数序列之和。若是,则输出所有可能的序列,否则输出“不能分解”。例如:当输入

13、 100 时,输出:100=9+10+11+12+13+14+15+16100=18+19+20+21+22请改正函数fun中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:4include < hidiu. h >Vuitl fun( int ti )I ini j, bifP, % 工Q: fcr t* = I i b < = n/2 j b + ) f /""»* * (nurd v * *n = m ; e s h; whdv (mJ 旦。&& m a )

14、| /* found哺*隼聿 宣章垂*拿/m - m - a:心十 十I /*« found */if ( mJ h。)pnmff%dn j); 1;iRilag =0)m3不能介鳏十:mair>()I im n;irinlf请悔人一个整敷兀附inf( 能dj An): fiinf 月):参考解析:【参考答案】(1)m=n;(2)m=m-c;c+;(3)if(m=0)【解题思路】(1)每次循环,程序需要对n执行减去连续的正整数序列来判断n是否刚好为0,即n是否是连续的正整数序列之和,所以需要使用临时变量m寄存n的值,每次循环对m执行减运算操作,不满足继续下一轮。另外,程序声明变

15、量m时,未初始化它的值,所以此处应该修改为:m=n(2)语法错误。C语言中每个语句必须以分号结束,所以应修改为:m=m-c;c+;。(3)题目判断n是否是连续的正整数序列之和,若是,则输出所有序列,程序中 m依次减去连续 的正整数,当m为0时,表示m(即11)满足条件,再输出当前序列中的每个正整数,所以此处判断条 件反了,应修改为:if(m=0)。3简答题请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从 0P(含P, P小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,一维

16、数组中的内容应为:5、6、7、8、9、10、1、2、3、4。注意:部分源程序给出如下。请勿改动主函数 main和其他函数中的内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序:J< sttlioih >1 M&f N (IDvoLd fUri i Lnt * wf int p * int n )* (S >6 FiL4j_h ()f iftt aN * f 4, 5,"兀匕mt i,p, n =15;p<cinLi ( "7tc: 口工:司1日:仁田- n">S far (i =0; i <n; i + 1H

17、ptintf I',! 3d".aiJ)j12pcirif (d'innEnterp;);J3scanE("% d"F 4pi;HfunSa,p'n);snntt <MnTh .二息"mirmv- : ,ing An" ?. for(i - 0 j i < n; 1 + h- >Pprlntf 3dHfai');printf PnVn");而参考解析:【参考答案】I void fiin tin匕 * wt int p. int n)2 ( iTLl XJ j , ch;3 .£

18、;er(x *0;x<i:p;K+4 )I ch - w*0 ;5tor(j "IJj + +J / + t5.itf;止出耳语句用©*L列ri -II.n 一1支何种忙彻t流怵在向好1提p +1展存蚌辿九* 7富予wf j -1 1-* J J泰):9wn ' i * ch; / * Q H p; 冷Hftlt4连的乩值wfn -1) * /廨 I【解题思路】本题要求把下标从0P(含P, P小于等于n-1)的数组元素平移到数组的最后,可以根据输入的 P值,通过for循环语句,将P+1-n-1(含n-1)之间的数组元素依次向前移动P+1个存储单元,即Wj-1=

19、wj;,同时将0P个数组元素逐一赋给数组 wn-1,也就是通过语句 wn-1=ch;来实现此 操作的。模拟卷3、程序填空题i 填空题给定程序中,函数fun的功能是:将形参给定的字符串、整数、浮点数写到文本文件中,再用字 符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序给出如下。不得增行或删行,也不得更改程序的结构!试题程序:X2 void fun (char *5/ int a, doutiie f)3 1/ * found * /,±lfp:ftchar ch;7fp - fop#nCfllel.

20、txcJIprlntfsf %却;9 felose(tp);10 fp fopfen ("file!, .txt", nxn);IIprintf r,nrh£ reiLltHS - fgecc(fp);/ *,* found * /Hwhile (工苜门【芸】)1(15八* * found * f0LL巳匚一工 Mall ; eh = iqet-t (Ep);put仁har'tn 7 ?fciose (f p 1 jW tM jn4in Q21( char alO;22int b-I23fl5t25double c占futi E G:参考解析:(DELE*

21、 S隔【解题思路】填空1:由语句fopen("filel.txt" , "r")可知,fp应该是文件类型指针,因此本空应该填写 FILE*O填空2: feof函数只能对文件类型数据进行操作,因此本空应填写fp o填空3: putchar()代表输入一个字符,从ch=fgetc(fp)可以看出本题应该填写ch。二、程序修改题2 简答题给定程序中函数fun的功能是:首先把b所指字符串中的字符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字符,按排列的顺序交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部。例如,当a所指字符串中的内容为“a

22、bcdefg",b所指字符串中的内容为“1234” 时,C所指数组中的内容应为“ a4b3c2dlefg " ;而当a所指字符串中的内容为“ 1234”,b所指字符 串的内容为"abcdefg "时,C所指数组中的内容应该为"192f3e4dcba "。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件 MODI1.C中,不要改动main函数,不得增行或删行,也不得更改程序 的结构!试题程序:参考解析:【参考答案】<include < stdio *h >include <string*h >

23、;void fun ( char * a, chr * b, char * C )(int i , j; char ch;1 = 0; j - strlen (b) -1;/* * * + found */while ( 1 > j )1 ch = b i; b i - b j?b j - ch;i + ; j -;)while ( * a IJ * b > 1J * £ound */If ( a I( * c = *自;u*:a + + j if ( * b J * a - *b=ob+ + j I1* c - 0;nain (>(chars2100,t200 ;

24、printf (nnEnter si string :"); scaxif ”/ si);ptintfstring ;scant (,r%&n,s2);fun ( si s2 > t 1;printf (bnThe 工is ,mt );(1 ) whik ( i < j ) (2)if C-)【解题思路】(1)由i和j定义的初始值可知,此处应该判断i是否小于j ,所以应改为while(i(2)此处将if错写成If ,这个错误比较简单,但往往不容易发现。三.程序设计题3 简答题请编写一个函数void fun(int m , int k , int xx口),该函数的功能是:将大于整数 m且紧靠m 的k个素数存入所指的数组中。例如,若输入17, 5,则应输出19、23、29、3

温馨提示

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

评论

0/150

提交评论