2023年福建省福州市全国计算机等级考试C语言程序设计预测试题(含答案).docx

上传人:太** 文档编号:94943185 上传时间:2023-08-13 格式:DOCX 页数:38 大小:60.53KB
返回 下载 相关 举报
2023年福建省福州市全国计算机等级考试C语言程序设计预测试题(含答案).docx_第1页
第1页 / 共38页
2023年福建省福州市全国计算机等级考试C语言程序设计预测试题(含答案).docx_第2页
第2页 / 共38页
点击查看更多>>
资源描述

《2023年福建省福州市全国计算机等级考试C语言程序设计预测试题(含答案).docx》由会员分享,可在线阅读,更多相关《2023年福建省福州市全国计算机等级考试C语言程序设计预测试题(含答案).docx(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、2023年福建省福州市全国计算机等级考试 C语言程序设计预测试题(含答案)学校:班级:姓各 考号:一、2.填空题(10题)1 .当运行以下程序时,输入abed,程序的输出结果是:()。insert(char str) int i ;i=strlen(str);while(i 0) str2*i=stri;str2*i-l=*r;i-;printf(n%snn,str);main()char str40;scanfC%s,str);insert(str);2 .表示“整数x的平方大于36”时的值为“真”的C语言逻辑表达式是【】。3 .下列程序运行后的输出结果是#include main() ch

2、ar s20;scanf(%s,s);printfC%s”,s);运行程序,输入HOW ARE YOU。25.请编写函数proc (),其功能是:将str所指字符串中除了下标为奇数、 同时ASC值为偶数的字符外,其余的全部删除,串中剩余字符所形成 的一个新串放在t所指的数组中。例如,若str所指字符串中的内容为 edB2A4Dsdg,其中字符A的ASC匚码值为奇数,因此应当删除;其中 字符B的ASC二码值为偶数,但在数组中的下标为偶数,因此也应当删 除;而字符2的ASC码值为偶数,所在数组中的下标为奇数,因此不 应当删除。依此类推,最后t所指的数组中的内容应是(124。注意:部 分源程序给出如

3、下。请勿改动main ()函数和其他函数中的任何内容, 仅在函数proc ()的花括号中填入所编写的若干语句。试题程序: C induce& tnciudc 0 include Vadio. b9 include void proc(char 100 t 100tCLS- ) ipnnt(enter iring Si *)|cnf( Kt* Ir)(procir.i)tpciat( *aThe rwuli 26.学生的记录由学号和成绩组成,M名学生的数据已在主函数中放 人结构体数组stu中,请编写函数proc,它的功能是:把指定分数范围 之外的学生数据放在b所指的数组中,分数范围之外的学生人数

4、由函 数值返回。例如,输入的分数是70和79,则应当把分数低于70和高于79的学生数据输出,不包含70分和79分的学生数据。主函数中把70放在low中,把79放在heigh中。注意:部分源程序给出如下。请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。试题程序:#include#define M 16 typedef struct (char num10;int s:STREC;int proc(STREC*a, STREC*b, int 1, int h)() void main(STREC stuM= nGA005n, 55), HGA003n,

5、96,MGA002M, 80), “GA004”, 68),nGA001M, 88, GA007 74,GA008, 85), nGA006H, 89, “GA015”,90), “GA013”,53),GAO 12, 66, “GA014”, 82), ,GA0Hn, 73, “GA017”,69),MGAO18H, 64), nGA016n, 86;STREChlMJ;int i, n, low, heigh, t;printf(Enter 2 integer number low&heigh:);scanf(%d%d, &low, &heigh); if(heighlow)?(t=hei

6、gh:heigh=low;low 二 t;n=proc(stu, h, low, heigh);printffThe students data out%d%d: n, low, heigh);for(i=0; in; i+)printf(H%S%4dn, hi. num, hi. s);/输出指定分数范围内的学生记录printfCnH);27.请编写函数proc (),该函数的功能是:将str所指字符串中ASC值 为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 例如,若str所指字符串中的内容为aBcdcf9789,其中字符8的ASC口 码值为偶数字符8的ASC匚码值为偶数都

