首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx
admin
2009-02-19
66
问题
函数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全国计算机三级
相关试题推荐
在ARM汇编语言中,小端模式下,通过伪指令MyDataDCD0x01234567在内存中定义了1个32位操作数,已知R0=0x56000012,则依次执行:LDRR1,=MyDataLDRHR0,[R1,#2]两条指令后,R0的值
下面关于嵌入式系统中使用的触摸屏的叙述中,错误的是()。
下面是关于AMBA总线的叙述:Ⅰ.按照AMBA规范,以ARM内核为基础的嵌入式处理芯片采用系统总线与外围总线的层次结构构建片上系统Ⅱ.AMBA的系统总线主要用于连接高带宽快速组件Ⅲ.AMBA的外围总线主要连接低带宽组件以及与外部相连的硬件组件Ⅳ.系
与通用计算机的操作系统相比较,下列各项中不属于嵌入式操作系统特点的是()。
嵌入式系统使用的存储器有多种类型,按照所处物理位置可分为片内存储器和【57】存储器以及外部存储设备,按照存储信息的不同又可分为【58】存储器和数据存储器。
下面关于S3C2410中断控制器的叙述中,错误的是()。
嵌入式Linux操作系统由用户进程、OS服务组件和Linux内核3个部分组成,下面叙述中错误的是()。
为提高SoC芯片设计效率,减少重复开发,通常将合格的经过验证的IC设计文件存储在数据库中,供反复使用。这些IC电路具有固定的不可再分解的功能特性,并受到知识产权保护,人们称之为“知识产权核”或“IP核”。按照IC设计文件的类型,IP核通常分为三种【41】、
如存储器的工作频率为333MHz,数据线宽度为32位,每个周期传输1次数据,则存储器的带宽=__________【63】MB/s。若存储器总线采用串行总线,以10位为一个数据帧(包含一个字节的存储数据),则总线带宽=总线频率/__________【64】。
ARM处理器中存储器保护单元英文简写为【53】,它允许ARM处理器【54】GB的地址空间定义为8对域,分别控制8个指令和8个数据内存区域。
随机试题
采用原子荧光法测定汞,其最低检测质量是()。
男,25岁,劳动后上腹痛1周。空腹痛及夜间痛,伴反酸、胃灼热、黑便3天。查体:血压120/80mmHg,HR80次/分,心肺(-),腹软,上腹轻压痛,无反跳痛,肝脾不大。化验检查:便潜血阳性,Hb105g/L。此患者最可能的诊断为
对于委托实施行政许可,下列选项描述错误的是()
在遗传决定论者看来,人的遗传素质决定着一切。()
某甲以某乙犯暴力干涉婚姻自由罪提起自诉,在某甲举证证明达到何种程度时,人民法院才能受理此案?()
缔约过失责任
【2013年第50题】根据某位国际问题专家的调查统计可知:有的国家希望与某些国家结盟,有三个以上的国家不希望与某些国家结盟;至少有两个国家希望与每个国家建交,有的国家不希望与任何一国家结盟。根据以上统计可以得出以下哪项?
如果一个有向图(25),则是一棵有向树。
信源用户A通过卫星链路向用户B传送帧长为4Kb的数据,假设传播延迟为90ms,数据速率是192kb/s,。若采用后退N帧ARQ协议通信,发送窗口为8,则最大链路利用率可以达到(15)。
Forthispart,youareallowed30minutestowriteanessayonprotectionofintangibleculturalheritage.Youressayshouldfoc
最新回复
(
0
)