- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2014卓越班C语言程序设计实验
C语言程序设计实验十二
实验目的
江苏省等级考试的上机考与全国等级考试的上机考形式完全不同,江苏省等考上机只考两题,一题是改错题,但并不提示错误的位置,需要自已动脑。
改错题通常有3~4个错误。错误分为两大类,一类是语法出错,这类错误比较查错和容易修改,即修改通过编译程序提示的错误。另一类是结果出错,即程序的算法出错,这类错误需认真审题。
另一题是编程题。这类题需要整体编程。要求必须常用算法和函数参数和传递。
编程题必须掌握C语言的文件,应熟悉文件指针的定义,文件的打开及文件的输入输出。
实验指导
【12.1程序功能】 在一组数值给定的整数中查找次大数。
【编程要求】
1、编写函数int findsecmax(int data[], int count)。函数功能:在data数组的前count个整数中查找次大数。
2、编写函数main()。函数功能:声明一个整型数组a并用测试数据初始化,用数组a及数组元素个数作实参调用findsecmax 函数找出次大数,然后将原数组及次大数输出到屏幕及数据文件myf12_1.out中。最后将考生本人的准考证号字符串输出到文件myf12_1.out中。
【测试数据与运行结果】
测试数据:1,9,2,8,3,7,4,6,10,10
屏幕输出:
1 9 2 8 3
7 4 6 10 10
Sec_max: 9
【要求】
1.源程序文件名为myf12_1.c,输出结果文件名为myf12_1.out。
2.数据文件的打开、使用、关闭均用C语言标准库中文件操作函数实现。
3.源程序文件和运行结果文件均需保存到T盘上,供阅卷使用。
4.不要复制扩展名为obj和exe的文件到T盘上。
#include stdlib.h /*库函数exit(0)需要*/
#include stdio.h /*定义文件指针时需要的头文件*/
函数编程,按【编程要求】 1.
函数编程,按【编程要求】
1.编写函数int findsecmax(int data[], int count)
要点:函数首部完整照抄。
int findsecmax(int data[], int count)
{
}
int main()
{ FILE *fp;
所有数据类型的说明和定义
if((fp=fopen(t:\\myf2.out,w))==NULL)
{ printf(\nCant open the file!); exit (0);}
函数调用(具体问题具体分析)
结果输出
printf(\nMy number is:120992340\n);
fprintf(fp,\nMy number is:1292340\n);
fclose(fp);
return 0;
}
【参考源程序】
#include stdio.h
#include stdlib.h
int findsecmax(int data[], int count)
{ int i, j=0,secmax=0,max=data[0],b[10];
for(i=1;icount;i++) //查找整数数组的最大值max
if(data[i]max) max=data[i];
for(i=0;icount;i++) //排除最大值后的整数数据放入临时数组b
if(data[i]!=max) b[j++]=data[i];
for(i=0;ij;i++) //在临时数组b中找最大值,即是次大值
if(data[i]secmax) secmax=data[i];
return secmax;
}
int main()
{ FILE *fp;
int i,a[20]={1,9,2,8,3,7,4,6,10,10},count=10,sec_max;
if((fp=fopen(myf12_1.out,w))==NULL)
{ printf(\nCant open the file!); exit (0);}
sec_max=findsecmax(a,count);
for(i=0;icount;i++)
printf((i+1)%5==0?%4d\n:%4d,a[i]),fprintf(fp,i%5==0?%4d\n:
文档评论(0)