早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

函数ReadDat实现从文件in.dat中读取一篇英文文章存入到字符串数组XX中;请编制函数CharConvA,其函

题目

函数ReadDat实现从文件in.dat中读取一篇英文文章存入到字符串数组XX中;请编制函数CharConvA,其函数的功能是:以该文章中的行为单位把字符串中的最后一个字符的ASCII值右移4位二进制位,高位补0后加倒数第二个字符的 ASCII值,得到最后一个新的值,倒数第二个字符的ASCII值右移4位二进制位,高位补0后加倒数第三个字符的ASCII值,得到倒数第二个新的值,以此类推一直处理到第二个字符。注意:第一个新的值与上述处理不同,第一个字符的ASCII值加原最后一个字符的ASCII值,得到第一个新的值。得到的新值分别存放在原字符串对应的位置上,之后把已处理的结果仍按行重新存入数组中XX最后Xmain函数调用函数WriteDat把结果XX输出到文件out.dat中。 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格,并也按字符处理。 注意:部分源程序存放在test.g文件中。 请勿改动主函数main、读数据函数ReadDat和输出数据函数WriteDat的内容。

参考答案
正确答案:
【审题关键句】字符的ASCII值右移4位二进制位,高位补0后加其前一个字符的ASCII值,依次向前直到第二个字符,第一个字符则是原第一个字符的ASCII值加最后一个字符的ASCII值。
【解题思路】
定义循环变量i、j和字符变量tmp。
在for循环语句中,循环变量i从0开始,依次递增直到其值等于文章最大行数maxline。在循环体中,首先把第i行字符串的最后一个字符赋给字符tmp,通过表达式“strlen(xx[i])一1”可以得到第i行最后一个字符的数组下标值;然后再继续通过一个for循环从文章第i行字符串的最后一个字符开始,每循环一次循环变量减1,字符xx[i][j]的ASCII码的二制位右移4位与其前一个字符xx[i][j-1]的ASCII码之和赋给字符)XX[i][j],直到第i行字符串的第二个字符为结束;最后,将第i行字符串的最后一个字符的ASCII码值与第i行字符串的第一个字符的ASCII码值之和赋给第一个字符。
【参考答案】