首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件IN100.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数CharConvA(),该函数的功能是:以行为单位把字符串的最后一个字符ASCII值右移4位后加最后第二个字符的ASCII值,得到最后一个新的字符
函数ReadDat()的功能是实现从文件IN100.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数CharConvA(),该函数的功能是:以行为单位把字符串的最后一个字符ASCII值右移4位后加最后第二个字符的ASCII值,得到最后一个新的字符
admin
2010-01-11
68
问题
函数ReadDat()的功能是实现从文件IN100.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数CharConvA(),该函数的功能是:以行为单位把字符串的最后一个字符ASCII值右移4位后加最后第二个字符的ASCII值,得到最后一个新的字符,最后第二个字符的ASCII值右移4位后加最后第三个字符的ASCII值,得到最后第二个新的字符,以此类推一直处理到第二个字符,第一个字符的ASCII值加最后一个字符的ASCII值,得到第一个新的字符,得到的新字符分别存放在原字符串对应的位置上,把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT100.DAT中。
注意;部分源程序已给出。
原始文件存放的格式是:每行的宽度小于80个字符,含标点符号和空格。
请勿改动主函数main()、读函数ReadDat()和写函数Wnh2Dat()的内容。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char xx[50][80];
int maxline=0;
int ReadDat();
void WriteDat();
void CharConvA(void)
{
}
void main()
{
clrscr();
if (ReadDat())
{
printf("数据文件IN100.DAT不能打开!\n\007");
return;
}
CharConvA( )
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
char *P;
if((fp=fopen("IN100.DAT","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()
{
FILE *fp;
int i;
clrscr();
fp=fopen("OUT100.DAT","w");
for(i=0;i<maxline;i++)
{
printf("%s\n",xx
);
fprintf(fp,"%s\n",xx
);
}
fclose(fp);
}
选项
答案
void CharConvA(void) { int i,j,k,str; char ch; for(i=0;i<maxline;i++) { str=strlen(xx[i]); /*求出各行的总字符数*/ ch=xx[i][str-1]; /*将最后一个字符暂存入ch*/ for(j=str-1;j>0;j--) /*从最后一个字符开始,直到第二个字符*/ xx[i][j]=xx[i][j]>>4+xx[i][j-1]; /*当前字符ASCII值右移4位加前一个字符的ASCII值,得到新的当前字符*/ xx[i][0]+=ch; /第一个字符的ASCII值加最后一个字符的ASCII值,得到第一个新的字符*/ } }
解析
本题考查的知识点如下;
(1)字符变量的整数运算。
(2)使用循环实现对数组的访问。
因为是以行为处理单位,所以要先求得每一行中字符的个数。在C语言中,字符量可参与任何整数运算,实际参与运算的是字符的ASCII码。这里可以直接将字符右移4位后相加,即可得到所求结果。使用循环结构依次对字符进行处理,第一个字符要单独处理。
转载请注明原文地址:https://kaotiyun.com/show/jb5Z777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
在网络管理服务中,定义管理对象结构的是()。
假设某计算机系统的内存大小为256K,在某一时刻内存的使用情况如下表所示。此时,若进程顺序请求20K和5K的存储空间,系统采用某种算法为进程分配内存,分配后的内存情况如下表所示。那么系统采用的是什么分配算法?()
FTP客户机和服务器之间需要建立双重连接,这两个连接是()。
将多个目标程序装配成可运行的程序的过程称为()。
下图所示为交叉路口发生死锁的情况。为了预防死锁,可以在路口使用交通红绿灯。那么,该方法使得死锁的哪一个必要条件不成立?()
在DNS的资源记录中,对象类型“A”表示()。
在下图所示的UNIX树形文件目录结构中,方框代表目录,椭圆代表文件,根目录root常驻内存,其他文件和目录均在磁盘中存放。其中,用户Li和Sun是同组用户,他们的目录分别为Li和Sun,其目录及其他的子目录和文件的属性如下表所示。下列操作中,哪些是可以
用管程解决进程间同步关系时,在管程内使用的对象是()。
下列哪一项不是打开文件时所做的工作?()
随机试题
当小组讨论过程中,个别组员情感爆发,愤然离开,教师正确的处理是()
一耻骨骨折患者,合并膀胱破裂,检查所见:耻骨骨折轻度移位,骨折分类应属______。
患者,男,54岁,肺癌广泛转移,病情日趋恶化,病人常向家属发脾气,对医务人员工作不满,此时的心理反应是
B公司是一家制造类企业,产品的变动成本率为60%,一直采用赊销方式销售产品,信用条件为n/60。如果继续采用n/60的信用条件,预计2011年赊销收入净额为1000万元,坏账损失为20万元,收账费用为12万元。为扩大产品的销售量,B公司拟将信用条
中央银行组织全国清算属于中央银行的()业务。
有100个编号为1~100的罐子,第1个人在所有的编号为1的倍数的罐子中倒入1毫升水,第2个人在所有编号为2的倍数的罐子中倒入1毫升水……最后第100个人在所有编号为100的倍数的罐子中倒入1毫升水。此时第92号罐子中装了多少毫升的水?()
案例:一个整日制幼儿园,幼儿们中午安排了一次午睡。幼儿园的老师中午安排幼儿准时上床,按时起床,养成好的睡眠习惯,保证充足睡眠,但也不让睡眠过多。幼儿进餐也要求定时,每顿饭约20--30分钟,并且让儿童细嚼慢咽,要求儿童专心吃饭。一般,该园还每天安排3--4
A、 B、 C、 D、 B
朱珂是北京市向阳路中学的一名老师。学校近期将召开一次家长会,校领导决定由她负责制作家长会通知。请根据考生文件夹下的相关资料及示例,按下列要求帮助朱珂老师完成家长会通知的制作工作:对包含绿色文本的成绩报告单表格进行下列操作:根据窗口大小自动调整表格宽度,
【B1】【B12】
最新回复
(
0
)