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