全国计算机等级三级网络技术机试练习习题(2)
来源:优易学  2010-1-14 20:01:56   【优易学:中国教育考试门户网】   资料下载   IT书店
  在文件IN.dat中有200个正整数,且每个数均在1000-9999之间。函数RData()读取这200个数存放到数组0riginal中。请编写函数numAscend(),其功能是:要求按每个数的后3位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组result中,如果后3位的数值相等,则按原先的数值进行降序排列。最后调用函数WData(),把结果result输出到文件OUT.dat中。
  例如,处理前:6012 5099 9012 7025 8088
  处理后:9012 6012 7025 8088 5099
  注意:部分程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()盼内容。

  第2套试题答案及详解
  【审题分析】首先我们来看看题中要求我们解决的问题有哪些。①按original数组中各元素数字的后3位数的大小进行升序排列,如果数值相等,则按原先的数值进行降序排列;②取出排序后的original数组中的前10个数依次存入result数组中。
  【解题思路】根据上面的分析,编写程序有以下几个步骤:
  第1步:首先分解出数组中两个元素的后三位,这里采用在两次循环中求出正整数original[i]矛n original[j]对1000的余数的方法;
  第2步:然后比较两个数余数的大小,如果正整数0riginal[i]和original[j]对1000的余数不相同,则按照升序进行排序,如果相同,则比较original[i]和original[j]的大小,按照降序进行排序;
  第3步:利用一个for循环语句把original数组中的前10个数输出给result数组。
  【参考答案】

  【易错分析】数组original[i]中两个数的位置交换要借助中间变量data。
  【考点链接】for循环语句、正整数的求余运算。

责任编辑:小草

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