首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
读函数ReadDat()实现从文件ENG28.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数 encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用写函数WriteDat()把结果xx
读函数ReadDat()实现从文件ENG28.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数 encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用写函数WriteDat()把结果xx
admin
2009-02-19
54
问题
读函数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全国计算机三级
相关试题推荐
I/O与主机信息的交换采用DMA方式的特点是( )。
Intel 8086 CPU中计算物理地址时,给定的段寄存器中数是3816H,有效地址是4000H,则它的物理地址是( )。
下面一段程序要实现的功能是:在内存中从地址SOURCE开始有一个长度为50的字符串,测试该字符串中是否存在数字,如有则将DL的第三位置1,否则将该位置0。 BEGIN: MOV CX,50 MOV S
在采用SPOOLing技术的系统中,用户作业的打印输出结果首先被送到( )。
Linux内核由若干个子系统组成,一般来说下面哪一个不是Linux内核的子系统()。
如果一种存储器的总线工作频率为333MHz,数据线宽度为32位,每个存储器总线周期传输1次数据,则该存储器的带宽为【55】MB/s。AM29LV160是一种典型的NORFlash芯片,芯片内部具有20条地址线和16条数据线,该芯片的存储容量为【56】MB
在μC/OS–II操作系统下,能使等待态任务转入就绪态的系统函数是()。
在ARM处理器中,用于存储器保护的部件用英文缩写为___________【47】,用来完成虚拟地址到物理地址转换的部件英文缩写为___________【48】。
设只包含根结点的二叉树的高度为0,高度为k的二叉树的最小结点数为()。
单链表的每个结点中包括一个指针link,它指向该结点的后继结点。现要将指针q指向的新结点插入到指针P指向的的单链表结点之后,下面的操作序列中哪一个是正确的?
随机试题
在多媒体计算机系统中,对声音信号模数转换的顺序为采样、编码、量化。()
MR成像层厚增大后,不会带来的影响是
在下列药物中,属于Ⅲ类抗心律失常药物(延长动作电位时程)的是
企业从外单位取得的原始凭证遗失且无法取得证明的,可由当事人写明详细情况,由会计机构负责人、会计主管人员和单位负责人批准后代作原始凭证。()
培训效果评估的主要目的是()。
某电子系统是由部件A、部件B、部件C、部件D、部件E五个元器件组成的串联系统,其可靠性指标为MTBF=1000h,用评分分配法将可靠性指标分配到各部件。现请相关的专家对各部件进行分配,并通过计算,得出表5.2—1的结果。请分析下列问题:部件B的评分系
全面建设小康社会,最根本的是()。
(暨南大学2011年初试真题)全额累进税率与超额累进税率计算方法的差异。
根据是否具有统一法典形式,可以把宪法分为()。(2012年真题)
“千兆以太网”通常是一种高速局域网,其网络数据传输速率大约为()。
最新回复
(
0
)