首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件IN8.DAT中读取一篇英文文章存入到字符串数组xx中:请编制函数StrCharJP(),该函数的功能是:以行为单位把字符串中的所有字符的ASCII值右移4位,然后把右移后的字符的ASCII值再加上原字符的ASCII
函数ReadDat()的功能是实现从文件IN8.DAT中读取一篇英文文章存入到字符串数组xx中:请编制函数StrCharJP(),该函数的功能是:以行为单位把字符串中的所有字符的ASCII值右移4位,然后把右移后的字符的ASCII值再加上原字符的ASCII
admin
2009-02-19
49
问题
函数ReadDat()的功能是实现从文件IN8.DAT中读取一篇英文文章存入到字符串数组xx中:请编制函数StrCharJP(),该函数的功能是:以行为单位把字符串中的所有字符的ASCII值右移4位,然后把右移后的字符的ASCII值再加上原字符的ASCII值,得到新的字符,并存入原字符串对应的位置上。最后把已处理的字符串按行重新存入字符串数组xx中,并调用函数WriteDat()把结果xx输出到文件OUT8.DAT中。原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
试题程序:
#include<stdio.h>
#include<String.h>
#include<conio.h>
char xx [50] [80];
int maxline=0;/* 文章的总行数 */
int ReadDat(void);
void WriteDat(void);
void StrCharJR(void)
{
}
main()
{
Clrscr();
if(ReadDat())
{
printf("数据文件IN8.DAT不能打开!\n\007");
return;
}
StrCharJR();
WriteDat ( );
}
int ReadDat (void)
{
FILE *fp;
int i= 0;
char *p ;
if ( (fp = fopen("IN8.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 (void)
{
FILE *fp;
int i;
clrscr ();
fp = fopen("OUTS.DAT", "w");
for(i = 0; i < maxline; i++)
{
printf("%s\n", xx
);
fprintf(fp, "%s\n", xx
);
}
fclose(fp);
}
选项
答案
void StrCharJR(void) { int i,j,strl; for(i=0;i<maxline;i++) { strl=strlen(xx[i]); /*计算各行字符串的长度*/ for(i=0;j<strl;i++) xx[i][j]+=xx[i][j]>>4; /*字符的ASCII值右移4位再加上原字符的ASCII 值,得到新字符*/ } }
解析
本题考查对二维字符数组元素的操作。注意:字符也可以参与数学运算,只不过用的是其ASCII码值。我们可以利用双重循环按照先行后列的顺序逐个取得数组中的字符(前提是我们需要求得各行字符的总个数),外层循环用来控制行数,内层循环用来依次取得各行中的每一个字符。之后对当前所取得的字符进行右移4位的运算(用到了“>>”右移运算符),然后把右移后得到的字符累加到原来字符中去,这样原来字符就被新的字符所覆盖。
转载请注明原文地址:https://www.kaotiyun.com/show/EzSZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
操作数地址的16位偏移量(又称有效地址EA)直接包含在指令中,紧跟在操作码之后,存放在代码段区域的寻址方式是( )。
在μC/OS—Ⅱ启动过程中,BootLoader执行完毕后,执行应用程序主文件中main()时,依次执行的三个主要的函数是:①OSInit();②【67】;③【68】。
关于ARM嵌入式处理器的工作状态,以下说法错误的是()。
调试(debug)与测试(test)既有联系又有区别。验证模块/系统的功能和性能,发现错误是【77】的目的。分析所发现的错误,检查错误原因,定位故障(错误)位置和进行修改是【78】的目的。
已知ARM处理器进位标志C=1,R1=1000,R2=99,执行指令ADDCR0,R1,R2之后,R0=【53】,R1=【54】。
若某嵌入式系统的应用程序基于μC/OS—Ⅱ操作系统平台来开发,那么,应用程序的main()函数中,需要用函数【79】来创建任务。创建任务前用函数【80】来初始化μC/OS—Ⅱ。
电源电路为整个嵌入式硬件系统提供能量,是整个系统工作的基础。嵌入式系统常用的电源模块主要有:【59】一DC(交流变直流)(填写用大写英文字母表示的简称)、DC—DC(直流到直流)模块以及LDO(即【60】的稳压器)。
下面的选项中与实时系统无必然联系的属性是()。
下列哪一棵不是AVL树?
线性表、栈和队列都是线性结构,可以在线性表的______位置插入和删除元素;而对栈只能在______插入和删除元素;对于队列只能在______插入和在______删除元素。
随机试题
在PowerPoint2010中,下列有关移动和复制文本的叙述中,不正确的是________。
A.难免流产B.先兆流产C.稽留流产D.完全流产E.感染性流产人工流产术后1个月,阴道仍流血未净,伴发热及下腹痛,应为
关于先张法预应力混凝土施工,下列中哪个规定是正确的?
幼儿园对幼儿实施的教育包括()
一般公民与国家工作人员勾结,利用国家工作人员职务上的便利,侵吞公共财物的,对一般公民应如何处理?()
有一大一小两个正方形,它们的周长相差20厘米,面积相差55平方厘米。小正方形的面积是多少平方厘米?
设f(μ)连续可导,计算I=+zdxdy,其中曲面∑为由y=x2+z2+6与y=8一x2一z2所围成立体的外侧.
RAM的特点是()。
______deixismaybefoundinthesentenceI’llstayheretillhewenttoLondon.
A、Thestrongestwindsandthehardestrains.B、Theweakestwindsandthehardestrains.C、Thestrongestwindsandthelightestr
最新回复
(
0
)