首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件
函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件
admin
2010-01-11
51
问题
函数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://kaotiyun.com/show/cb5Z777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
共享性是操作系统的特征之一,计算机中的各类设备在操作系统管理下实现共享,那么下列哪种设备可以同时共享?()
关于无线自组网的描述中,错误的是()。
在UNIX系统中,若文件Filel的权限是744,则表示()。
程序的并发执行产生了一些和程序顺序执行时不同的特性,下列哪一个特性是正确的?()
在一个采用非抢占式调度策略的系统中,下列哪些因素将引起进程调度?()
在虚拟页式系统中进行页面置换时,置换以后不再需要的、或者在最长时间以后才会用到的页面,这一策略称为()。
在民航网络订票系统中,相同航班订票人发起的订票进程其相互之间的关系是()。
在数据库中,下面列出的数据模型的3个要素中,用于描述系统的动态特性的要素是 Ⅰ.数据结构Ⅱ.数据操作 Ⅲ.完整性约束
J.Martin指出,一个企业可能有几十个甚至几百个业务过程。在确定职能范围和业务过程中,什么因素对系统适应性是至关重要的?
随机试题
请简要列举说明包过滤技术的缺陷。
Johnwokeupinthemiddleofthenightandsawsomethingwhite【21】hisgarden.Itseemed【22】towardsthehouse."That【23】ath
可以用于传真和计算机打印的病案资料用纸是
男孩,1岁半。平日偏食,常有腹泻、咳嗽,已会独立行走,玩耍正常。近2个月来面色苍黄,逗之不笑,时有头部、肢体颤抖,不能独站。外周血象:血红蛋白100g/L,红细胞2.5×1012/L,白细胞4×109/L,中性粒细胞分叶过多。本例可诊断为
支气管哮喘最有意义的临床表现特点是
按照我国《刑事诉讼法》的规定,关于法庭审理活动先后顺序的排列,下列哪一选项的组合是正确的?()①宣读勘验笔录;②公诉人发表公诉词;③讯问被告人;④询问证人、鉴定人;⑤出示物证;⑥被告人最后陈述。
用气相色谱分析水中有机污染物时,常涉及检测器的选择,欲测水中含硫磷的农药,可选择下面哪一种检测器()。
2005年10月9日,()两家国际开发机构在全国银行间债券市场分别发行人民币债券,这是中国债券市场首次引入外资机构发行主体。
甲、乙、丙三所学校的学生被安排在周一至周五参观某革命纪念馆。纪念馆每天最多只能安排一所学校,其中甲学校连续参观两天,其余学校均只参观一天,那么共有多少种安排方法?
中国共产党要始终代表中国先进生产力的发展要求,就必须
最新回复
(
0
)