C语言程序设计省二级考试题编程.docx
《C语言程序设计省二级考试题编程.docx》由会员分享,可在线阅读,更多相关《C语言程序设计省二级考试题编程.docx(41页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、文件题:1、在文本文件20075.txt中共有500个记录,每个记录是用以下格式表示的5项数据(各数据间以空格分开)(从网络课件中下载素材文件):学号姓名机试成绩笔试成绩平时成绩nnnnnnnnnccccccnnnnnn说明:n表示整型;c表示字符型;n的个数表示数据位数,例如nn表示两位整数,c的个数表示字符位数求出前400人的机试的平均成绩。*/#include#includemain()FILE*fp;charxh10,name7;inti,js,bs,pscj;doublesum=0,average;fp=fopen(20075.txt,r);if(fp!=NULL)for(i=1;i
2、=400;i+)fscanf(fp,%s%s%d%d%d,xh,name,&js,&bs,&pscj);sum+=js;average=sum/400;printf(average=%.2lfn,average);fclose(fp);elseprintf(文件翻开失败!n);exit(0);/*average=91.56Pressanykeytocontinue*/2、在文本文件20071.txt中共有600个记录,每个记录是一个用xx.x格式表示的实数,编写程序统计出记录中所有大于等于60的数据个数使用循环构造实现)*/#include#includemain()FILE*fp;inti;
3、doublescore;intcount=0;fp=fopen(20071.txt,r);if(fp!=NULL)for(i=1;i=60)count+;fclose(fp);printf(=60的人数为%dn,count);elseprintf(文件翻开失败!n);exit(0);/*=60的人数为513Pressanykeytocontinue*/3、/*在文本文件中共有600个记录,每个记录是一个用xx.x格式表示的实数,编程将该文件中的全部数据原样复制一份到文本文件20212.txt中。*/#include#includemain()FILE*f20211,*f20212;double
4、score;inti;f20211=fopen(20211.txt,r);f20212=fopen(20212.txt,w);if(f20211!=NULL&f20212!=NULL)while(fscanf(f20211,%lf,&score)!=EOF)fprintf(f20212,%4.1lfn,score);fclose(f20211);fclose(f20212);printf(文件复制成功!n);elseprintf(20211.txt未翻开或20212.txt未翻开!n);exit(0);4、#include#includemain()FILE*f20213,*f20214,*f
5、20215;doublescore;f20213=fopen(20213.txt,r);f20214=fopen(20214.txt,r);f20215=fopen(20215.txt,w);if(f20213!=NULL&f20214!=NULL&f20215!=NULL)while(fscanf(f20213,%lf,&score)!=EOF)fprintf(f20215,%4.1lfn,score);while(fscanf(f20214,%lf,&score)!=EOF)fprintf(f20215,%4.1lfn,score);fclose(f20213);fclose(f20214
6、);fclose(f20215);printf(两个文件合并成功,请检查20215.txt是否存在!n);elseprintf(20213.txt或20214.txt或20215.txt未翻开!n);exit(0);5、/*在文本文件中共有600个记录,每个记录是一个用xx.xx格式表示的实数,编程求出文件中每两个相邻数中的小值的和。注:每两个相邻数的含义是:第i个数及第i+1个数称为是两个相邻数。*/#includemain()FILE*fp;doublesum=0,score,pre;fp=fopen(s20212.txt,r);if(fp!=NULL)fscanf(fp,%lf,&pre
7、);while(fscanf(fp,%lf,&score)!=EOF)if(prescore)sum+=pre;elsesum+=score;pre=score;fclose(fp);printf(sum=%.2lfn,sum);elseprintf(s20212.txt翻开失败!n);exit(0);/*sum=24279.36Pressanykeytocontinue*/6、/*在文本文件中共有600个记录,每个记录是一个用xx.xx格式表示的实数,编程求出文件中其值小于50的最大实数首次出现是第几个记录。*/#include#includemain()FILE*fp;doublescor
8、e,max;intpos=0,result;fp=fopen(20074.txt,r);if(fp!=NULL)/*找出小于50的第一条记录,并把数据赋值给max*/while(fscanf(fp,%lf,&score)!=EOF)pos+;if(scoremax&score50)max=score;result=pos;fclose(fp);elseexit(0);printf(小于50的最大实数首次出现是第%d个记录n,result);一维数组:1#include main() int i,j,t; int a10=11,33,56,67,25,45,43,54,69,89; printf
9、(冒泡法排序前:n); for(i=0;i10;i+)printf(%3d,ai); printf(n);/*冒泡法排序*/ for(i=0;i10-1;i+) for(j=0;j10-1-i;j+) if(ajaj+1) t=aj; aj=aj+1; aj+1=t; printf(冒泡法排序后:n); for(i=0;i10;i+) printf(%3d,ai); printf(n); 102#include main() int i,j,k,t; int a10=23,45,56,98,56,74,85,33,40,67; printf(选择法排序前:n); for(i=0;i10;i+)
10、 printf(%3d,ai); printf(n); /*选择法排序*/ for(i=0;i10-1;i+) k=i; for(j=i+1;j10;j+) if(akaj) k=j; if(k!=i) t=ak; ak=ai; ai=t; printf(选择法排序后:n); for(i=0;i10;i+) printf(%3d,ai); printf(n); 103/*编写程序实现统计一维数组A中小于数组元素平均值的元素个数并输出数组各元素的值,平均值和小于平均值的元素的个数,数组A的数据为:12,56,69,59,47,21,24,51,64。*/#include main() int i
11、,count=0,sum=0; double average; int a9=12,56,69,59,47,21,24,51,64; printf(数组原始数据为:n); for(i=0;i9;i+) printf(%3d,ai); sum=sum+ai; printf(n); /*求平均值*/ average=1.0*sum/9; printf(数组各元素的平均值为:n%.2lf。n,average); printf(小于平均值的数据为:n); for(i=0;i9;i+) if(aiaverage) printf(%3d,ai); count+; printf(n); printf(小于平
12、均值的元素一共有%d个。n,count);104/*用随机函数产生15到85间的正整数,为一维数组A10赋值,然后将数组A降序排序,输出数组A最大的5个元素的平均值。思路:产生随机数所需要的头文件为stdlib.h,初始化随机数生成器的语句为 srand(time(0);, 先对数组进展排序,然后计算前5个元素的平均值,最后将该平均值输出*/#include #include main() int i,j,t,a10; double sum=0,average; srand(time(0); /*产生随机数,并输出各个元素*/ printf(随机数数组的各元素为:n); for(i=0;i10
13、;i+) ai=rand()%71+15; printf(%3d,ai); printf(n); /*冒泡法排序*/ for(i=0;i10-1;i+) for(j=0;j10-1-i;j+) if(ajaj+1) t=aj; aj=aj+1; aj+1=t; /*输出排序后的数组*/ printf(排序后的随机数数组的各元素为:n); for(i=0;i10;i+) printf(%3d,ai); if(i5) sum+=ai; average=sum/5.0; printf(n); printf(最大的五个元素的平均值为:%.2lf。n,average); 105/*求一维数组A中最大3个
14、元素的平方根之和。 A数组的数据为56, 78, 98, 45, 58, 34, 12, 90, 76,88。思路:定义一个数组B,将A的数组的各元素复制到B数组中,然后对B数组升序排序,找出排序后的前三个元素,即为最大的三个元素,最后将此三元素进展计算并输出 */#include #include main() int i,j,t; int a10=56,78,98,45,58,34,12,90,76,88; int b10; double result=0; /*输入a数组,并向将各个元素填入b数组*/ printf(输入数组A的各元素:n); for(i=0;i10;i+) printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 二级 考试题 编程
限制150内