7、应当删除,其他依此 类推。最后t所指的数组中的内容应是ace979。注意:部分源程序给出 如下。请勿改动main ()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。试题程序:S include include * includeHiring. h* include void proc(char str. char t void main。(char Mr(100.tl(X)isyytcmCCLS) iprind( nPlcasc enter string St a) i scanft-%* .str);proc(Atr.t)iprintf(nThe resul

8、t is: %sn.t)28.编写函数intproc (intlim, intaaM),该函数的功能是求出小于或等于 lim的所有素数并放在aa数组中,该函数返回所求出的素数。例如, 若输入12时,则输出:2 3 5 7 11。注意:部分源程序给出如下。请 勿改动main ()函数和其他函数中的任何内容,仅在函数proc ()的花 括号中填入所编写的若干语句。试题程序: include * include 8 include # define M 100ini proc(int lim. int M void matn()ini limit.sum: int arrfMLsystcm(-CLS

9、-)i print”输入个整数 canf( %dsum= proc(limit.arr) i for( i 01 i sum t i + +) (if(i%0=0&i! = 0) 每行输出10个数 printf(*n H)print%5d .arri):29 .学生记录由学号和成绩组成,N名学生的数据已放入主函数中的结构 体数组中,请编写函数fun,其功能是:把分数最低的学生数据放入b所 指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低 的学生人数:注意:部分源程序在文件PROG1 . C中。请勿改动主函数main和其他函数中的任何内容,仅在函数flm的花括 号中填入你编写的若干

10、语句。#indudc Ikiefine N 16 typedef struct | char nun 10;int s;| STREC; int fun( STREC a, STREC b ) main()(STREC (N (-CA05 ,851 J-GA03w ,76|,|CA02” ,691,/GA04” ,的.|-GA0r,91|.|CA07.72|.| -GA08 ,641 JCA06 ,87|.pGA015n ,85|, |GA013-.91| J-GA012- .64 |,|CA014 .911, l-GAOir .91|,| GA01764| J *CA018 ,64|, |

11、CA016- ,72| | ;STREC hN(int in;FILE oul ;n afun( t,h );printf( The %d lowest score jXn1 ,n);for(i =0;i n; i )printfC% %4dn* ,hi. nunj,hi. s);printf(n-hout = fbpen(out. dal ,w);fpnntf(out, %dn,n)jfor(i =0;i n; i + )fprintf(out, *%4dn,hi.);fcke(out);I30 .N名学生的成绩已在主函数中放人一个带头节点的链表结构中,h指 向链表的头节点。请编写函数fun

12、,其功能是:求出平均分,并由函数值返回。例如,若学生的成绩是:85 76 69 85 91 72 64 87,则平均分应当是:78 . 625o注意:部分源程序在文件PROG1 . C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。include #include #ddineN8mid lislI double ;tract dit next;I ;typedef struct slut STREC;double fun( STREC h )STREC cret( double )| STREC h. p, q; int i =0;h p (S

13、TREC )nudloc( ixeof( STREC) ) ;p - =0;while(i =si ; i ; p -next =q; p = q;Ip - next = 0;return h;Ioutlist( STREC h)| STREC p;p s h - next; printf( head ) jdo| printf( -%4. IP ,p -s) ;p = p -next; |while(p! =0);printf( nn ):Itnain()I double N = 185,76,69,85.91,72.64,871 ,ave;void NONO();STREC h(h = c

14、real( s ) ; outlist( h);ave * fun( h );printf( ave = %6.3fn .ave);NONO();Ivoid NONO()1/本函数用于打开文件,人数据,调用函数,/出数据,关闭文件。)FILE in, out ;ini i.j ; double s N tave;STREC ;in = fopen(-in.daf,*r);out s fopen(out. dMfor(i = 0 ; i IO;*)Ifor(j 0 j j N; j + + )fscanf(in,j);h = creat( s );ave fun( h );fjxintf(out

15、, %6.31An, ve);Icloe( in);fcloae(out);四、2.程序修改题(10题)31 .下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3 列的矩阵的各个元素的值,然后输出主对角线元素之和。请改正函数ftin()中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序:/include int fun()int a3 3,sum;int i,j;/* */sum= 1;for (i=0;i 3;i+) for 0=O;j 3;j+)i * (、1/*7*T*T*T*T*T*T*T*T*T*T*T*T -r

16、zxi i z-i 个个个个个个个个个个个个个个/ scanf(n%dH,aij);)for(i=0;i 3;i+)sum=sum+aii;printf(uSum=%dnM,sum);main()(fun();)32 .下列给定程序中,函数ftm()的功能是:在字符串str中找出ASCII 码值最小的字符,将其放在第一个位置上,并将该字符前的原字符向后 顺序移动。例如,调用fun()函数之前给字符串输入自gAgBDh,调用后 宁符串中的内容为AfaggBDho请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include /

17、j/个个个个个个个个个个*r*个个cinrc个个个个个个个个个个个个,void ftin(char p) char min, *q ;int i=0 ;min=pi;while(pi!=0)i* *,/个个个个个个个个个个个个个Tc i n fi个个个个个个个个个个个个个/p=q+i ;min=pi;i+ ;while(q p) *q=*(q-l);q- / p0=min ;) main() char str80;printf(nEnter a string :);gets(str);printfi(unThe original string :);puts(str);fun(str);pri

18、ntR”nThe string after moving :”);puts(str);printRWn”); )33 .下列给定程序中,函数fun()的功能是:首先把b所指字符串中的字 符按逆序存放,然后将a所指字符串中的字符和b所指字符串中的字 符,按排列的顺序交叉合并到c所指数组中,过长的剩余字符接在c所 指数组的尾部。例如,当a所指字符串中的内容为abcdefg, b所指字符 串中的内容为1234时,c所指数组中的内容应该为a4b3c2dlefg;而当a 所指字符串中的内容为1234, b所指字符串中的内容为abcdefg时,c所 指数组中的内容应改为1g2f3e4dcba。请改正程序中

19、的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序#include #include #include void fiin(char *a, char *b, char *c)4 .软件工程研究的内容主要包括:【】技术和软件工程管理。5 .以下程序运行后的输出结果是【】。main()int X=10,y=20,t=0;if(X=y)t=x;x=y;y=t;printff%d,%d nu,x,y);)6 .在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应 当调用的函数是】函数。7 .下面的程序可对指定字符串中的字符串进行从大到小

20、排序,请将程序 完整。(注:程序采用了冒泡排序算法)#include #include main() char*str=nABCDabcdH, temp ;int n,i ;n=strlen(str);while(n- 1)for(i=0 ; i n;i+)if(stri j)ch=bill; bi=bj; bj=ch;)while (*a | | *b)if (*a)*c=*a; c+; a+; if(*b)*c=*b; c+; b+;/* */*c=0;main () char sll 00,s2l 00,t200;clrscr();printfnEnter si string:);sca

21、nf (n%sn, si);printfl(nnEnter s2 string:);scanf (n%s, s2);fun(sl,s2,t);printf(unThe result is :%sn,t);34 .下列给定程序中,函数ftin()的功能是:将m(lSmWO)个字符串反着 连接起来,组成一个新串,放入pt所指字符串中,例如:把3个串DEG, ac, df反着串联起来,结果是dfacDEG。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main。函数,不得增行或者删行,也不得改变程序的结 构! 试题程序:#include #include #include void fun

22、(char str10, int m, char *pt) intk, q, i, j=0 ;/I/*7*T*T*T*T*T*T*T*T*T*T*?*T* tza 1 1Zi 个个个个个个个个个个个个个 /for(k=m ;k 0 ;k) (q=strlen(strk);j+=q ;for(i=0 ; i q ; i+)pti=strki;pt+=q ;ptO=O ;/* * i)und * pt=j;) main()int m, h ;char s1010, p120;clrscr();printf(nnPlease enter m :n);scanf(u%dH, & m);gets(sO)

23、;for(h=0 ; h m ; h+) gets(sh);printf(17nThe result iS : %snu, p); 35 .下列给定程序中,函数ftm()的功能是:计算s所指字符串中含有t所指字符串的数目,并作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include #include #include #define N 80 int fun(char *s, char *t) int n ;char*p, n=0 ;vvhile(*s) P=s ;/ (/个个个个个个个个个个个个个个

24、n zj个个个个个个个个个个个个个个个(P /while(*r)if*r=*p) r+ ; p+ ; else break ;if(*r=O)n+ ;s+ ;)return n ;)main()char aN, bN ; int m ;clrscr();printfifnPlease enter string a : H);gets(a);printf(nnPlease enter substring b :);gcts(b);m=funa,b);printf(unThe result is :m=%dn”, m);36 .下列给定程序中,函数fun()的功能是 读入一个字符串(长度20),

25、将该字符串中的所有字符按ASCH码降序排序后输出。例如:输入dafhc,则应输出hfdcao请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,敢不得更改程序的结构。试题程序:#include #include /1f/个个个个个个个个个个*r*个个cinrc个个个个个个个个个个个个个个jint fun(char t) chare ;inti, j ;fbr(i=O ; i strlen(t)-l ; i+) fdr(j=i+l ; i strlen(t) ; j+) if(ti tU)c=tj;/* vind * xti=ti+;ti=c ; main() (

26、char s81;clrscr();printR”nPlease enter a character string :);gets(s);printf(nnBefore sorting : n%S, s);fun(s);printfi(nnAftcr sorting deccndingly : n%sn, s);37 .下列给定程序中,函数fUn()的功能是:判断一个整数m是否是素 数,若是返回L否则返回0。在main()函数中,若ftin()返回1则输出 YES,若fim()返回0则输出NO!请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序

27、的结构. 试题程序:#includc #include int fiin(int m) int k=2;while (k =m& &(m%k)/*1*1f/*7*T*T*r*T*T*T*T*T*T*T*?*T* Tei 1 n fl个个个个个个个个个个个个个个个个个个个个个/k+/* *n d */ if(m=k)return 1;else return O;)main () iht n;clrscr ();printfifnPlease enter n: ”);scanf (H%d, &n);if (fun (n) printf(nYESnH); else printf (NO! nH);3

28、8 .下列给定程序中,函数fon()的功能是:计算并输出下列级数的的N项之和SN,直到SN+1大于q为止,q的值通过形参传入。SN=2/l+3/2+4/3+(N+l )/N例如,若q的值为50.0,则函数值为49.394948。请改正程序中的错误,使它能得出正确的结果。注意;不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include #include /* * * / double ftin(double q) int n; double s,t;n=2;s=2.0;while (s =q) t=s/ /*p*i*z*i*i*i*i*i*p*i*i*t/ 1 n/个

29、个个个不个个个个个不个个/s=s+ (n+l)/n;n+;)printf (n=%dn ,n);/*n d */ return s;)main () clrscr();printf (n%fn ”,fim (50);39 .下列给定程序中,函数fun ()的功能是:求整数x的y次方的低3位值。例如,整数5的6次方为15625,此值的低3位值为6250请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include long fiin(int x, int y, long *p)血i;long t=l;(/*7*T*T*T*T

30、*T*T*T*T*T*T*?*T*T* t z-x i i n (j *7*?*4*T*T*7*7*T*T*T*T*7*7*?*T*/for (i=l; i y; i+)t=t*x;*P=t;/* * nd * 亭*,,t=t/1000;return t;main () long t, r; int x, y;printf(nnlnput x and y: ”); scanf(n%ld%ldH, &x, &y);t=fun (x,y, &r);printR”nnx=%d, y=%d,r=%ld, last=% 1 dnn ,x, y, r,t);40 .下列给定程序中,函数fun()的功能是:

31、从字符串s中,删除所有小写字母已请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:# include void fun(char *s) int i,j;fbr(i=j=O; si != *0;i+) if(sill != c) s Lj =s i;si 尸(T;main () char s80;printf (nnEnter a string: );gets (s);printffThe original string: )puts (s);fun (s);printf(nThe string after deleted:

32、”);puts (s); printf (Hnn ):五、程序改错题(2题)41.下列给定程序中,函数fUn的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若nmnl和num2分别为49和21,则输出的最大公约数为7 ;若numl和num2分别为27和81,则输也的最大公约数为27。请改正程序中的错误,使它能得出正确结果。注意:不要改动main函数,不得增行或硼行,也不得更改程序的结构!试题程序:#tnciude ii)t fuD(nt apnt b) int 3 if(ab)/* 率+-* 飞 1md* *拿* 率*/ r=a%b;whiIe(r!O) a=b;b=r;r=a

33、%b;/* *,* 拿*gd* *尊*充*/ return(a);void main() int num 1,printf(u Input numl num2:w);scan(H%d%d,&num !,&num2);printf(*numl=%d num2=%dnn*numl,num2);a3un(numl ,nutn2);jxintFie maxfnjun cammtxi divisor is%dnQ*a);42.下列给定程序中,fun()函数的功能是:从整数150中,选出能被3整除且有一位上的数是5的数,并把这些数放b所指的数组中,这些 数的个数作为函数值返回。规定,函数中al放个位数,a

34、2放十位 数。请修改函数中的错误,得出正确的结果。stri=stri+l;=temp;pnntf();8 .软件定义时期主要包括 和需求分析两个阶段。9 .以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则 输出531。请填空。#include main() int n,s;printf(Enter a number : ); scanf(d,&n);printf(nOutput: *);do s=n%10;printfC%d”,s);【;while(n!=0);printffn);10 .函数pi的功能是根据以下近似公式求兀值: (jt*7c)/6=1+1 /(2 *2)+1

35、/(3 *3)+.1 (n*n)现在请你在下面的函数中填空,完成求兀的功能。#include nmath.h double s=0.0 ; long i ;fbr(i=l ; i / found int funmt b)imt/ iouml (x“,+)(2-j/IO a2 10iKjMS* (&】 ,力)(bU,j/ found rrlarn jtvoid main()ini *50ini n*fun(a)ipnnfft the rr*uii 4|n)i fori,OiYn.i+ + print % 4d” i priatl(anai六、操作题(2题)43 .使用VC+2010打开考生文件夹

36、下progl中的解决方案。此解决方 案的项目中包含一个源程序文件progl.c。在此程序中,编写函数funO,其功能是求斐波那契数列中大于t的最小的数,结果由函数返0O斐波那契数列F(n)的定义为F(0)=0,F(l)=lF(n)=F(n-l) +F(n-2)例如,当t=1000时,函数值为1597。注意:部分源程序给出如下。请勿改动主函数main()和其他函数中的任何内容,仅在函数fun()的花 括号中填入你编写的若干语句。试题程序:#include #include #include int fun (int t) ( main () ( int n; n=1000 ;printf (6n

37、=%d, f=%dn,n,fun(n); )44 .使用VC+打开考生文件夹下modil中的解决方案。此解决方案的项 目中包含一个源程序文件modil.c。在此程序中,函数fun()的功能是求 出s所指字符串中最后一次出现的t所指字符串的地址,并将此地址通 过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则 函数值为NULL0例如,当字符串中的内容为“abcdabfabcdx”,t中内容为“ab”时,输出 结果应是“abcdx”。当字符串中的内容为“abcdabfabcdx”,t中内容为“abd”时,则程序输出 未找到信息“Notfbund!”。请改正程序中的错误,使它能得出正确的

