第73套上机考试试题
函数ReadDat()实现从文件IN.dat中读取1000个十进制整数到数组XX 中:请编写函数Compute()分别计算出数组XX 中奇数的个数odd、偶数的个数even,以及所有数的平均值aver和方差totfc的值。最后调用函数WriteDat(),把结果输出到OUT.dat文件中。计算方差的公式如下:
原始数据文件存放的格式是:每行存放10个数(每个数均大于0且小于等于2000),并用逗号隔开。
注意:部分源程序已给出。请勿改动主函数main()、读函数ReadDat()和输出数据函数WriteDat()的内容
第73套试题答案及详解
【审题分析】分析题目可知,本题只要实现Compute()函数的功能即可。Compute()函数要实现的功能是:分别计算出XX中奇数的个数odd、偶数的个数even、以及所有数的平均值aver和方差totfc的值。因此只要编写求出数组中奇数的个数和偶数的个数,以及所有元素的平均值和方差即可。
【解题思路】对数组xx[i]中的1000个整数逐个进行扫描处理,如果xx[i]对2的余数为1,则xx[j]为奇数,变量odd加1;否则xX[i]为偶数,变量even加1。把xx[i]的值与变量aver相加存入变量aver中,退出循环时,变量aver的值除以MAX就得到平均值。最后在for循环语句中根据方差的公式求出所有数的力差。
【参考答案】
【易错分析】用对2的求余运算判断一个正整数是奇数还是偶数。
【考点链接】求余运算、C语句中条件判断语句ifelse语句的使用。
责任编辑:小草