首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 计算机考试 > 等级考试 > 考试试题 >

2009年4月全国计算机等级三级网络技术机试练习题二

2008-11-29 
三级网络技术机试练习题
    在文件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循环语句、正整数的求余运算。

 


3COME考试频道为您精心整理,希望对您有所帮助,更多信息在http://www.reader8.net/exam/

热点排行