全国计算机等级三级网络技术机试练习习题(18)
来源:优易学  2010-1-14 20:16:09   【优易学:中国教育考试门户网】   资料下载   IT书店
  第18套上机考试试题
  函数Rdata()实现从文件IN.dat中读取一篇英文文章,存入到字符串数组string中,请编写函数CharRigbt0,其功能是:以行为单位把字符串中的最后一个字符的ASCII值右移4位后加倒数第二个字符的ASCII值,得到最后一个新的字符;倒数第一个字符的ASCII值右移4位后加倒数第三个字符的ASCII值,得到倒数第二个新的字符;依此类椎,一直处理到第二个字符;第个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的字符。得到的新字符分别存放在原字符串对应的位置上,最后已处理的字符串仍按行重新存入字符串数组string中。最后调用函数Wdata(),把结果string输出到文件OUT.dat中。原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
  注意:部分源程序已经给出。请勿改动主函数main()、读函数Rdata()和写函数Wdata()的内容。  

  第18套试题答案及详解
  【审题分析】分析题目可知,本题只要实现CharRight()函数的功能即可。CharRight()函数要实现的功能是:按“将字符的ASCII值右移4位并加上该字符前面的一个字符的ASCII值等到新的字符,然后存在原位”的替代关系,将字符串数组string中的字符全部替换。因此解答本题的关键在于读取字符串数组中的字符,然后转换成ASCII码值,最后进行替换运算。
  【解题思路】这里我们通过for循环语句来实现读取字符串数组中的所有字符。当自变量i从0递增到maxline时,就完成了对一篇文章每一行的扫描。对一行的字符串数组,首先利用字符串函数strlen求出字符串数组string[i]的长度输给变量str1,把字符串中的最后一个字符赋给ch;然后在for循环语句中当自变量J从str1-1递减到0时,对每一个字符的ASCII值右移4位,右移4位的字符与其前一个字符相加,两者的和仍然存入字符串数组元素string[i][j]中:最后替换第一个字符时将其ASCII值与ch相加,得到第一个新的字符。
  【参考答案】
  

  【易错分析】字符的ASCII值右移4位,用表达式string[il[j]>>=4表示。
  【考点链接】字符的移位运算。

责任编辑:小草

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