38、 结果。注意:不要改动main()函数,不得增行或删行,也不得更改程序的结 构!试题程序:#include #include #include #include char * fun (char *s, char *t)char * p, * r, * a;I*14f/不不不不不不不不不ten nd不平不不不不不不小/a=Null;while(*s)P=s; r=t;while ( * r)/*!* *1* *1* *1* !* !* !* *1* *1* 1/不小小小小小小小小tciind 不不小不小不小不小/if (r=p) r+; p+; else break;if(*r=0) a=s;

39、s+; return a;)void main ()char sl100J,t100J, *p;system(“CLS”);printf (unPlease enter string s:); scanRs”,s);printfifnPlease enter substring t:); scanf Ct%s,t);p二fun (s, t);if(p)printf (tnThe result is: %sn, p);elseprintf CAnNot found!n,);参考答案l.a*b*c*d*a*b*c*d*解析:字符处理函数strlen()测试字符串常量的长度, 不包括0在内。因此,函

40、数insert。实现了将字符数组中每个非(T的 字符后插入字符*的功能。故输出结果是a*b*c*d*。2 .x 63 .HOWHOW解析:在scanf()函数中,使用空格作为分隔符,如果输入 含有空格的字符中,则不能使用scanf()数,所以本题中输入空格就返回 了0, s数组也就确定了,后面的输入就不再读入数组s中。4 .软件开发5.20020,0解析:在主函数中首先定义了 3个整型变量x、y、t,并分别 给它们赋初值为10、20、0,接着执行汀语句,在if后面括号内的条件 表达式中,条件x=y即10=20不成立,则不执行其后的语句t=x,然 后退出if语句,顺序执行语句x=y ;y=t ;o执行完这两条语句后x的值 变为20, y的值变为0,所以最后输出x、y的值为20和0。6.rewind()或

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