1、原国家四级机试模拟试卷 2及答案与解析 一、程序设计题 1 已知数据文件 in. dat中存有 10组每组 20个四位数的数据,每个数据间用空格分隔,调用读函数 ReadDat()把这 10组数据存人数组 aa中 (其中, aa定义为 int aa1020)。请编制一函数 jsVal(),其功能是;首先去掉每组中首尾位置的两个数,接着计算其余 18个数的算术平均值,并将计算结果依次存人数组 bb中 (其中,数组 bb定义为 float bb10),然后把数组 bb中的值按从大到小的顺序进行排序,排序后结果仍存人数组 bb中,最后调用写函数 WriteDat()把结果 bb输出到文件 out.
2、dat中。 注意:部分源程序已给出。 程序中已定义全局变量: aa1020、 bb10。 请勿改动数据文件 in. dat中的任何数据、主函数 main()、读函数 ReadDat()和写函数 WriteDat()的内容。 .试题程序 # include stdio. h int aa1020 float bb10 void jsVal() void ReadDat() int i, j FILE * fP; fp = fopen(“in.darn“,“r“) for(i=0; i 10;i+) for(j=0; j 20; j+) fscanf(fP,“%d“, aaij) fclose(p
3、) void main() int i ReadDat(); / * 读数据 * / jsVal(); / * 按要求计算 * / for(i=0; i 10; i+) /* 从屏幕输出结果 * / printf(“%6.2lfn“, bbi); WriteDat() FILE * fp; int i; fp = fopen(“out, dat“, “w“) for(i=0; i 10; i+) fprintf(fp,“%6.21fn, bbi) fclose(fp); 原国家四级机试模拟试卷 2答案与解析 一、程序设计题 1 【正确答案】 void jsVal() int i,j,k,t,y; float sum=0; for(i=0; i 10; i+) for(y=0; y 20; y+) sum=sum+aaiy bbi=(sum-aai0-aai19)/18; sum=0; for(k=0; k 10; k+) for(i=0; i 10-k; i+) if(bbi bbi+1) t=bbi; bbi=bbi+1; bbi+1=t;