全国计算机等级三级网络技术机试练习习题(33)
来源:优易学  2010-1-14 20:26:19   【优易学:中国教育考试门户网】   资料下载   IT书店
  第33套上机考试试题
  下列程序的功能是:将一个正整数序列{K1,K2,…,K9}重新排列成~个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(有面),要求编写函数NumSort()实现此功能。
  最后调用Wdata()函数将新序列输出到OUT.dat文件中。
  说明:在程序巾已给出10个序列,每个序列有9个正整数,并存入数组a[10119]中,分别求出这10个新序列。
  例如:序列{6,8,9,1,2,5,4,7,3}
  经重排后成为{3,4,5,2,1,6,8,9,7}
  注意:部分源程序已经给出。请勿改动主函数main()和写函数Wdata()的内容。  


  第33套试题答案及详解
  【审题分析】分析题目可知,本题只要实现Numsort()函数的功能即可。Numsort()函数要实现的功能是:将一正整数序列{K1,K2,…,K9}重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。因此解答本题的关键在于比较序列中数值的大小。
  【解题思路】对于二维数维a[10][9],利用两个for循环语句实现对数组中每个元素的访问。在外层循环中当自变量i从0递增到9,完成对10个序列的访问。对每一个序列,首先把第1个元素的值赋给value,然后在第二层循环中对:a[i][0]后面的每~个元素进行判断,如果表达式a[i][j]<value成立,则把a[i][j]的值赋给num,再把a[i][j]前面的每一个元素向后移动一个位置,最后把num的值赋给a[i][0]。
  【参考答案】 

  【易错分析】在把a[i][j]前面的每一个元素向后移动一个位置时,for循环语句自变量k的初始值等于j,每一次循环自变量k减1。
  【考点链接】二维数组元素的访问。

责任编辑:小草

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