首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件ENG96.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出
函数ReadDat()的功能是实现从文件ENG96.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出
admin
2010-06-27
71
问题
函数ReadDat()的功能是实现从文件ENG96.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件ps96.dat中。
替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是小写字母或计算后f(p)的值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出,原始数据文件的存放格式是每行的宽度均小于80个字符。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
unsigned char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void encryChar()
{
}
void main()
{
clrscr();
if(ReadDat())
{
printf("数据文件ENG96.IN不能打开!\n\007");
return;
}
encryChar();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
unsigned char *p;
if((fp=fopen("ENG96.IN","r"))==NULL) return 1;
while(fgets(xx
,80,fp)!=NULL)
{
p=strchr(xx
,’\n’);
if(p) *p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void WriteDat()
{
FILE *fp;
int i;
fp= fopen("ps96.dat","w");
for(i=0;i<maxline;i++)
{
printf("%s\n",xx
);
fprintf(fp,"%s\n",xx
);
}
fclose(fp)
}
选项
答案
void encryChar() { int i; char *pf; for(i=0;i<maxline;i++) { pf=xx[i]; /*指针pf指向该行第一个字符*/ while(*pf!=0) { if((*pf>=’a’&& *pf<=’z’) || *pf*11%256<=32) { pf++; /*则不做改变,指向下一个字符*/ continue; /*退出本次循环*/ } /*如果原字符是小写字母或计算后的值小于等于32*/ *pf=*pf*11%256; /*否则用新字符取代原有字符*/ pf++ /*指向下一个字符*/ } } }
解析
本题考查的知识点如下;
(1)字符对应的ASCII码。
(2)判断结构中多个条件的“或”运算。
(3)退出一次循环。
(4)二维数组的访问。
本题中,将数据存放在一个二维数组中,可以定义一个指向数组每一行的指针。初始时,指针指向该行的第一个元素,随着地址增加,指针指向后面的元素。在C语言中,字符可参与任何整数运算。实际上,是字符的ASCII码参与了运算。所以可以直接用字符代入f(p)的关系式中求出替换字符。若原字符是小写字母或f(p)≤32,则该字符不变。只有当字符大于等于a小于等于2时,才是小写字母,所以这两个条件之间用“与”运算。而字符是小写字母与f(p)≤32两条件满足一个即可,所以这两个条件之间用“或”运算。若字符不变,则可不必计算替换字符,使用continue跳出本次循环,进入下一次循环的条件判断中。因为这里不是直接退出循环结构,所以不能使用break语句。
转载请注明原文地址:https://kaotiyun.com/show/kq5Z777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
按逻辑功能区分,SIP系统由4种元素组成,它们是重定向服务器、注册服务器和()。
下列选项中,是SIP协议规定的用户标识的是()。
在民航订票系统中,每个订票点在票务服务器上发起了请求订票进程,这些进程相互之间的关系是()。
在以下协议中,哪些属于组播管理协议?()
操作系统在对磁盘的访问中,优化下列哪个时间可以显著改善磁盘的读写性能?()
UNIX操作系统中,对文件系统中空闲区的管理通常采用()。
采用多道程序设计技术可以()。
人们使用Telnet服务的主要目的是()。
在OSI参考模型中,提供路由选择功能的层次是()。
数据库管理系统是位于用户和【】系统之间的一个数据管理软件。
随机试题
Whatarethespeakerstalkingabout?
从键盘输入字符串a和字符串b,实现在字符串a中的最小元素后面插入字符串b。
男性,14岁。受凉后咳嗽,喘息2天,自服红霉素、氨茶碱(剂量不详)症状无缓解。无心脏病史。体检:口唇发绀,全身火汗,双肺可闻哮鸣音,心率120次/分,律齐,未闻及病理性杂音。最可能的诊断是
A.颗粒细胞B.内膜细胞C.卵母细胞D.成纤维细胞卵巢产生雄激素的细胞是
类风湿关节炎患者出现急性关节疼痛时,不应采取的护理措施是()。
泌尿系感染是脊髓损伤的一个严重并发症,有关脊髓损伤后并发泌尿系感染,以下叙述正确的是
为了戒除烟瘾,在每次吸烟后,应用某种引起恶心、呕吐的药物,反复几次就再不想吸烟了。这种戒烟方法是
一吨土豆的价格是200元,一吨洋葱的价格是290元。如果土豆的价格1个月提高15%,而洋葱的价格保持不变。那么,要使一吨洋葱的价格低于一吨土豆的价格,需要()个月的时间。
注意事项1.本题本由给定资料与作答要求两部分构成。考试时限为150分钟。其中,阅读给定资料参考时限为40分钟,作答参考时限为110分钟。满分150分。2.监考人员宣布考试开始时,才可以开始答题。3.请在题本、答题卡指定位置填写自己的姓名,填涂准考证号
域模式最大的好处是具有【 】登录功能,用户只要在域中有一个账户,就可以在整个网络中漫游。
最新回复
(
0
)