1、三级数据库技术机试-217 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.函数 ReadDat()实现从文件 IN.dat中读取 1000个十进制整数到数组 xx中;请编写函数 Compute()分别计算出数组 xx中奇数的个数 odd、偶数的个数 even,以及所有数的平均值 aver和方差 totfc的值。最后调用函数 WriteDat(),把结果输出到 OUT. dat文件中。计算方差的公式如下:(分数:100.00)_三级数据库技术机试-217 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:10
2、0.00)1.函数 ReadDat()实现从文件 IN.dat中读取 1000个十进制整数到数组 xx中;请编写函数 Compute()分别计算出数组 xx中奇数的个数 odd、偶数的个数 even,以及所有数的平均值 aver和方差 totfc的值。最后调用函数 WriteDat(),把结果输出到 OUT. dat文件中。计算方差的公式如下:(分数:100.00)_正确答案:(void Compute (void) int i;for (i=0; i1000; i+) if (xx i %2)odd+;elseeven+;aver = aver+ xxi;aver /= MAX;for (i=0; i1000; i+)totfc += (xxi-aver)*(xxi-aver)/MAX;)解析:解题思路 对数组 xxi中的 1000个整数逐个进行扫描处理,如果 xxi对 2的余数为 1,则xxi为奇数,变量 odd加 1;否则 xxi为偶数,变量 even加 1。把 xxi的值与变量 aver相加存入变量 aver中。退出循环时,变量 aver的值除以 MAX就得到平均值。最后在 for循环语句中根据方差的公式求出所有数的方差。