首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结
admin
2009-02-24
30
问题
函数ReadDat()的功能是实现从文件ENG18.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS18.DAT中。
替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或f(p)对应的字符是数字0至9,则该字符不变,否则将f(p)所对应的字符进行替代。
注意:部分源程序已给出。
原始数据文件存放的格式是:每行的宽度均小于80个字符。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#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("数据文件ENS18.IN不能打开! \n\007");
return;
}
encryptChar ();
WriteDat ();
}
int ReadDat (void)
{
FILE *fp;
int i=0;
unsigned char *p;
if((fp = fopen("ENG18.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 ("PS18.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 (*pf !=0) { if((*pf*11%256>=’0’ && *pf*11%256〈=’9’) || *pf*11%256〈=32) {pf++;continue;} /*如果计算后的值小于等于32或f(p)对应的字符是数字0至9,则该字符不变*/ *pf=*pf*11%256; /*否则按给定的替代关系进行替代*/ pf++; } } }
解析
本题主要考查用指针变量来控制字符数组,由于要对已有二维字符数组的所有元素逐个处理,因此,需要定义一个字符指针变量来控制原二维数组的各行,当前行如果确定下来,用指针的移动就可以依次扫描该行的所有字符元素,每得到一个字符就对它行条件判断,根据题意,条件用“if(*pf*11%256>=’0’ && *pf*11%256<=’9’)||*pf*11%256<=32)”语句来实现,如果该字符不满足上述条件,就用一个新的字符来替代,新的字符是当前字符乘以11的结果再去与256求余数。处理完毕后,指针去取下一个字符。如果该字符满足所给条件,将不做任何操作,指针直接下移,去取下一个字符,对下一个字符进行处理。
转载请注明原文地址:https://jikaoti.com/ti/mfp7FFFM
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
设栈S和队列Q的初始状态均为空,元素e1,e2,e3,e4,e5,e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2,e4,e3,e6,e5,e1,则栈S的容量至少应是()。
下列的故障中,可能会造成事务执行失败的是______。
在计算机上,高级语言程序一般称为【】,不能直接执行,必须将他们翻译成具体机器的机器语言程序才能执行,这种机器语言程序又称为目标程序。
下列关于IP地址的叙述中,错误的是
第(38)至(41)题基于"学生-选课-课程"数据库中的三个关系:S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)若要求查找选修"数据库技术"这门课程的学生姓名和成绩,将使用关系
数学、力学、化学以及石油勘探、桥梁设计等领域都存在着复杂数学问题,需要利用计算机和数值方法求解,这一类应用属于下列()应用领域。
联网计算机在相互通信时必须采用统一的()。
在TCP/IP参考模型中,不属于应用层协议的是
关系模型是数据库系统最常用的一种数据模型。下列关于关系模型的说法,错误的是()
在UML模型中,用于表达一系列的对象、对象之间的联系以及对象间发送和接收消息的图是【15】。
随机试题
南京国民政府成立初期,法院组织体系实行()
年青一代用新知识、新观念影响前辈的过程是【】
该患者的病情属于护士在痔切除手术前应指导该患者
(2016)某传动装置如图6.7—1所示,由蜗杆转动z1、z2,圆锥齿轮传动z3、z4,斜齿轮传动z5、z6组成。蜗杆为主动件,右旋,要求轴I和轴Ⅱ上的轴向力分别能相互抵消一部分,则斜齿轮6的螺旋方向和圆周力方向为()。
某发电厂安装工程,工程内容有锅炉、汽轮机、发电机、输煤机、水处理和辅机等设备。工程由A施工单位总承包,其中输煤机、水处理和辅机等设备分包给B施工单位安装。因安装质量要求高,A施工单位与建设单位签订合同后编制了该工程的施工组织设计和施工方案。
20×5年1月1日,甲公司用银行存款33000万元从证券市场上购入乙公司发行在外80%的股份并能够控制乙公司。同日,乙公司账面所有者权益为40000万元(与可辨认净资产公允价值相等)。其中,股本为30000万元。资本公积为2000万元,盈余公积为8
去年,和羊毛的批发价不同,棉花的批发价大幅度地下跌。因此,虽然目前商店中棉织品的零售价还没有下跌,但它肯定会下跌。以下哪项如果为真,最能削弱上述论证?
Whenyouaskyoungpersontotellthenamesofsomefamousmoviesandthechancesarethatmanyofthosementionedwillbepopul
Accordingtoarecentsurvey,employeesinmanycompaniestodayworklongerhoursthanemployeesdidin1979.Theyalsotakeshor
Whereisthewoman?
最新回复
(
0
)