全国计算机等级三级网络技术上机练习习题(61)
来源:优易学  2010-1-15 9:51:33   【优易学:中国教育考试门户网】   资料下载   IT书店

  第61套上机考试试题
  已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读耿这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:
  ①求出文件中共有的止整数个数totNum;
  ②求这些数右移1位后,产生的新数是奇数的数的个数totCnt以及满足此条件的这些数(右移前的值)的算术平均值totAve。最后涮用函数writeOat()把所求的结果输出剑OUT.dat文件中。
  注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
  
  

  第61套试题答案及详解
  【审题分析】分析题目可知,本题只要实现calValue()函数的功能即可。calValue()数要实现的功能是:④求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是奇数的数的个数totCnt以及满足此条件的这些数(右移前的值)的算术半均值totAve。因此解答本题的关键在于如何将一个数为正整数,并判断对这些数字移位后的数是否为奇数。
  【解题思路】在for循环语句中,自变量i从0递增到MAXNUM对数组number中的每个数进行判断,如果number[i]的值大于0,说明number[i]的值为正整数,统计正整数个数的变量totNum加1:然后number[i]右移1位得到data的值;再对data的值除2求余数,如果其值为1,则统计变量totCnt加1,同时把number[i]的值加到totAve上,得到这些数的和。退出循环后,用totAve的值除以totCnt,就得到了这些数的算术平均值totAve。
  【参考答案】
  
  【易错分析】对数右移1位应用C语言中的“number[i]>>1;”语句表示。
  【考点链接】数据的右移、平均值的计算。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
热门课程培训