首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件
函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件
admin
2010-01-11
52
问题
函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或大于130,则该字符不变,否则将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()
{
}
void main()
{
clrscr();
if(ReadDat())
{
printf("数据文件ENG.IN不能打开!\n\007");
return;
}
encryptChar();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
unsigned char *p;
if((fp=fopen("eng.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("ps1.dat","w");
for(i=0;i<maxline;i++)
{
printf("%s\n",xx
);
fprintf(fp,"%s\n",xx
);
}
fclose(fp);
}
选项
答案
void encryptChar() { int i; char *pf; for(i=0;i<maxline;i++) { pf=xx[i]; while(*pr!=0) { if(*pf*11%256>130||*pf*11%256<=32); else *pf=*pf*11%256; pf++; } } }
解析
该程序属于对字符串处理类型的题目,考核的知识点为:
(1)按给定关系计算字符的新ASCII值;
(2)根据条件进行判断;
(3)根据判断的结果进行替换。
本题的解题思路是:先将数组中的元素逐个进行计算,若计算后的结果满足题目中的条件则不进行替换,直接对下一个元素进行判断,否则按给定的替换关系进行替换,替换关系在题目中已经给出。
程序的流程是:首先调用ReadDat()函数,把数据读入到数组xx中,然后调用函数encryptChar()对数据进行处理后,由WriteDat()函数写回文件ps1.dat中去。
答案解析如下:
void encryptChar()
{
int i;
char *pf; /*定义字符型指针pf*/
for(i=0;i<maxline;i++)
{
/*遍历文章的所有行*/
pf=xx
;
/*将二维数组第i行首地址赋给指针变量*/
while(*pf!=0)
{
/*pf的内容不为0时进入循环*/
if(*pf*11%256>130||*pf*11%256<=32); /*判断如果*pf*11%256大于130或不大于32时,就执行一条空语句*/
else
*pf=*pf*11%256; /*否则就将pf所指的字符改为*pf*11%256后的值*/
pf++; /*指向下一个字符*/
}
}
}
转载请注明原文地址:https://www.kaotiyun.com/show/cb5Z777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
在FTP协议中,请求使用被动模式建立数据连接可以使用的命令是()。
主机A运行Unix操作系统,IP地址为202.113.224.35,掩码为255.255.255.240;主机B运行Linux操作系统,IP地址为202.113.224.38,掩码为255.255.255.240。它们分别连接在同一台局域网交换机上,但处
某文件系统采用UNIX5三级索引结构,1节点中包含13个地址项,其中0-9项为直接地址,10为一次间接索引项,11为二次间接索引项,12为三级间接索引项。若磁盘块大小为4096B,地址项占用4B,则该文件系统中文件的最大尺寸不能超过下列哪项数值?(
进程运行过程中,导致进程从运行态转换为就绪态的典型事件是()。
如果想了解IP数据报从源主机到目的主机所经过路径上各个路由器的IP地址,那么可以使用IP数据报的()。
在使用RIP协议的互联网中,路由器Ri的路由表如表1所示。如果它收到其相邻路由器Ri广播的路由信息(如表2所示),那么到达以下哪些目的网络的表项将出现在更新后的路由表中?()
计算机操作系统中,设备管理的主要任务之一是()。
按照信息交换方式的不同,一个系统中可以设置多种类型的通道,下列哪一个选项不属于通道类型?()
结构化分析和设计方法是信息系统开发时常用的工程化方法,按其生命周期特征,它应属于
BSP方法所支持的目标是企业各层次的目标,一般企业内同时存在3个不同的计划和控制层,其中确认资源获取的过程称为【】层。
随机试题
人在一生中所追求并努力使之实现的某种目标和对象指的是()。
该病的治法是:常用的方剂是:
下颌全口义齿基托需要缓冲的是
某单机容量为20万kw的火力发电站工程,业主与施工单位签订了单价合同,并委托了监理。在施工过程中,施工单位向监理工程师提出应由业主支付如下费用:(1)职工教育经费:因该项目的汽轮机是国外进口的设备,在安装前,需要对安装操作的职工进行培训,培训经费2万元。
在进行建筑消防安全评估时,关于疏散时间的说法,正确的有()。
根据经验,购买商业养老保险所获得的补充养老金占养老费用的()为宜。
下列哪种()是从经济学、金融学、财务管理学及投资学等基本原理推导出的。
袁宏道在《晚游六桥待月记》中写道:“杭人游湖,止午、末、申时”,意思是说,杭州人游西湖,大多喜欢在午时12点至下午5点这一时间段游玩。()
关系数据是用______实现数据之间的联系的。
A、Meetinginterestingpeopleinthecity.B、Beingabletoenjoybeingoutdoors.C、Drivinginunsettledweather.D、Takinglongdr
最新回复
(
0
)