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

  第77套上机考试试题
  函数RData()的功能是实现从文件IN.dat中读取一篇英文文章存入到字符串数组original中。请编写函数CharAdd(),其功能是:以行为单位把字符串中的第1个字符的ASCII值加第2个字符的ASCII值,得到第1个新字符,第2个字符的ASCII值加第3个字符的ASCII值,得到第2个新字符,以此类推,一直处理到倒数第2个字符,最后1个字符的ASCII值加原第1个字符的ASCII值,得到最后1个新的字符。得到的新字符分别存放在原字符串对应的位置上最后把已处理的字符串逆转后按行重新存入字符串数组original中。最后调用函数WData(),把结果original输出到OUT.dat文件中。原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
  注意:部分源程序已给出。请勿改动主函数main()读数据函数RData()和输出数据函数wData()内容。
  
  

  第77套试题答案及详解
  【审题分析】分析题目可知,题中需要解决的问题就是实现CharAdd函数的功能问题,而CharAdd函数的功能是:以行为单位把字符串中的第1个字符的ASCII值加第2个字符的ASCII值得到第1个新字符,第2个字符的ASCII值加第3个字符的ASCII值得到第2个新字符,依此类推,一直处理到倒数第2个字符,最后1个字符的ASCII值加原第1个字符的ASCII值得到最后1个新的字符。得到的新字符分别存放在原字符串对应的位置上,最后把已处理的字符串逆转后按行霞新存入字符串数组original中。因此本题的关键在于如何进行ASCII值的相加运算。
  【解题思路】首先用字符串函数strlen求出一行字符串的长度,再把这一行字符串的第1个字符单独存放在变量ch中;然后在for循环语句中,从第1字符起直到倒数第2字符,用当前字符的ASCII值和其后字符的ASCIl值相加,得到变换后的字符的ASCII值存入当前变量中。对于最后1个字符,用这个字符的ASCIl值和变量ch中存放的字符的ASCII值相加,得到所求的字符的ASCII值,存入到最后1个字符的变量中。对于整个字符串的逆转,用变量j和k分别记录字符串的头和尾,从字符串的头和尾开始扫描直到字符串的中间位置为止,实现字符的相互交换。
  【参考答案】
  
  【易错分析】因为最后一个字符的ASCII值要和第一个宁符的ASCII值相加,所以在实施变换前,要把第一个字符的ASCII值存入到一个字符变量中保存起来。字符串的逆转要分别记录字符串的头部和尾部位置,循环的终止条件为字符串的中间位置。
  【考点链接】字符串的逆转、字符的变换。

责任编辑:小草

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