1、四级上机最新题库补充已知数据文件 IN.DAT 中存有 10 组每组 20 个四位数的数据, 每个数据间用空格分隔,并已调用读函数readDat()把这 10 组数据存入数组 aa 中(其中,aa 定义为 int aa1020),请考生编制一函数 jsVal(), 其功能是: 首先计算每组中的数属于奇数的算术平均值,然后取每组小于其算术平均值的最大一个四位数依次存入数组 bb 中(其中,数组 bb 定义为 int bb10,其中 bb0为第一组中符合条件的数,bb1为第二组中符合条件的数,其它依此类推),最后调用输出函数 writeDat()把结果 bb 输出到文件 OUT.DAT 中。注意:
2、 部分源程序存在文件 PROG1.C 文件中。程序中已定义全局变量: aa1020、bb10请勿改动数据文件 IN.DAT 中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。#include int aa1020 ;int bb10;void jsVal() int i,j,max,cnt;double aver;for(i=0;imax) max=aaij;bbi=max;/* 以下函数均无需修改 */void readDat()int i, j ;FILE *fp ;fp = fopen(“D:EXAM40010001in.dat“, “r
3、“) ;for(i = 0 ; i int aa1020 ;int bb10;void jsVal() int i,j,max,cnt,sw;double aver;for(i=0;imax) max=aaij;bbi=max;/* 以下函数均无需修改 */void readDat()int i, j ;FILE *fp ;fp = fopen(“D:EXAM40010001in.dat“, “r“) ;for(i = 0 ; i #include #define MAXNUM 200float xxMAXNUM ;int N = 0 ; /* 文件 IN.DAT 中共有多少个实数 */dou
4、ble aver = 0.0 ; /* 平均值 */double averint = 0.0 ; /* 整数部分值的平均值 */double averdec = 0.0 ; /* 小数部分值的平均值 */int ReadDat(void) ;void WriteDat(void) ;void CalValue(void)int i ;for(i=0; i 0.001) N+ ;fclose(fp) ;return 0 ;void WriteDat(void)FILE *fp ;fp = fopen(“OUT10.DAT“, “w“) ;fprintf(fp, “%dn%.2lfn%.2lfn%
5、.2lfn“, N, aver, averint, averdec) ;fclose(fp) ;有人发贴抽出了一道题“10 组 20 个数,求每组最大和最小数的平均值,并找出小于平均值的最大数。”,说的不清不楚,我根据意思再联系我抽的题做出了如下题:已知数据文件 IN.DAT 中存有 10 组每组 20 个四位数的数据, 每个数据间用空格分隔 ,并已调用读函数 readDat()把这 10 组数据存入数组 aa 中(其中,aa 定义为 int aa1020),请考生编制一函数 jsVal(), 其功能是: 首先计算每组中的数的最大值和最小值的算术平均值,然后取每组小于其算术平均值的最大一个四位
6、数依次存入数组 bb 中(其中,数组 bb 定义为 int bb10,其中 bb0为第一组中符合条件的数,bb1为第二组中符合条件的数,其它依此类推),最后调用输出函数 writeDat()把结果 bb 输出到文件 OUT.DAT 中。注意: 部分源程序存在文件 PROG1.C 文件中。程序中已定义全局变量: aa1020、bb10请勿改动数据文件 IN.DAT 中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。#include int aa1020 ;int bb10;void jsVal() int i,j,max1,max2,min,cn
7、t;double aver;for(i=0;imax1) max1=aaij;if(aaijmax2) max2=aaij;bbi=max2;/* 以下函数均无需修改 */void readDat()int i, j ;FILE *fp ;fp = fopen(“D:EXAM40010001in.dat“, “r“) ;for(i = 0 ; i #include #define MAXNUM 200float xxMAXNUM ;int N = 0 ; /* 文件 IN.DAT 中共有多少个实数 */double aver = 0.0 ; /* 小数部分的平均值 */double sumin
8、t = 0.0 ; /* 整数部分值之和 */double sumdec = 0.0 ; /* 小数部分值之和 */int ReadDat(void) ;void WriteDat(void) ;void CalValue(void)int i ;long val ;float dec ;for(i = 0 ; i aver) sumint += val ;sumdec += (xxi - val) ;void main()clrscr() ;if(ReadDat() printf(“数据文件 IN.DAT 不能打开!007n“) ;return ;CalValue() ;printf(“文件
9、 IN.DAT 中共有实数%d 个n“, N) ;printf(“平均值=%.2lfn“, aver) ;printf(“整数部分值之和=%.2lfn“, sumint) ;printf(“小数部分值之和=%.2lfn“, sumdec) ;WriteDat() ;int ReadDat(void)FILE *fp ;int j ;if(fp = fopen(“in.dat“, “r“) = NULL) return 1 ;while(!feof(fp) fscanf(fp, “%f,“, if(xxN 0.001) N+ ;fclose(fp) ;return 0 ;void WriteDa
10、t(void)FILE *fp ;fp = fopen(“OUT5.DAT“, “w“) ;fprintf(fp, “%dn%.2lfn%.2lfn%.2lfn“, N, aver, sumint, sumdec) ;fclose(fp) ;另一解法:void CalValue(void) int i;for(i=0;iaver) sumint+=(long)xxi;sumdec+=xxi-(long)xxi;*三级南开题目 2(三级网络无忧 id 143) 已知数据文件 IN.DAT 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入数组 a 中,请考生编制一函数 js
11、Val(),其功能是:如果四位数各位上的数字均是 1 或 3 或 5 或 7 或 9,则统计出满足此条件的个数 cnt,并把这些四位数按从大到小的顺序存入数组 b 中。最后 main( )函数调用写函数 writeDat()把结果 cnt 以及数组 b 中符合条件的四位数输出到 OUT.DAT 文件中。注意:部分源程序存在文件 prog1.c 中。程序中已定义数组:a200,b200,已定义变量:cnt请勿改动数据文件 IN.DAT 中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void jsVal() int i,j,qw,bw,sw,gw;for(i=0;iint aa1020 ;float bb10;void jsVal()int i, j, k, val ;for(i = 0 ; i aaik ) val = aaij ; aaij = aaik ; aaik = val ; for(i = 0 ; i aaik) tem=aaij; aaij=aaik; aaik=tem;for(j=0;jmax) max=aaij;if(aaijaverbbi=max2;