首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx
admin
2009-02-19
34
问题
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx输出到文件PS49.DAT中。
替代关系:f(p)=p*11mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是大写字母或计算后f(p)的值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。
原始数据文件的存放格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include
#include
#include
#include
unsigned char xx[50] [80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void encryChar()
{
}
void main()
{
clrscr();
if(ReadDat())
{
printf("数据文件ENG49.IN不能打开!\n\007");
return;
}
encryChar();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
unsigned char*p;
if((fp=fopen("ENG49.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("ps49.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) /*如果原字符是大写字母或计算后的值小于等于32*/ { pf++; /*则此字符不变,取下一个字符*/ continue; /*退出此次循环*/ } *pf=*pf*11%256; /*如果不满足条件,则用新字符替代原字符*/ pf++; /*取下一个字符*/ } } }
解析
本题考查的知识点如下:
(1)字符对应的ASCH码。
(2)判断结构中多个条件的“或”运算。
(3)退出一次循环。
在C语言中,字符可参与任何整数运算。实际上,是字符的ASCH码参与了运算。所以可以直接用字符代入f(p)的关系式中求出替换字符。若原字符是大写字母或玎p)≤32,则该字符不变。只有当字符大于等于A小于等于z时,才是大写字母,所以这两个条件之间用“与”运算。而字符是大写字母与f(p)≤32之间为或的关系,所以这两个条件之间用“或”运算。若字符不变,则可不必计算替换字符,使用continue退出本次循环,进入下一次循环的条件判断中。因为这里不是直接退出循环结构,所以不能使用break语句。
转载请注明原文地址:https://kaotiyun.com/show/HESZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
如下关于QNX操作系统的说法,正确的是()。
实时操作系统(RTOS)有3个主要的实时指标——响应时间、吞吐量和生存时间,响应时间的具体指标是:【67】时间和【68】时间。
关于ARM处理器的MMU,以下说法错误的是()。
GNU开发工具套件中的C语言编译器,其英文简称是【79】。它所能编译的目标机处理器包括X86、ARM、PowerPC等体系结构的处理器。针对于ARM体系结构的目标机而言,该C语言编译器的命令书写格式中,其带前缀的命令是【80】。
已知R1=0x20000000,R0=0x55667788,在大端模式下执行ARM指令STRR0,[R1]之后,0x20000003中的值为()。
电源电路为整个嵌入式硬件系统提供能量,是整个系统工作的基础。嵌入式系统常用的电源模块主要有:AC—DC(交流变直流)、【73】一DC(直流到直流)模块以及【74】(lowdropoutregulator,低压差的稳压器)(均填写用大写英文字母表示的简称
某ARM处理器内部某功能部件对存储器的保护功能,提供了简单代替存储器管理部件的方法来管理存储器,这个部件用英语缩写为()。
嵌入式系统广泛使用一种专用于数字信号处理的微处理器,它能显著提高声音、图像和视频等数字信号的处理效率,这种处理器的英文缩写名是【41】,其特点之一是指令系统增加了SIMD类型的一些特殊指令,SIMD表示【42】。
μC/OS—Ⅱ是目前常用的嵌入式操作系统之一,其内核只提供【69】调度、任务间通信与同步、任务管理、时间管理和【70】管理等基本功能,资源消耗非常小。
下列关于μC/OS–II操作系统任务调度的陈述中,不正确的是()。
随机试题
女,68岁。因呕吐,腹泻,意识障碍2天入院,既往有糖尿病史,查血糖44.2mmol/L,疑高渗性非酮症性糖尿病性昏迷。拟用公式计算患者渗透压,应进一步检查
月经周期中期能起正反馈子下丘脑-垂体的激素是
眩晕最早见于哪本医著?()
有价证券之所以能够买卖是因为它( )。
在波士顿矩阵中,幼童区的产品特征是()。
纯种赛马是昂贵的品种。一种由遗传缺陷引起的疾病威胁着纯种赛马,使它们轻则丧失赛跑能力,重则瘫痪甚至死亡。因此,赛马饲养者认为,一旦发现有此种缺陷的赛马应停止饲养。这种看法是片面的。因为一般地说,此种疾病可以通过饮食和医疗加以控制。另外,有此种遗传缺陷的赛马
设f(x,y,z)=ex+y2z,其中z=Z(x,y)是由方程x+y+z+xyz=0所确定的隐函数,则f’x(0,1,一1)=_________.
Readthefollowingpassageandanswerquestions19~25.Forquestions19~25,choosethecorrectanswerfromA,B,CandD.
Commercialpapermayeitherbedealerplacedordirectlyplaced.Ifitisdealerplaced,the(61)sellsitspromissorynotes
A、Sheworeanunsafeseatbelt.B、Shedrovetooquickly.C、Shewasacarelessdriver.D、Shedidn’twearseatbelt.D对话中,女士问男士Jan
最新回复
(
0
)