三级信息管理技术机试-231.docx

上传人:scccc 文档编号:11938569 上传时间:2021-11-07 格式:DOCX 页数:3 大小:11.25KB
返回 下载 相关 举报
三级信息管理技术机试-231.docx_第1页
第1页 / 共3页
三级信息管理技术机试-231.docx_第2页
第2页 / 共3页
三级信息管理技术机试-231.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《三级信息管理技术机试-231.docx》由会员分享,可在线阅读,更多相关《三级信息管理技术机试-231.docx(3页珍藏版)》请在三一文库上搜索。

1、级信息管理技术机试 -231( 总分: 100.00 ,做题时间: 90 分钟 )、上机题( 总题数: 1 ,分数: 100.00)1. 函数 ReadDat() 的功能是实现从文件 ENG98.IN 中读取一篇英文文章,存入到字符串数组 xx 中。请编制 函数 encryChar() ,按给定的替代关系对数组 xx 中所有字符进行替代,仍存入数组 xx 的对应的位置上, 最后调用 函数 WriteDat() 把结果 xx 输出到文件 ps98.dat 中。替代关系, f(p)=p*11 mod256(p 是数组 xx 中某一个字符的 ASCII 值, f(p) 是计算后新字符的 ASCII

2、值 ), 如果计 算后 f(p) 的值小于等于 32 或其 ASCII 值是奇数,那么该字符不变,否那么将 f(p) 所对应的字符进行替 代。 注意:局部源程序已给出。原始数据文件的存放格式是每行的宽度均小于 80 个字符。 请勿改动主函数 main() 、读函数 ReadDat() 和写函数 WriteDat() 的内容。试题程序:#include #include #include #include unsigned char xx5080;int maxline=0;int ReadDat(void);void WriteDat(void);void encryChar() void m

3、ain(clrscr(); if(ReadDat()printf( 数据文件 ENG98. IN 不能翻开 !/n/007);return;encryChar();WriteDat();int ReadDat(void)FILE *fp;int i=0; unsigned char *p;if(fp=fopen(ENG98.IN,r)=NULL) return 1; while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,/n); if(p) * ?p=0;正确答案: (void encryChar()i+; maxli ne二i; fclose(fp); retu

4、rn 0;void WriteDat()FILE *fp;int i;fp= fope n(ps98.dat,w); for(i=0;i maxline;i+)prin tf(%s/n,xxi);fprin tf(fp,%s/n,xxi);fclose(fp);分数:100.00 )(2) 判断结构中多个条件的“或运算。(3) 退出一次循环。二维数组的访问。在C语言中,字符可参与任何整数运算。实际上,是字符的ASCII码参与了运算。所以可以直接用字符代入f(p)的关系式中求出替换字符。假设f(p) 32或其ASCII值为奇数,那么该字符不变。两条件满足一个即可,所以这两个条件之间用“或运算。

5、一个数除以2取余所得的数不为0,那么此数为奇数。假设字符不变,那么可不必计算替换字符,使用continue跳出本次循环,进入下一次循环的条件判断中。因为这里不是直接退出循环结构,所以不能使用break语句。此题中,将数据存放在一个二维数组中,可以定义一个指向数组每一行的指针。初始时,指针指向该行的第一个元素,随着地址增加,指针指向后面的元素。int i;char *pr;for(i=0;i maxline;i+)pf=xxi; /*指针pf指向该行第一个字符 */while(*pf!=0)if(*pf*11%256)%2!=0 | *pf*11%256 =32) /*如果计算后的值小于等于32或其ASCII值是奇数*/ pf+; /*那么不做改变,指向下一个字符 */ continue; /*退出本次循环*/?pf=*pf*11%256; /*否那么用新字符取代原有字符 */pf+; /*指向下一个字符 */)解析:解析此题考查的知识点如下;(1)字符对应的 ASCII码。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1