- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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中。不得增行或 删行,也不得更改程序的结构!
#include
void fun( int a[55], int n )
{ int i, k ;
int [1] [55];
for (i=0; i
{ for (k=l; k= 27; k++)
{ b [ 2*kT ] = a[k];
b[ [2]* k ] = a[k+27];
for (k=l; k=54; k++)
a[k]= (3);
main()
{ int m, a[55], i ;
for (i=l; i55; i++) a[i]= i;
printf (请输入洗牌次数:);scanf (%d, m);
fun (a, m);
for (i=l; i55; i++) printf(%d, , a[i]);
printf ();
(Db
(2)2
(3)b[k]
二、改错题
给定程序M0DI1. C中,函数fun的功能是:推断输入的任何一个 正整数n,是否等于某个连续正整数序列之和。若是,则输出全部可 能的序列。否则输出“不能分解”。
例如:当输入 100 时,输出:100=9+10+11+12+13+14+15+16
100=18+19+20+21+22
请改正函数fun中指定部位的错误,使它能得出正确的结果。
留意:不要改动mam函数,不得增行或删行,也不得更改程序的 结构。
#include
void 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; j
printf(%d , j);
flag=l;
)
)
if(flag==0)
printf (不能分解);
main () { int n;
printf (请输入一个整数:);scanf (%d, n);
fun (n);
}
参考答案
m= n
m=m-c; c++;
(3)if(m==0)
三、编程题
请编写函数fun,其功能是:推断t所指字符串中的字母是否 由连续递增字母序列组成(字符串长度大于等于2)o例如字符串: uvwxyz满意要求;而字符串:uwyz不满意要求。
留意:部分源程序存在PR0G1.C中,请勿改动主函数main和其 他函数中的任何内容,仅在函数fun指定的部位填入所编写的若干语 句。
ttinclude ttinclude
void NONO ();
int fun( char *t )
(
int i=0;
for(i=0;t[i+l]! = ; i++)
if(t[i]+l!=t[i+l])
break;
if(t[i+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)
文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有 需要的人。
文档评论(0)