首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结
admin
2009-02-19
21
问题
函数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("数据文件 ENG18.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/UESZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
嵌入式系统使用的存储器有多种类型,按照所处物理位置可分为【57】存储器和片外存储器以及外部存储设备,按照存储信息的不同又可分为程序存储器和【58】存储器。
在基于ARM微处理器为核心的硬件平台上,开发其Linux环境下的应用程序expl.c。若需要编译后生成expl.c对应的汇编程序,应使用的命令是()。
下面关于嵌入式系统存储器的叙述中,错误的是()。
以下ARM指令中源操作数属于寄存器间接寻址的指令是()。
下面有关GNU工具套件的描述语句中,不恰当的是()。
由于Bootloader的实现依赖于CPU的体系结构,因此大多数Bootloader都分为stagel和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stagel中,且使用【73】语言来实现,以达到短小精悍的目的。而st
在μC/OS—Ⅱ操作系统中,当处于运行态的任务执行节拍延时函数OSTimeDly()后,该任务将转入【73】态。一旦预定的延时时间达到,该任务立即转入【74】态。
手机的常用功能之一是收发短消息。按规定,一条短消息最多可包含140个英文字符或70个汉字信息。假设所发短消息由60个汉字和30个英文字母组成,则该短消息的长度为【45】字节,它将按【46】条短消息收费。
在μC/OS—Ⅱ中,OSSched()函数是任务调度的前导函数,用于判断进行任务调度的条件是否满足。下列满足条件的变量值为()。
设有3个关系,分别是;学生关系S(学号S#,姓名SN,系名SD,年龄SA)、课程关系C(课程号C#,课程名CN,任课教师CT)和学生选课关系SC(学生号S#,课程号C#,成绩G),试写出查询计算机科学系“CS”全体学生的关系代数表达式【】。
随机试题
氧疗过程中需评估哪些状况,以判断用氧效果:
安静时,产热最多的器官是()。
下列说法中属于法的普遍性的含义的有()。
()是商业银行监管的首要环节,是保障银行机构稳健运行和金融体系安全的重要基础。
检查到的有不合格产品的建材企业占全国监督企业总数的百分比为:()检查到的有不合格产品企业的个数是:()
商品的价值
请使用VC6或使用【答题】菜单打开考生文件夹proj2下的工程proj2,其中有整数栈类IntList、顺序栈类SeqList和链接栈类LinkList的定义。请在程序中的横线处填写适当的代码并删除横线,以实现上述类定义。此程序的正确输出结果应为:
A、Itwascreatedmainlyforscientificresearch.B、Itworksbetterinfineweatherconditions.C、Itmustbelocatedonatleast
TopicALetterofConsolationForthispart,youareallowed30minutestowritealettertoconsoleyourfriendwhosefamilyha
在21世纪初,我国出现了免费的地铁报(subwaynewspaper)。北京、上海、广州等大城市都有自己的地铁报。这些报纸通常在上班高峰期时在地铁站里发放。越来越多的人因为这些地铁报而重拾文字阅读的习惯。地铁报之所以受欢迎是因为它们非常了解受众读者(ta
最新回复
(
0
)