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

  第75套上机考试试题
  已知数据文件IN.dat中存有200个四位数,并已调用读函数RData()把这些数存入数组a中,请编写函数cgVal(),其功能是:依次从数组a中取出一个四位数,如果该阴位数连续大于该四何数以后的5个数且该数足奇数,则统计出满足此条件的个数count并把些四位数按从小到大的顺序存入数组b中。最后凋用写函数WData(),把结果count以及数组b中符合条件的四位数输出到0UT.dat文件巾。程序中已定义数组a[200]、b[200],已定义计数变量count。
  注意:部分程序已经给出。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数ROata()和写函数WData()的内容。
  
  

  第75套试题答案及详解
  【审题分析】分析题目可知,题中需要解决的问题就是实现c9Val函数的功能问题,而cgVal函数的功能是:统计满足“从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的5个数且该数是奇数”条件的个数count,并把这些四位数按从小到大的顺序存入数组b中。因此本题的关键在于判断两个数之间的大小。
  【解题思路】这里我们可以通过将外层for循环语句中自变量i从0增加到MAX-5、内层for循环语句中自变量j从i+1增加到i+5的方法,来循环比较a[i]与a[i]的大小。如果a[i]>a[j]成立,则赋标志变量flag的值为1,再求出a[i]除以2的余数,如果余数不等于0,表示a[i]是数组a中符合条件的一个数,把a[i]的值输给b[count],同时变量count加1。然后再对数组b[count]中的所有数按照从小到大的顺序进行排序。
  【参考答案】
  
  【易错分析】外层循环变晕i从0增加到MAX-5,而不是从0增加到MAX;用标志变晕flag来记录a[i]连续大于其后面的5个数字。只有flag=1和a[i]%2!=0阿时成立时,a[i]才是符合题目条件的数据。
  【考点链接】C语言的for循环语句的使用、用一个数除以2的余数来判断一个数是否为奇数、数组中数据从小到大的排序算法。

责任编辑:小草

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