1、国家二级 C+机试(操作题)模拟试卷 173及答案与解析 一、基本操作题 1 程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数 fun的功能是从形参 filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到 filename所指的文件中,覆盖原来的文件内容。 请在程序的中括号处填入正确的内容并把中括号删除,使程序得出正确的结果。 注意:部分源程序在文件 BLANKl C中。 不 得增行或删行,也不得更改程序的结构 ! 试题程序: #include #define N 5 typede
2、f struct student long sno; char name10; float score3; STU; void fun(char*filename) FILE*fp; int i, j; STU sN, t; *found* fp=fopen(filename,【 1】 ); fread(s, sizeof(STU), N, fp); fclose(fp); for(i=0; i #include #include void fun(int m, int k, int xx) void main() FTLE*wf; int m, n, z z1000; system(“CLS
3、“); printf(“ nPlease enter two in tegers: “); scanf(“ d d“, &m, &n); fun(m, n, zz); for(m=0; m (3)fwrite 【试题解析】 填空 1:题目中要求从形参 filename所指的文件中读入学生的数据,以此可以看出本 空应该填写 ”rb”。 填空 2:此处的 if语句是比较学号的大小,如果学号大就和学号小的换位,以此本空填写 。 填空 3:题目要求所有的学生数据均以二进制方式输出到文件中,因此本空填写fwrite。 二、简单应用题 2 【正确答案】 (1)double fun(int m) (2)for(i=100; i=i) *如果是素数,放入数组 xx中 * xxn+=i; 【试题解析】 本题主要考查素数的判定方法,如果一个数不能被除了 1和其自身以外的数整除,则这个数为素数。本程序使用循环语句控制需要判断的数,在循环体中判断该数是否为素数,若是则存入数组 xx中。