C语言程序设计省二级考试题编程(共41页).doc
《C语言程序设计省二级考试题编程(共41页).doc》由会员分享,可在线阅读,更多相关《C语言程序设计省二级考试题编程(共41页).doc(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(f
2、p!=NULL)for(i=1;i=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#includ
3、emain()FILE*fp;inti;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格式表示的实数,编程将该文件中的全部数据原样复制一份到文本文件20082.txt中。*/#include#includemain()FILE
4、*f20081,*f20082;doublescore;inti;f20081=fopen(20081.txt,r);f20082=fopen(20082.txt,w);if(f20081!=NULL&f20082!=NULL)while(fscanf(f20081,%lf,&score)!=EOF)fprintf(f20082,%4.1lfn,score);fclose(f20081);fclose(f20082);printf(文件复制成功!n);elseprintf(20081.txt未打开或20082.txt未打开!n);exit(0);4、#include#includemain()
5、FILE*f20083,*f20084,*f20085;doublescore;f20083=fopen(20083.txt,r);f20084=fopen(20084.txt,r);f20085=fopen(20085.txt,w);if(f20083!=NULL&f20084!=NULL&f20085!=NULL)while(fscanf(f20083,%lf,&score)!=EOF)fprintf(f20085,%4.1lfn,score);while(fscanf(f20084,%lf,&score)!=EOF)fprintf(f20085,%4.1lfn,score);fclose
6、(f20083);fclose(f20084);fclose(f20085);printf(两个文件合并成功,请检查20085.txt是否存在!n);elseprintf(20083.txt或20084.txt或20085.txt未打开!n);exit(0);5、/*已知在文本文件中共有600个记录,每个记录是一个用xx.xx格式表示的实数,编程求出文件中每两个相邻数中的小值的和。注:每两个相邻数的含义是:第i个数与第i+1个数称为是两个相邻数。*/#includemain()FILE*fp;doublesum=0,score,pre;fp=fopen(s20092.txt,r);if(fp!
7、=NULL)fscanf(fp,%lf,&pre);while(fscanf(fp,%lf,&score)!=EOF)if(prescore)sum+=pre;elsesum+=score;pre=score;fclose(fp);printf(sum=%.2lfn,sum);elseprintf(s20092.txt打开失败!n);exit(0);/*sum=24279.36Pressanykeytocontinue*/6、/*已知在文本文件中共有600个记录,每个记录是一个用xx.xx格式表示的实数,编程求出文件中其值小于50的最大实数首次出现是第几个记录。*/#include#inclu
8、demain()FILE*fp;doublescore,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
9、,25,45,43,54,69,89; printf(冒泡法排序前: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(
10、选择法排序前:n); for(i=0;i10;i+) 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,
11、64。*/#include main() int i,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); cou
12、nt+; printf(n); printf(小于平均值的元素一共有%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); /*产生随机数,并输出各个元素*/ print
13、f(随机数数组的各元素为:n); for(i=0;i10;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。
14、n,average); 105/*求一维数组A中最大3个元素的平方根之和。 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的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 二级 考试题 编程 41
限制150内