还剩11页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
1[填空题]下列给定程序中,函数fun的功能是在形参S所指字符串中找寻与参数C相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则不做任何处理例如,若s所指字符串为baacda,c中的字符为a,执行后S所指字符串为baaaacdaa”请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果留意部分源程序给出如下不得增行或删行,也不得更改程序的结构!试题程序♦includestdio.h void fun char♦3,char c■int i j,n;r4/♦♦♦♦*♦♦♦♦found*******•*/亲for i=0;s[i]!g[l];i+♦if sri]==c6/•••••••••found•••••••••/n=[2j;,,鼻while s[i1+n]!=\0910
一、程序填空题1[填空题]给定程序中,函数fun的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从今文本文件中逐个读入并显示在终端屏幕上请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果留意部分源程序给出如下不得增行或删行,也不得更改程序的结构!试题程序♦includestdio.h2void funchar*5,int a.double f345char ch;fp«fopenfprintf fpH%s%d%f\nw s,a,f;r rfclosefp;fp=fopen filel.txt,r;printf°\nThe resultch=fgetcfp;/***♦♦♦♦♦♦found*♦♦•while!feof[21/foundputchar
[3];ch=fqetcfp;putchar•\n•;fclosefp;main{char a
[10]--Hello!-;int b-12345;double c*
98.76;fun b,c;参考解析:【参考答案】lHLE*2fp3h【解题思路】填空1由语句fopen〃filel.txt〃,〃r〃可知,fp应当是文件类型指针,因此本空应当填写FILE填空2feof函数只能对文件类型数据进行操作,因此本空应填写fp填空3putchar代表输入一个字符,从ch=fgetc fp可以看出本题应当填写ch
二、程序修改题2[简答题]给定程序中函数fun的功能是首先把b所指字符串中的字符按逆序存放,然后将0所指字符串中的字符和b所指字符串中的字符,按排列的依次交叉合并到C所指数组中,过长的剩余字符接在C所指的数组的尾部例如,当a所指字符串中的内容为“abcdefg,b所指字符串中的内容为“1234”时,C所指数组中的内容应为“a4b3c2dlefg;而当a所指字符串中的内容为“1234”,b所指字符串的内容为“abcdefg”时,C所指数组中的内容应当为“192f3e4dcba”请改正程序中的错误,使它能得出正确的结果留意部分源程序在文件M0DH.C中,不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:・includestdio h♦includestring.h,void funchar*a char*b,char cr;int ij charch;ri=0;j■strlen b-1;/***♦*♦♦**found♦*♦♦♦♦*♦*/whileij{ch=b[i];b[i]-b[j];b[j]=ch;;;i♦+j-}while♦a||♦b/*********found*********/If*a{♦c=+♦;++;}if*b{*c=*b;C++;b++;}}♦c-0;main char sl
[100]s2
[100],t
[200];/nprintf\nEnter sistring:;,,tscanf%s\sl;H Mprintf\nEnter s2string:;M nscanf%s s2;/funsi,s2,t;tr wprintf\nThe resultis:%s\n t;/lwhileij2if*a参考解析【参考答案】【解题思路】1由i和j定义的初始值可知,此处应当推断i是否小于j,所以应改为whilei2此处将if错写成If,这个错误比较简洁,但往往不简洁发觉三.程序设计题3[简答题]请编写一个函数void funint m,int k,int xx[],该函数的功能是将大于整数m且紧靠m的k个素数存入所指的数组中例如,若输入17,5,则应输出
19、
23、
29、
31、37留意部分源程序在文件PR0GLC中请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句试题程序:♦includeconic.h♦includestdio.h♦includestdlib.h void funint m,int k,int xx[]void mainFILE•wf;int m,n,zz
[1000];W nsystemCLS;H f,printf\nPlease entertwo integers:;H nscanf%d%d m,n;rn,zz;fun m.for m=0;mn;m++nprintf%d,zz[m];Mprintf\n;/**•**********•***/w M,fwf-fopenout.dat*\w;zz;fun17,5,for m=0;m5;m++,fprintfwf%dzz[m];rfclosewf;/***********事*****/参考解析【参考答案】1void fun intm,int k,int xx[],13int ij n;r r找大于的素数,循环次,4for i+1,n=0;nk;i++/*m k即找出紧第m的个素数*/:2k/*判断一;5j for j«2;jij+-♦;个数是否为素数,如果不是,跳出此循环,判;专所下一个数*/6if i%j==0break;/*如果是素数,放7if ji入数组中东/XX8xxf n++]=i;鬻}w}【解题思路】本题主要考查素数的判定方法,假如一个数不能被除了1和其自身以外的数整除,则这个数为素数本程序运用循环语句限制须要推断的数,在循环体中推断该数是否为素数,若是则存入数组XX中叫for j=i+n+l;Ji;爵SL j*1]=S1j];14|//*今•*才・■・found•*»•・・,・•/,s[j+1=111;|K main20{char si80]-Mbaacda*\c;21printf M\nThe string:%s\nR,s;printf°\nlnput acharacter:;■scanf4c;24funs c;rprintf,,\nThe resultis:%s\St nws;r参考解析【参考答案】⑴O203r【解题思路】填空L for语句循环条件是推断是否到达字符串结尾,即当前字符是否为\0填空2while语句用以确定字符串的长度,所以变量n赋初值为0填空3题目要求假如找到与参数c相同的字符,就在后面插入一个相同的字符,且找到后应当给数组元素赋值,本题目给出参数为c
二、程序修改题2[简答题]下列给定程序中函数fun的功能是:逐个比较p、q所指两个字符串对应位置上的字符,并把ASCII值大或相等的字符依次存放到c所指的数组中,形成一个新的字符串例如,若主函数中a字符串为a为DeFgH”,b字符串为〃A为d〃,则c中的字符串应为“aBcdeFgH”请改正程序中的错误,使它能得出正确的结果留意部分源程序在文件M0D1LC中,不得增行或删行,也不得更改程序的结构!#incluie*stdio.h#itHklulestring,hvoid funchar*p.,hnr*q.char,/*•*********found;ini k=I率******//♦•♦♦*♦♦♦♦♦♦♦fbuml*****while*if*p*qc[kj=#q;;;rise ck]:*p if♦p p♦+if♦q q♦+kmainI rhara
[10]=MaBCIrFgH\bJO]ABrd”,c
[80]=V\09\;fun aj.c;printf nThesiring a;puts a;printf nThe string bM;puts b;print Theresult;putsc;I参考解析【参考答案】Dint k=0;2while*p|*q【考点分析】本题考查变量初始化,需依据题意确定变量含义,然后对其进行初始化操作;while循环语句【解题思路】1变量k存放数组e的下标,因此应初始化为02while循环语句的循环条件是推断两个字符串是否到达结尾三.程序设计题3[简答题]规定输入的字符串中只包含字母和*号请编写函数fun,其功能是将字符串尾部的*号全部删除,前面和中间的*号不动例如,字符串中的内容为*****A*BC*DEF*G*******”.删除后,字符串中的内容应当是“****A*BC*DEF*G在编写函数时,不得运用C语言供应的字符串函数留意部分源程序在文件PROGLC中请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句/includeMlio.h voidfun rhar•a main;|char81]void NONO;printf wEnter astring八iTx;fun s;;printThestringafter clrlrletl\rfputs!»;;NONOvoid NONO本函数用于打开文件输人数据调用函数,输出数据关闭文件,,..-/FILE♦in,•oul;;ini i chars
[81];in=fopenin.lat-rw;out=fopcn Hout.dat.w;;for i=0;i10i+f II,;f^canfin.%s s;fun sfprintfout*;t tIfclsein;out;参考解析:【参考答案】while«a;a.♦;a-;/•指针•指向字符申的尾部/♦while•3=*♦*;/•指针a指向M后一个字母•/•・”;八在字符串最后加上结束标去符•/I【考点分析】本题考查删除字符串尾部+号;删除的主要思想是把不删除的字符保留起来【解题思路】对于一个字符串要删除其尾部的*号,只须要在最终一个不是*号的字符后面加上结束符号\0具体操作为首先找到字符串的结尾,然后从最终一个字符起先往前逐个推断是否为*号,直到找到非*号字符为止,最终在该字符后面加上结束符号\0模拟卷2
一、程序填空题1[填空题]下列给定程序中,函数fun的功能是从形参ss所指字符串数组中,删除全部串长超过k的字符串,函数返回剩余字符串的个数ss所指字符串数组中共有N个字符串,且串长小于M请在程序的下划线处填入正确的内容并将下划线删除,使程序得出正确的结果留意部分源程序在文件BLANK
1.C中不得增行或删行,也不得更改程序的结构!#inrludebldio.h#incluksiring,h#definr N5iMefine M10int funchar♦ss[M.int k;|int ij*0Jent/*******今*;【♦found*****♦****/for i=0iI];i♦+;Irn=slrlrn*i/*****•**♦*found♦•••♦♦**♦♦/if len=
[2]・・・・・/♦••••♦fxjnd*•*******/strcpyss J4J.
[3];;■■■rrtum jmain「华”;icharx[N][M]=|”Beijing”J Shanghai”Tianjin NanjitJ Wulum”int i,f;printf H\nThr originalstring\n\nM;;;fbri=O iNi++putsx[i]printf M\nK;;f=fun x.7;printf Thestring witchlength isless Ilianor equallo7:\n;;fori sO;if i++puts x[i]printf u\nH;参考解析【参考答案】⑴N2k3ss[i]【考点分析】本题考查for循环语句;if语句条件表达式;字符串拷贝函数strepy的运用【解题思路】填空1for循环语句作用是遍历字符串数组中的每一个字符串,所以循环变量i的循环条件是填空2题目要求删除串长度小于k的字符串,所以if条件语句的条件表达式是lenCk填空3通过字符串拷贝函数将串长不大于k的字符串另存,并记录个数【解题宝典】字符串拷贝函数strcpy,其格式为strepy(字符数组名1,字符数组名2)功能把字符数组2中的字符串拷贝到字符数组1中字符串结束标识\0也一同拷贝字符数名2,也可以是一个字符串常量这时相当于把一个字符串赐予一个字符数组
二、程序修改题2[简答题]给定程序MODH.C中,函数fun的功能是推断输入的任何一个正整数n,是否等于某个连续正整数序列之和若是,则输出全部可能的序列,否则输出“不能分解”例如当输入100时,输出:100=9+10+11+12+13+14+15+16100=18+19+20+21+22请改正函数fun中指定部位的错误,使它能得出正确的结果留意不要改动main函数,不得增行或删行,也不得更改程序的结构试题程序#includehvoidfunint nI intj,b,c,m,flag=O;;;・・・・・forb=I b=n/2b1|/•••♦♦♦♦♦♦♦found••••*/;工;n=m cb whilem J=0m Xc|/bund;m=m-c c++I/found*********,/ifm!=0;I printf%d=e nfbrj=b;jc-l;j-H-prinlf1%d♦M j;printf%d\n\j;t;nag=lif flag=0不能分解;pnntf-\n”I.main;int nprimf•请输入一个整数w;“anf”%F.n;fun n;l…、参考解析【参考答案】lm=n;2m=m-c;c++;3ifm==0【解题思路】1每次循环,程序须要对n执行减去连续的正整数序列来推断n是否刚好为0,即n是否是连续的正整数序列之和,所以须要运用临时变量m寄存n的值,每次循环对ni执行减运算操作,不满足接着下一轮另外,程序声明变量m时,未初始化它的值,所以此处应当修改为m=n02语法错误C语言中每个语句必需以分号结束,所以应修改为m初-c;c++;3题目推断n是否是连续的正整数序列之和,若是,则输出全部序列,程序中m依次减去连续的正整数,当田为时;表示ni即11满足条件,再输出当前序列中的每个正整数,所以此处推断条件反了,应修改为ifm=03[简答题]请编写函数fun,其功能是移动一维数组中的内容,若数组中有n个整数,要求把下标从0〜P含P,P小于等于n-1的数组元素平移到数组的最终例如,一维数组中的原始内容为
1、
2、
3、
4、
5、
6、
7、
8、
9、10;P的值为3移动后,一维数组中的内容应为
5、
6、
7、
8、
9、
10、
1、
2、
3、4留意部分源程序给出如下请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句试题程序:I^includestdio.h#define NBO]3I voidfunint*M,int p.int n1/■|6I main0int a[N]-{1,2,3,4,5,6,7,额8,9,10,11,12,13,14,15;爨int ip#n=15;r尊|printfrThe originalda-ta\nH;for i=0;in;i++printf C*\n\nEnter p:0;scanf•,%d”.p;funa pn;r rprintfn\nThe dataafter mov-inq\nw;;il参考解析:【参考答案】for i-0;in;i++printf3d”,a[printf Cf\n\nM;出voidfunint intp,int nint xj,ch;rfor x=0;x=p;x++Ch=w
[0];forj«1;j n;j++/*通过for的环语句.将p+1到n-1(含n-1)之间的GJtQt案依次向苜移动p+1个存田单元/♦win-1]•ch;/•辑0Mpi,个数娘元才逐一M的收娘w[n-1]♦/■)R)【解题思路】本题要求把下标从0〜P(含P,P小于等于nT)的数组元素平移到数组的最终,可以依据输入的P值,通过for循环语句,将P+1-nT(含n-l)之间的数组元素依次向前移动P+1个存储单元,即W[j-l]=w[j];,同时将0~P个数组元素逐一赋给数组w[n-l],也就是通过语句w[nT]=ch;来实现此操作的。
个人认证
优秀文档
获得点赞 0