首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx
admin
2009-02-19
23
问题
函数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://jikaoti.com/ti/SvC7FFFM
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
NiosII软核处理器的硬件抽象层(HAL)系统库是一个轻量级C/C++运行时环境,属于单线程的类UNIX运行库,关于它所提供的服务如下()项说法是错误的。
I2C总线被启动后,多个主机在每发送一个数据位时都要对SDA信号线电平进行检测,只要检测的电平与自己发出的电平__________【63】就会继续占用总线。总线控制遵循的原则是谁先发送__________【64】电平谁就会掌握对总线的控制权。
关于ARM嵌入式处理器的工作状态,以下说法错误的是()。
使用GNUGCC开发应用程序时,若源文件为test.c,用命令:arm—linux—gcc一g一otesttest.c对该源文件进行编译,然后运行【79】命令进入调试环境。在调试环境下,键入命令:filetest来加载被调试的文件,然后再用【80】命
μC/OS—Ⅱ操作系统可以定义的最大任务数是64个,最高优先级定为【71】,最低优先级取值为实际定义的最大任务数减【72】。
ARM处理器芯片内部的【59】组件包括ADC和DAC,有的还带有比较器等。这对于既需要处理【60】信号又需要处理模拟信号的混合系统的设计提供了较好的解决方案。
ARM处理器在大端模式下,如果R1=4,R0=0x400000FC,而指令LDRR2,[R0,R1]!执行后,R2=0xAABBCCDD,则0x40000100中的数据为【51】,R0中的值为【52】。
某食堂的售饭系统由一个后台数据库系统及若干个前台刷卡机组成,其基本功能具体描述如下:a、刷卡机的硬件组成中,除了必须的最小硬件系统外,还需要IC卡读写模块、8段LED组成的显示模块、键盘模块、蜂鸣器模块、RS一485通信模块等。b、客户需要事先办理本系
嵌入式Linux操作系统由用户进程、OS服务组件和Linux内核3个部分组成,下面叙述中错误的是()。
下图是嵌入式系统硬件部分的逻辑组成及其与外部世界关系的示意图,其中CPU中的组成部分A是___________【41】;组成部分B是___________【42】。
随机试题
患者,无汗发热,头面红肿掀痛,目不能开,咽喉不利,舌燥口渴,舌红苔白兼黄,脉浮数有力。辨证为风热疫毒之大头瘟。方剂宜选用
患者,女,33岁。经期小腹隐痛,喜温喜按,阴部空坠不适;经血量少,色淡质清;面色少华,神疲乏力;舌质淡,苔薄,脉细无力。治疗宜首选
我国的企业法律顾问制度诞生于()。
按照法律规定,不得在公开开庭时出示的证据是()。
在措施费计算中,对于大型机械设备进出场及安拆费的计算一般采用( )。
根据下列资料。回答下列题。2011年境外来浙江工作专家25883人次。比2010年增长12.1%,2011年占同期全国总人次的比重为4.9%,比2010年提高0.1个百分点。2010—2011年浙江外商投资企、事业单位聘用的境外专家
体现了教师追求真理、探索真理、捍卫真理的科学精神的优秀品质是()。
隐血试验前3天,患者应禁食()。
亚洲富裕经济体的政府元首、最高级官员都享受高薪和优厚的津贴。此政策是为了把一流的人才吸引到政府中并防止贪污。在新加坡,香港和日本,最高级的官员的薪酬都高于欧美官员。分析家说,基于这个原因,这些亚洲经济体以拥有最廉洁和最具效率的政府而闻名便不是意外了。最能准
【王与马共天下】西北师范大学2014年历史学综合真题;南京大学2015年中国古代史基础真题;厦门大学2016年历史学基础真题;湘潭大学2017年中国史真题;江西师范大学2018年中国通史真题;南京大学2018年中国古代史真题;清华大学2018年历史学真题
最新回复
(
0
)