2009年春二级C语言上机试卷(4套).docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2009年春二级C语言上机试卷(4套)

2009年春C语言上机试卷 第04套 改错题(20分) 【程序功能】 函数 HolandFlag的功能是:已知在flag指向的有n个元素的字符数组中,每个元素的值是字符‘R’、‘W’或‘B’中的一个。函数按照‘R’、‘W’、‘B’的顺序重新排列flag数组中所有元素的值。 算法提示: 若flag数组初始值为RBWBRWRBW 则在flag数组中出现数据交换的步骤与效果为: 第1步:flag[1]与flag[8]交换后数据为RWWBRWRBB 第2步:flag[3]与flag[6]交换后数据为RWWRRWBBB 第3步:flag[1]与flag[4]交换后数据为RRWRWWBBB 第4步:flag[2]与flag[3]交换后数据为RRRWWWBBB 【测试数据与运行结果】 测试数据:RBWBRWRBW 运行结果:RRRWWWBBB 【含有错误的源程序】 #includestdio.h #includestring.h #define 10 N void HolandFlag(char flag[], int num) { int i,j,k,m; char c,color[3]={B,W,R}; m=num; for(k=0;k2;k++) for(i=0;im;i++) if(flag[i]==color[k]) { for(j=m-1;j1;j--) if(flag[j]==color[k]) { c=flag[i]; flag[i]=flag[j];flag[j]=c; m--; break; } if(i==j) m=i; } } void main() { char flag[N]=”RBWBRWRBW”; int i,k,n=strlen(flag); HotlandFlag(flag[N],n); for(i=0;in;i++) printf(“%c”,flag[i]); } 编程题(20分) 【程序功能】用一组整数验证命题:“任意一个百位数字与个位数字不同的三位正整数n1在经过以下操作后一定会变换到1089:将n1的百位数字与个位数字交换得到n2;求n1与n2差的绝对值得到n3;将n3的百位数字与个位数字交换得到n4;求n3与n4的和得到n5,n5一定是1089。若n1、n3是一位数或两位数,则在高位补0使其成为三位数。 例如: n1:123,n2:321,n3:198(321-123),n4:891,n5:1089(198+891) [编程要求] 编写函数int fun(int a[],int b[],int n),其功能是用a指向数组的前n个整数验证上述命题,将所有符合命题的整数所在数组元素的下标依次保存到b指向的数组中,函数返回b数组中数据的个数。 编写main函数,声明a数组并用测试数据初始化,用a数组作为实参调用fun函数,将a数组中所有符合命题的整数输出到屏幕及结果文件myf2.out中。最后将考生本人的准考证号字符串也保存到结果文件myf2.out中。 [测试数据与运行结果] 测试数据:123 765 1 45 121 1345 131 67 696 3589 运行结果:123 765 1 45 67 【要求】 源程序文件名为myf2.c,输出结果保存为myf2.out。 数据文件的打开、使用、关闭均使用标准库中缓冲文件系统的文件操作函数实现。 源程序文件和运行结果均需要保存在T:盘根目录中供阅卷使用。 不要复制扩展名为OBJ和EXE的文件到T:盘中。 参考答案 改错 #includestdio.h #includeconio.h #includestring.h #define N 10 /* ①宏定义格式:#define 标识符 字符串,末尾无分号,中间无等号*/ void HolandFlag(char flag[], int num) { int i, j, k, m; char c, color[3] = {B, w, R}; /* ② 一维数组用字符初始化*/ m = num; for (k = 0;k 2;k++) for (i = 0;i m;i++) if (flag[i] == color[k]) { for (j = m - 1;j i;j--) if (flag[j] != color[k]) /* ③ 此语句的功能是当flag[j]!=color[k],交换元素flag[i]和flag[j]*/ { c = flag[i];flag[i] = flag[j];flag[j] = c; m--;

您可能关注的文档

文档评论(0)

xxj1658888 + 关注
实名认证
文档贡献者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证 该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档