2023全国计算机二级C考试真题.docx
2023全国计算机二级C考试真题2023全国计算机二级C考试真题一、改错题函数fun的功能是:将一副扑克牌编号为1,2,3. .53,54,以某 种特定的方式洗牌,这种方式是将这副牌分成两半,然后将它们交叉, 并始终保持编号为1的牌在最上方,譬如第一次这样洗牌后的结果为: 1, 28, 2, 29,. 53, 27, 54。两次洗牌后的结果为:1, 41, 28, 15, 2, 42. 53, 40, 27, 14, 54。程序的功能是:输出经过n次这样洗牌后的结果。请在程序的下划线处填入正确的内容,并把下划线删除,使程序 得出正确的结果。留意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或 删行,也不得更改程序的结构!#includevoid fun( int a55, int n ) int i, k ;int 155;for (i=0; i for (k=l; k= 27; k+) b 2*kT = ak;b 2* k = ak+27;for (k=l; k=54; k+)ak=(3);main() int m, a55, i ;for (i=l; i55; i+) ai= i;printf (请输入洗牌次数:);scanf (%d, m);fun (a, m);for (i=l; i55; i+) printf(%d, , ai);printf ();(Db(2)2(3)bk二、改错题给定程序M0DI1. C中,函数fun的功能是:推断输入的任何一个 正整数n,是否等于某个连续正整数序列之和。若是,则输出全部可 能的序列。否则输出“不能分解”。例如:当输入 100 时,输出:100=9+10+11+12+13+14+15+16100=18+19+20+21+22请改正函数fun中指定部位的错误,使它能得出正确的结果。留意:不要改动mam函数,不得增行或删行,也不得更改程序的 结构。#includevoid fun( int n ) int j, b, c, m, flag=0;for (b=l; b=n/2; b+) n = m;c = b;while (m !=0 m=c) m = m - c; c+if ( m!=0) printf (%d=, n);for (j=b; jprintf(%d , j);flag=l;)if(flag=0)printf (不能分解);main () int n;printf (请输入一个整数:);scanf (%d, n);fun (n);参考答案(1) m= n(2) m=m-c; c+;(3)if(m=0)三、编程题请编写函数fun,其功能是:推断t所指字符串中的'字母是否 由连续递增字母序列组成(字符串长度大于等于2)o例如字符串: uvwxyz满意要求;而字符串:uwyz不满意要求。留意:部分源程序存在PR0G1.C中,请勿改动主函数main和其 他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语 句。ttinclude ttincludevoid NONO ();int fun( char *t )(int i=0;for(i=0;ti+l! = ; i+)if(ti+l!=ti+l)break;if(ti+l!=) return 0;return 1;)main () char s 26;printf(请输入一个字母组成的字符串:);gets(s);if ( fun(s) ) printf (%s是由连续字母组成的字符串.,s );else printf (%s不是由连续字母组成的字符串!,s );NONO ();void NONO ()(FILE *fp, *wf ;int i;char s 26, *p;fp = fopen (in. dat, r);wf = fopen (out. dat, w);for (i = 0 ; i 10 ; i+) fgets(s, 26, fp);p=strchr (s,);if(p) *P=0;if (fun(s) fprintf (wf, %s , s+2);else fprintf(wf, %s , strrev(s);fclose (fp)fclose(wf)文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有 需要的人。