- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
函数实验题
改错题:
【程序功能】函数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
#denfine 10 N /*改为#define N 10 */
void HolandFlag(char flag[],int num)
{int i,j,k,m;
char c,color[3]={B,W,R}; /*改为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;ji;j--)
if(flag[j]==color[k]) /*改为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);
HolandFlag(flag[N],n); /*改为HolandFlag(flag,n)*/
for(i=0;in;i++)
printf(%c,flag[i]);
}
【要求】
1、将上述程序录入到文件myf1.c中,根据题目要求及程序中语句之间的逻辑关系对程序中的错误进行修改。
2、改错时,可以修改语句中的一部分内容,调整语句次序,增加少量的变量说明或编译预处理命令,但不能增加其他语句,也不能删去整条语句。
二、编程题:
1、【程序功能】
用一组整数验证命题:“任意一个百位数字与个位数字不同的三位正整数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)
【编程要求】
(1)编写函数int fun(int a[],int b[],int n),其功能是用a指向数组的前n个整数验证上述命题,将所有符合命题的整数所在数组元素的下标依次保存到b指向的数组中,函数返回b数组中数据的个数。
(2)编写main函数,声明a数组并用测试数据初始化,用a数组作为实参调用fun函数,将a数组中所有符合命题的整数输出到屏幕及结果文件myf2.out中。最后将本人的学号字符串也保存到结果文件myf2.out中。
【测试数据与运行结果】
测试数据:123 765 1 45 121 1345 131 67 696 3589
运行结果:123 765 1 45 67
my number is:本人学号字符串
【要求】
(1).将源程序文件取名为myf2.c,输出结果文件取名为myf2.out。
(2).数据文件的打开、使用和关闭等操作均用C语言标准库中缓冲文件系统的文件操作函数实现。即①#include “stdio.h” ②FILE *fp; ③fp=fopen(“E:\\myf2.out”,”w”);
④fprintf(fp , ”……” , ……); ⑤fclose(fp);
(3).源程序文件和运行结果文件均需保存在考试盘的根目录下(平时练习时保存在E盘,考试时保存在T盘),供阅卷用。
(4).不要将myf2.obj和myf2.exe保存到考试盘上。
【参考程序】
#includestdio.h
#includema
您可能关注的文档
最近下载
- 2025年大足县大足县某国企招聘工作人员若干人备考题库及答案详解1套.docx VIP
- NB╱T 47013.8-2015 压设备无损检测第8部分:泄漏检测.pdf VIP
- 开关端子箱更换作业指导书.docx VIP
- 生产现场巡查与督导解读.pptx VIP
- 统编版(2019)高一上学期必修中外历史纲要上期末综合检测试卷(含答案解析).docx VIP
- 2025年大足县大足县某国企招聘工作人员若干人备考题库带答案详解.docx VIP
- 北京市民政局所属事业单位招聘考试真题及答案.docx VIP
- 2025《数据基础设施 接入管理》.pdf VIP
- 初中物理核心知识点全梳理(附中考考点标注).docx VIP
- 院感知识考试试题及答案.docx VIP
原创力文档


文档评论(0)