首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
读函数ReadDat()实现从文件ENG28.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数 encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用写函数WriteDat()把结果xx
读函数ReadDat()实现从文件ENG28.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数 encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用写函数WriteDat()把结果xx
admin
2009-02-19
38
问题
读函数ReadDat()实现从文件ENG28.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数 encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用写函数WriteDat()把结果xx输出到文件PS28.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或f(p)对应的字符是小写字母,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。
原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include 〈stdio.h>
#include 〈string.h>
#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("数据文件 ENG28.IN不能打开! \n\007");
return;
}
encryptChar ();
WriteDat ( );
}
int ReadDat(void)
{
FILE *fp;
int i = 0;
unsigned char *p;
if((fp = fopen("ENG28.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("PS28.DAT", "w");
for (i = 0; i 〈 maxline; i++)
{
printf("%s\n", xx
);
fprintf(fp, "%skn", 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>=’a’ && *pf*11%256〈=’z’) || *pf*11%256〈=32) { /*如果计算后的值小于等于32或对应的字符是小写字母*/ pf++; /*则不作任何操作,取下一个数进行处理*/ continue; } *pf=*pf*11%256; /*否则用新字符来替代这个字符*/ pf++; /*取下一个字符*/ } } }
解析
本题主要考查用指针变量来控制字符数组,由于要对已有二维字符数组的所有元素逐个处理,因此,需要定义一个字符指针变量来控制原二维数组的各行。当前行如果确定下来,用指针的移动就可以依次扫描该行的所有字符元素,每得到一个字符就对它进行条件判断。根据题意,条件用“if((*pr*11%256>=’a’&&*pf*11%256〈=’z’)||*pf*11%256〈=32)”语句来实现。如果该字符不满足上述条件,就用一个新的字符来替代,新的字符是当前字符乘以11的结果再去与256取余,处理完毕后,指针去取下一个字符。如果该字符满足所给条件,将不做任何操作,指针直接下移,去取下一个字符,对下一个字符进行处理。
转载请注明原文地址:https://kaotiyun.com/show/rpcZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
与Microsoft网络用户一样,NetWare网络用户也是按_____位虚拟驱动程序组件实现的。
硬盘接口为主机和硬盘驱动器之间提供了数据交换的通路。目前PC机内部普遍采用SATA硬盘接口,它以______行方式传送数据。
将PC机组成以太局域网时必须用到网卡、中继器和集线器等设备,其中一种设备可用来对接收到的信号进行再生放大,扩大网络的传输距离,并通过它来连接网络中的各个节点机,把一个端口接收到的信息向所有端口分发出去,这种网络设备是【 】。
中断服务寄存器的作用是( )。
微处理器在执行一条指令时,主要将它分解成以下几个步骤去完成,其中顺序正确的是
微处理器各部件之间通过【 】交换信息。
Windows 2000的许多核心模块是以动态链接库形式出现的,Win32 API对应的所有函数也均包含在动态链接库中。动态链接库文件的文件扩展名通常是______。
GNU开发工具套件中包含了编译器、连接器、调试器等工具,其中GCC是编译器、连接器工具,【77】是调试器工具。若要对某应用程序进行调试,则在编译该应用程序时,要在编译命令中加人参数【78】。
某食堂的售饭系统由一个后台数据库系统及若干个前台刷卡机组成,其基本功能具体描述如下:a、刷卡机的硬件组成中,除了必须的最小硬件系统外,还需要IC卡读写模块、8段LED组成的显示模块、键盘模块、蜂鸣器模块、RS-485通信模块等。b、客户需要事先办理本系
小端模式下ARM指令序列如下:LDRR0,=0x13579246LDRR1,=0xl0000000STRR0,[R1,#8]!执行后,内存0x10000008中的值=__________【55】,R1=__________【56】
随机试题
患者男性,36岁。间断水肿1个月伴少尿1周。BP160/86mmHg,尿检:尿蛋白(+++),RBC15~20个/HP,血BUN12.8mmol/L,Cr565μmol/L。治疗采用
支气管哮喘的患者出现下面哪些情况提示病情严重或有合并症发生
甲、乙两软黏土地基土层分布如图5—1所示,甲地基软黏土厚度h1为8.0m,乙地基软黏土层厚度h2为6.0m,两地基土层物理力学指标相同当甲地基预压240天时地基固结度达0.8,问乙地基需要预压()天地基固结度也可达到0.8。[2005年真题]
()是风险管理的第一步。
建筑钢材最重要的力学性能是()。
未办理工商营业登记的,从事生产、经营的纳税人可以暂不办理税务登记。()
我国利率市场化的内容有()。
如果在审计报告中增加强调事项段,注册会计师应当采取的措施包括()。
甲公司和A公司适用的所得税税率均为25%。甲公司与A公司2016年度有关资料如下:(1)甲公司2016年1月1日发行股票10000万股取得A公司70%的股权,并能够对A公司实施控制。甲公司普通股股票每股面值为1元,发行日每股市价为2.95元,甲公司另
一、注意事项一、本试卷由给定资料与作答要求两部分构成。考试时限为150分钟。其中,阅读给定资料参考时限为40分钟,作答参考时限为110分钟。满分100分。二、给定资料1.笋岗村是深圳一个著名的城中村。和城市里的小区比,村内的居住条件几乎
最新回复
(
0
)