全国计算机等级三级网络技术机试练习习题(27)
来源:优易学  2010-1-14 20:22:42   【优易学:中国教育考试门户网】   资料下载   IT书店
  第27套上机考试试题
  函数Rdata0实现从文件IN.dat中读取一篇英文文章存入到字符串数组string中,请编写函数CharLeft(),其功能是:以行为单位把字符串中所有字符的ASCII值左移4位,如果左移后,其字符的ASCII值小于等于32或人于100,则原字符保持不变,否则就把左移后的字符ASCII值再加卜.原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组string中,最后调用函数Wdata(),把结果string输出到文件OUT.dat中。
  原始数据文件存放的格式是:每行的宽度均小于80个字符(含标点符号和空格)。
  注意:部分源程序已经给出。请勿改动主函数main()、读数据函数Rdata()和输出数据函数wdata()的内容。  

  第27套试题答案及详解
  【审题分析】分析题目可知,本题只要实现CharLeft()函数的功能即可。CharLeft()要实现的功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,如果左移后其字符的ASCII值小于等于32或人于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。因此解答本题的关键在于如何实现字符问的转换,以及ASCII值的左移运算。
  【解题思路】在for循环语句中当自变量i从0递增到maxline时,就完成了对一篇文章每一行的扫描。对一行的字符串数组,首先利用字符串函数strlen求出字符串数组string[i]的长度输给变量str:然后在for循环语句中当自变量i从0递增到str时,对每一个字符的ASCII码值左移4位;再判断左移4位得到的值是否大于32且小于等于100,如果条件成立,则原字符的ASCII码值与左移4位后得到的字符的ASCII码值相加,相加之和仍然存入字符串数组元素string[i][j]中。
  【参考答案】 

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

责任编辑:小草

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