首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
读函数ReadDat()实现从文件ENG28.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数 encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用写函数WriteDat()把结果xx
读函数ReadDat()实现从文件ENG28.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数 encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用写函数WriteDat()把结果xx
admin
2009-02-24
30
问题
读函数ReadDat()实现从文件ENG28.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数 encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用写函数WriteDat()把结果xx输出到文件PS28.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。
原始数据文件存放的格式是:每行的宽度均小于80个字符
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include 〈stdio.h>
#include 〈string.h>
#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("数据文件ENS28.IN不能打开! \n\007");
return;
}
encryptChar ();
WriteDat ();
}
int ReadDat (void)
{
FILE *fp;
int i = 0;
unsigned char *p;
if((fp = fopen("ENG28.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("PS28.DAT", "w");
for (i = 0; i 〈 maxline; i++)
{
printf("%s\n", xx
);
fprintf(fp, "%sin", xx
);
}
fclose (fp);
}
选项
答案
void encrypt Char() { int i; char *pf; for (i=0; i〈maxline; i++) { pf=xx [i]; while (*pr !=0) { if ((*pf*11%256>=’a’ && *pf*11%256〈=’z’) || *Pf*11%256〈=32) { /*如果计算后的值小于等于32或对应的字符是小写字母*/ pf++; /*则不作任何操作,取下一个数进行处理*/ continue; } *p f=*pf*11%256; /*否则用新字符来替代这个字符*/ pf++; /*取下一个字符*/ } } }
解析
本题主要考查用指针变量来控制字符数组,由于要对已有二维字符数组的所有元素逐个处理,因此,需要定义一个字符指针变量来控制原二维数组的各行。当前行如果确定下来,用指针的移动就可以依次扫描该行的所有字符元素,每得到一个字符就对它进行条件判断。根据题意,条件用“if ((*pf*11%256>=’a’&&*pf*11%256〈=’z’)||*pf*11%256〈=32)”语句来实现。如果该字符不满足上述条件,就用一个新的字符来替代,新的字符是当前字符乘以11的结果再去与256取余,处理完毕后,指针去取下一个字符。如果该字符满足所给条件,将不做任何操作,指针直接下移,去取下一个字符,对下一个字符进行处理。
转载请注明原文地址:https://www.kaotiyun.com/show/lRYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
在计算机的应用领域中,CAI表示
在关系数据库中,下列说法不正确的是
在排序过程中,比较次数与序列的初始位置无关的排序方法是
在计算机上,高级语言程序一般称为【】,不能直接执行,必须将他们翻译成具体机器的机器语言程序才能执行,这种机器语言程序又称为目标程序。
在嵌入式SQL中,______是SQL和主语言的接口。
冯.诺伊曼结构的计算机有5大功能部件组成:运算器、控制器、【】、输入设备和输出设备。
下述哪一条不是局部E-R图集成为全局E-R图时可能存在的冲突?Ⅰ.属性冲突Ⅱ.结构冲突Ⅲ.命名冲突Ⅳ.模型冲突
在顺序表(6,10,16,18,25,28,30,48,50,52)中,用二分查找法查找关键码值20,则需要进行关键码比较次数为【】。
在SQLServer2008中,建立索引视图的目的是为了提高数据查询的效率。下列关于索引视图的说法,错误的是()
云计算包含互联网上的应用服务及在数据中心提供这些服务的软硬件设施,通常包括软件即服务、平台即服务、基础设施即服务。其中_______即服务是指通过网络提供操作系统和相关服务,而无需下载或安装。
随机试题
患儿,女,10岁。手掌着地跌伤,右肘肿痛,功能受限15小时,查:左肘关节及前臂明显肿胀,压痛,伴屈位畸形,手部皮肤苍白,发凉,麻木,桡动脉搏动微弱,测前臂组织压为7.3kPa。X线检查:肱骨髁上骨折。据病程特点首选何种处理
左旋多巴的作用是:溴隐亭的作用是:
托马斯.杰弗逊
2011年11月29日4时,A铁矿390平巷盲竖井的罐笼在提升矿石时发生卡罐故障,罐笼被撞破损后卡在距离井口2.5m处,当班绞车工甲随即升井向矿长乙和维修工丙报告后,乙和丙下井检修。丙在没有采取任何防护措施的情况下,3次对罐笼角、井筒护架进行切割与焊接,切
《工作场所空气中有害物质监测的采样规范》(GBZ159--2004)中规定了采样点的选择原则,其中不包括()。
背景资料:某机电安装公司在南方某市承包了一个油库改造项目。工程范围包括新增2个3000m3储油罐,对原有部分输油管道进行改造。其中有一种管材该公司没有焊接过,也没有进行过类似材质的管道焊接。整个改造工程6月30日开工,工期为120天。中间只允许罐
甲公司2013年6月发生以下经济业务:业务一:甲公司向银行借入半年期的借款500000元,存入银行。业务二:甲公司向乙公司购入A材料一批,价款为30000元,增值税额为5100元,款项尚未支付,材料已验收入库。业务三:甲公司提
下列不属于ETF相关信息披露义务人应遵守的业务规则是()。
甲公司是一家多元化的集团企业,旗下包括钢铁、电子信息和金融业务。最近国家出台了对钢铁产业进行限制发展的决策,不再批准新的钢铁项目。对于甲公司而言,要想继续扩大钢铁业务的规模,则下列选项中适合该企业的具体途径包括()。
坚持走中国特色新型工业化、信息化、城镇化、农业现代化道路的深刻内涵是
最新回复
(
0
)