首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结
admin
2009-02-24
25
问题
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS18.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。
原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include〈conio.h>
#include〈ctype.h>
unsigned char xx[50] [80];
int maxline = 0; /* 文章的总行数 */
int ReadDat (void);
void WriteDat(void);
void encryptChar()
{
}
main ( )
{
clrscr ( );
if (ReadDat ())
{
printf("数据文件ENS18.IN不能打开! \n\007");
return;
}
encryptChar ();
WriteDat ();
}
int ReadDat (void)
{
FILE *fp;
int i=0;
unsigned char *p;
if((fp = fopen("ENG18.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(void)
{
FILE *fp;
int i;
fp = fopen ("PS18.DAT", "w");
for(i = 0; i〈maxline; i++)
{
printf("%s\n", xx
);
fprintf(fp, "%s\n", xx
);
}
fclose (fp);
}
选项
答案
void encryptChar() { int i; char *pf; for (i=0; i〈maxline; i++) { pf=xx [i]; while (*pf !=0) { if((*pf*11%256>=’0’ && *pf*11%256〈=’9’) || *pf*11%256〈=32) {pf++;continue;} /*如果计算后的值小于等于32或f(p)对应的字符是数字0至9,则该字符不变*/ *pf=*pf*11%256; /*否则按给定的替代关系进行替代*/ pf++; } } }
解析
本题主要考查用指针变量来控制字符数组,由于要对已有二维字符数组的所有元素逐个处理,因此,需要定义一个字符指针变量来控制原二维数组的各行,当前行如果确定下来,用指针的移动就可以依次扫描该行的所有字符元素,每得到一个字符就对它行条件判断,根据题意,条件用“if(*pf*11%256>=’0’ && *pf*11%256<=’9’)||*pf*11%256<=32)”语句来实现,如果该字符不满足上述条件,就用一个新的字符来替代,新的字符是当前字符乘以11的结果再去与256求余数。处理完毕后,指针去取下一个字符。如果该字符满足所给条件,将不做任何操作,指针直接下移,去取下一个字符,对下一个字符进行处理。
转载请注明原文地址:https://kaotiyun.com/show/FRYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
用户界面是用户和数据库系统间的一条分界线,在分界线之下,用户是不可知的,用户界面定义在______。
Oracle产品中CASE工具的名称是______。
文件系统提供按名存取功能,要求用户在读文刊:之前调用【】文件操作。
关于数据库技术的发展历史,下列说明不正确的是
在数据库管理系统中,下面哪个模块不是数据库存取的功能模块?
一台主机的IP地址为202.112.144.125,子网掩码为255.255.255.248,那么这台主机的主机号为()。
Internet中的计算机与路由器的IP地址采用分层结构,它由______与主机地址两部分组成。
为了实现数据终端设备之间的通信,在通信网络中必须设置交换中心,以便为需要通信的数据终端建立通信链路,通信结束后再拆除链路。目前在Internet网络中使用的交换技术主要是
在分布式数据库中,查询处理和优化比集中式数据库要复杂得多,其中查询优化需要考虑的主要因素包括I/O代价、CPU代价和通信代价。一般而言,分布式数据库查询优化的首要目标是()。
Elgamal公钥体制在原理上基于下面哪个数学基础________。
随机试题
艺术情感传达论的主要代表人物是()
预计待评估土地的年总收入为18万元,年总费用为10万元,剩余使用年限为10年,折现率为10%,则其评估价值最接近于()
该患者可能患有的疾病为下列哪项病理变化对该病的诊断最具价值
处于成长阶段的行业特点包括()。
现代许多领导者认为,领导者必须善于梦想、提出远景、确定目标、制定战略、动员群众,而梦想和远景来自领导者和下属的心声,因此优秀的领导者必须富有()。
甲乙两人在玩一个沙盘游戏,比赛的规则是:在一个分为50个单位的区域上,每人轮流去划定这些区域作为自己的领地,每次可以划定1~5个单位,谁作为最后划定区域的人则为胜利者,如果由甲划定,那么甲一开始要划定()个单位,才能保证自己获胜。
大约5世纪到15世纪这段时间,被称作“中世纪”,西方语言中是“中间时代”或者“中间时期”的意思,因为这是欧洲【21】文化期与“【22】”期之间的时代。中世纪的教廷宣扬三位一体、原罪说等【23】,设立了宗教裁判所以惩罚【24】。中世纪末期,著有《【25】》的
在定义一个类模板时,模板形参表是用一对括号括起来的,所采用的括号是()。
用高级程序设计语言编写的程序
W:Doyouknowthegirlinredunderthetree?M:【D1】______W:Right.Doyouknowher?M:Ofcourse.She’sLily.【D2】______W:I
最新回复
(
0
)