1、计算机二级C语言上机题及答案汇总九41、给定程序中,函数fun的功能是:在形参s所指字符串中寻找与参数c相同的字符,并在其后插入一个与之相同的字符,若找不到相同的字符则函数不做任何处理。例如,s所指字符串为:baacda,c中的字符为:a,执行后s所指字符串为:baaaacdaa。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#includevoid fun(char *s, char c) int i, j, n;/*found*/for(i=0; si!=_1_ ; i+)if
2、(si=c)/*found*/n=_2_ ;while(si+1+n!=0) n+;for(j=i+n+1; ji; j-) sj+1=sj;/*found*/sj+1=_3_ ;i=i+1;main() char s80=baacda, c;printf( The string: %s ,s);printf( Input a character: ); scanf(%c,&c);fun(s,c);printf( The result is: %s ,s);42、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参
3、filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#define N 5typedef struct student long sno;char name10;float score3; STU;void fun(char *filename, STU n) FILE *fp;/*found*/fp = fopen(_1_, rb+);/*found*/fseek(
4、_2_, -(long)sizeof(STU), SEEK_END);/*found*/fwrite(&n, sizeof(STU), 1, _3_);fclose(fp);main() STU tN= 10001,MaChao, 91, 92, 77, 10002,CaoKai, 75, 60, 88,10003,LiSi, 85, 70, 78, 10004,FangFang, 90, 82, 87,10005,ZhangSan, 95, 80, 88;STU n=10006,ZhaoSi, 55, 70, 68, ssN;int i,j; FILE *fp;fp = fopen(stud
5、ent.dat, wb);fwrite(t, sizeof(STU), N, fp);fclose(fp);fp = fopen(student.dat, rb);fread(ss, sizeof(STU), N, fp);fclose(fp);printf( The original data : );for (j=0; j printf( No: %ld Name: %-8s Scores: ,ssj.sno, ssj.name);for (i=0; i3; i+) printf(%6.2f , ssj.scorei);printf( );fun(student.dat, n);print
6、f( The data after modifing : );fp = fopen(student.dat, rb);fread(ss, sizeof(STU), N, fp);fclose(fp);for (j=0; j printf( No: %ld Name: %-8s Scores: ,ssj.sno, ssj.name);for (i=0; i3; i+) printf(%6.2f , ssj.scorei);printf( );43、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指
7、的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#define N 5typedef struct student long sno;char name10;float score3; STU;void fun(char *filename) FILE *fp; int i, j;STU sN, t;/*found*/fp = fo
8、pen(filename, _1_);fread(s, sizeof(STU), N, fp);fclose(fp);for (i=0; i for (j=i+1; j/*found*/if (si.sno _2_ sj.sno) t = si; si = sj; sj = t; fp = fopen(filename, wb);/*found*/_3_(s, sizeof(STU), N, fp); /* 二进制输出 */fclose(fp);main() STU tN= 10005,ZhangSan, 95, 80, 88, 10003,LiSi, 85, 70, 78,10002,Cao
9、Kai, 75, 60, 88, 10004,FangFang, 90, 82, 87,10001,MaChao, 91, 92, 77, ssN;int i,j; FILE *fp;fp = fopen(student.dat, wb);fwrite(t, sizeof(STU), 5, fp);fclose(fp);printf( The original data : );for (j=0; j printf( No: %ld Name: %-8s Scores: ,tj.sno, tj.name);for (i=0; i3; i+) printf(%6.2f , tj.scorei);
10、printf( );fun(student.dat);printf( The data after sorting : );fp = fopen(student.dat, rb);fread(ss, sizeof(STU), 5, fp);fclose(fp);for (j=0; j printf( No: %ld Name: %-8s Scores: ,ssj.sno, ssj.name);for (i=0; istd1.num) temp=std0; std0=std1; std1=temp; if(std0.numstd2.num) temp=std0; std0=std2; std2=
11、temp; if(std1.numstd2.num) temp=std1; std1=std2; std2=temp; main() PERSON std = 5,Zhanghu,2,WangLi,6,LinMin ;int i;/*found*/fun(_3_);printf( The result is : );for(i=0; i3; i+)printf(%d,%s ,stdi.num,stdi.name);45、给定程序中,函数fun的功能是:计算x所指数组中N个数的平均值(规定所有数均为正数),平均值通过形参返回主函数,将小于平均值且最接近平均值的数作为函数值返回,在主函数中输出。例
12、如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为:30.500000主函数中输出:m=30请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!#include#include#define N 10double fun(double x,double *av) int i,j; double d,s;s=0;for(i=0; i/*found*/_1_=s/N;d=32767;for(i=0; i if(xi*av & *av - xi=d)/*found*/d=*av-xi; j=_2_;/*found*/return _3_;main() int i; double xN= 46,30,32,40,6,17,45,15,48,26;double av,m;for(i=0; i printf( );m=fun(x,&av);printf( The average is: %f ,av);printf(m=%5.0f ,m);printf( );
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1