首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx
函数ReadDat()的功能是实现从文件ENG49.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WfiteDat()把结果xx
admin
2009-02-19
61
问题
函数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://www.kaotiyun.com/show/HESZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
在右图所示的高端嵌入式系统的软件组成图中,A应为【65】程序,B应为【66】程序。
片上系统(SOC)是嵌入式处理芯片的一个重要品种,下列叙述中错误的是()。
嵌入式应用程序经过交叉工具链生成映像文件之后,需要下载到【77】进行调试。调试完毕后映像文件必须由专用工具烧写到ROM中去,这种烧写工具俗称【78】。
微软公司开发的下列操作系统中,属于嵌入式操作系统的是()。
以下ARM指令中源操作数属于寄存器间接寻址的指令是()。
下面关于S3C2410中断控制器的叙述中,错误的是()。
ARM指令完成的功能是如果清除R7中的bit0,1,5位,正确的指令是()。
某食堂的售饭系统由一个后台数据库系统及若干个前台刷卡机组成,其基本功能具体描述如下:a、刷卡机的硬件组成中,除了必须的最小硬件系统外,还需要IC卡读写模块、8段LED组成的显示模块、键盘模块、蜂鸣器模块、RS-485通信模块等。b、客户需要事先办理本系
下面关于S3C2410电源管理的叙述中,错误的是()。
设有关系R=(A,B,C),与SQL语句selectdistinctA,CfromRwhereB=5等价的关系代数表达式是Ⅰ.πA,C(σB=5(R))Ⅱ.σB=5(πA,C(R))
随机试题
对企业全部材料实行分类管理时,应重点控制的是()
常见伴有腹膜刺激征的情况有()
关于肩关节周围炎,下列哪项是错误的
下列不属于商用房贷款常用还款方式的是(卜
中外合作经营企业成立后,经合作各方一致同意,可以委托合作一方进行经营管理,另一办不参加管理。()
丙公司2×15年6月30日取得非关联方丁公司60%的股权,支付银行存款9000万元。当日,丁公司可辨认净资产账面价值为9500万元,公允价值为10000万元。2×17年6月30日,丙公司处置了丁公司40%股权,取得处置价款为8000万元,处置后对丁公司的持
如今,电脑、手机风行于世,“键盘手”“拇指族”便与日俱增。如此这般之下,出现年轻一代“提笔忘字”的现象,也就越来越寻常了。平素里总以为轻轻松松就能打出来的字,怎么换了用笔去写就要抓耳挠腮呢?有关专家对此已是见怪不怪,并给出了一个专业术语,叫做“电脑失写症”
玩具店的橱窗里有四种玩具,把四种玩具的价格(均为整数)两两相加得到6个不同的数字.已知其中五个数字为:144、130、125、113、99。则四种玩具中,价格最高的比价格最低的贵()元。
PASSAGETHREEWhatdoestheexperimentconductedbyresearchersinparagraphfoursuggest?
You’retalkingtomeasifI______anexpert.
最新回复
(
0
)