全国计算机等级三级网络技术机试练习习题(38)
来源:优易学  2010-1-14 20:29:50   【优易学:中国教育考试门户网】   资料下载   IT书店
 第38套上机考试试题
  已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数RData()读取若干个正整数并存入数组oginal中。请编写函数CalValue(),其功能要求是:
  ①求出这个文件中共有多少个正整数totNum;
  ②求这些数中的各位数字之和是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totave。最后调用函数WData()把所求的结果输出到OUT.dat文件中。
  注意:部分程序已经给出。请勿改动主函数main()、读隔数RData()和写函数WData()的内容。 


  第38套试题答案及详解
  【审题分析】分析题目可知,本题只要实现CalValue()函数的功能即可。CalValue()要实现3个功能:①求出IN.dat文件中共有多少个正整数totNum;②求这些数中的各位数字之和是偶数的数的个数totCnt;③以及满足此条件的这些数的算术平均值totave。因此解答本题的关键在于如何判断一个数是否为正整数及如何将一个数拆分出各位的数字。
  【解题思路】在for循环语句中,自变量i从0递增到MAXNUM对数组original中的每个数进行判断,如果0riginal[i]的值大于0,说明original[i]的值为正整数,统计正整数个数的变量totNum加1。然后用除法和求余的方法对original[i]的值求出其各个位上的数字,分别记录到变量thou、hun、ten、data中,这些数字的和赋给变量ab,闱ab的值对2求余数,如果余数为0,说明ab的值为偶数,偶数的统计变量totCnt加1,同时把original[i]的值加到sum上,得到这些偶数的和。退出循环后,用sum的值除以偶数的个数totCnt,就得到了这些偶数的算术平均德totave。
  【参考答案】 

  【易错分析】用original[i]除以1000得到original[i]千位上的数字,用original[i]对1000求余然后再除以100得到original[i]百位上的数字,用original[i]对100求余然后再除以10得到original[i]十位上的数字,用original[i]对10求余数得到original[i]个位上的数字。在求算术平均值时,要把整型转换成双精度型数据。
  【考点链接】用除法和求余运算求一个四位数各位上的数宁、把整型转换成双精度型数据。

责任编辑:小草

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