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

  第5套上机考试试题
  函数RData0实现从文件IN.dat中读取一篇英文文章存入到宁符串数组str中,请编写函数DescSort(),其功能是:以行为甲单位对字符按从人到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组str中,最后调用函数WData(),把结果str输出到文件OUT.dat中。原始数据文件存放的格式是:每行的宽度均小于80个宁符(含标点符号和空格)。
  例如,原文:dAeBfC.
  CcbbAA
  结果:fedCBA.
  cbbCAA
  注意:部分程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。


  第5套试题答案及详解
  【审题分析】分析题目可知,题中需要解决的问题就是实现DescSort函数的功能问题,而DescSort函数的功能是:实现“以行为单位对字符按从火到小的顺序进行排序,排序后韵结果仍按行重新存入字符串数组str中”。  因此本题的关键在于如何判断将字符串拆分成单独的字母,之后就可以通过一个三重循环来将所有字符逐个比较字母的大小,并存入数组str中。【解题思路】首先利用三重循环中的第一层循环将字符读入数组str1中,然后利用内层的二重循环对文章中每一行的字符进行两两比较,较小的字符往行后放,较大的字符往行前放,这样就实现了以行为单位对字符从大到小的排序。在程序中的语句是if(str[i][j]<str[i][k])成立,str[i][j]和str[i][k]就交换数据。
  【参考答案】


  【易错分析】变量j的取值范围是0到str1-1,而变量k的取值范围是j+1到str1。
  【考点链接】C语言的for循环语句的用法、两个字符的交换。

责任编辑:小草

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