1、计算机三级数据库技术(上机操作)机试模拟试卷 33及答案与解析 一、程序设计题 1 函数 ReadDat()实现从数据文件 in dat中读取 1000个十进制整数到数组 xx中,请编写函数 Compute()分别计算出数组 XX中数值为奇数的个数 odd,数组 xx中所有奇数的平均值 ave1,并求出数组 xx中数值为偶数的平均值 ave2以及所有奇数的方差 totfe的值,最后调用函数 WriteDat()把结果输出到 out dat文件中。计算方差的公式如下: 设 N为奇数的个数, xxi为奇数, avel为奇数的平均值。 原 始数据文件存放的格式是:每行存放 10个数,并用逗号隔开 (
2、每个数 均大于 0且小于等于 2000)。【试题程序】 #include #include #include 世 define MAX 1000 int xxEMAX, odd=0, even=O; double avel=0 0, ave2=0 0,totfc=0 0; void WriteDat(void)l int ReadDat(void) FILE*fp; int i; if(fp=fopen(“in dat”, “r”)=NULL: return 1; for(i=0;i 计算机三级数据库技术(上机操 作)机试模拟试卷 33答案与解析 一、程序设计题 1 【正确答案】 void Compute(void) int if *定义变量 * for(i=0; iMAX;i+) *统计求和 * if(xxi 2=1) odd+; avel+=xxi; else ave2+=xxi: ave1 =odd; *求平均值 * ave2 =(MAXodd); for(i=0;iMAX;i+) *求方差值 * if(xxi 2=1) totfc+=(xxEi-1一 ave1)*(xxi一 avel) odd;