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

  第59套上机考试试题
  函数RData()实现从文件IN.dat中读取一篇英文文章,存入到字符串数组original中;请编写函数encryptChar(),其功能是:按给定的替代关系对数组original中的所有字符进行替代后,仍存入数组original的对麻的位置上。最后调用函数WData(),把结果original输出到OUT.dat文件中。
  替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。
  原始数据义件存放的格式是:每行的宽度均小于80个字符。
  注意:部分程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。
  
  

 第59套试题答案及详解
  【审题分析】分析题目可知,题中需要解决的问题就是实现encryptChar函数的功能问题,而encryptChar函数的功能是:按给定的替代关系对数组original中的所有字符进行替代后,仍存入数组original的对应的位置上。因此本题的关键在于如何用C程序实现替代关系的运算。
  【解题思路】题13中的“如果原字符的ASCII值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代”,可转化为:如果原字符的ASCI值是奇数且计算后f(p)值大于32,则该字符用f(p)所对应的字符进行替代,否则不变。在程序中的语句是:if(*pf%2&&*pf*11%256>32)*pf=*pf*11%256。
  【参考答案】
  
  【易错分析】在“if(*pP/o2&&*pf*11%256>32)*pf=*pf*11%256;”这句中表达式*pf%2和表达式“*pf* 11%256>32”是与的关系,而不是或的关系。
  【考点链接】C语言的关系表达式的转换

责任编辑:小草

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