首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数ReadDat()的功能是实现从文件IN74.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数StrCharJL(),该函数的功能是:以行为单位把字符串中的所有字符的ASCⅡ值左移4位,如果左移后,其字符的ASCⅡ值小于等于32或大于100,
函数ReadDat()的功能是实现从文件IN74.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数StrCharJL(),该函数的功能是:以行为单位把字符串中的所有字符的ASCⅡ值左移4位,如果左移后,其字符的ASCⅡ值小于等于32或大于100,
admin
2010-01-11
29
问题
函数ReadDat()的功能是实现从文件IN74.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数StrCharJL(),该函数的功能是:以行为单位把字符串中的所有字符的ASCⅡ值左移4位,如果左移后,其字符的ASCⅡ值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCⅡ值再加上原字符的ASCⅡ值,得到的新字符仍存入到原字符串对应的位置。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数Wiltedat()把结果xx输出到文件OUT74.DAT中。
注意:部分源程序已给出。
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
请勿改动主函数main()、读函数ReadDat()和写函数Wiltedat()的内容。
试题程序:
#include<stdio. h>
# inc lude<st ring. h>
#include<conio. h>
char xx[50] [80];
int maxline=0;
int ReadDat (void);
void WriteDat (void);
void StrCharJL (void)
{
}
void main ( )
{
clrscr ( );
if (ReadDat ())
{
printf ( "数据文件IN74.DAT 不能打开\n\007");
return;
}
StrCharJL ( );
WriteDat ( );
}
int ReadDat (void)
{
FILE *fp;
int i=0;
char *p;
if ( (fp=fopen( "IN74.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 ( "OUT74.DAT", "w" );
for (i=0; i<maxline; i++)
{
printf ("%s\n" ,xx
);
fprintf (fp, "%s\n" ,xx
);
}
fclose (fp);
}
选项
答案
void StrCharJL (void) { int i, j, strl; for (i=0; i<maxline; i++) { strl=strlen (xx [i] ); /*求各行的总长度*/ for (j=0; j<strl; j++) if(xx[i] [j]<<4 <=32 || xx[i] [j]<<4 >100); /*如果左移的ASCII值小于等于32或大于100,则原字符保持不变*/ else xx[i] [j]+=xx[i] [j]<<4; /*否则就把左移后的字符ASCII值加上原字符的ASCII*/ } }
解析
本题考查的知识点如下:
(1)字符的计算。
(2)左移运算符“<<”的使用。
(3)二维数组的访问。
(4)判断结构中多条件的布尔运算。
本题中,以行为单位处理字符串,首先要求得每行字符串的长度,才可对每一行的字符依次进行处理。字符可参与任何整数运算,实际上是字符的ASCII码参与了运算。所以,可以直接将字符带入计算。这里要使用到左移运算符“<<”。 “<<”是双目运算符,左侧是要移动的数,右侧是移动的位数。左移后字符的ASCII码的值小于等于32或大于100,这两个条件满足一个即可,所以两条件之间用“或”运算。使用循环实现对所有行的处理。
转载请注明原文地址:https://kaotiyun.com/show/wb5Z777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
关于早期局域网的描述中,错误的是()。
在下图所示的UNIX树形文件目录结构中,方框代表日录,椭圆代表文件,根目录root常驻内存,其他文件和目录均在磁盘中存放。其中,用户Li和Sun是同组用户,他们的目录分别为Li和Sun,其目录及其他的子目录和文件的属性如下表所示。下列操作中,哪
在一个采用三级索引结构的UNIX文件系统中,假设物理块大小为1KB,用32位表示一个物理块号。主索引表含有13个块地址指针,其中前10个直接指向盘块号,第11个指向一级索引表,第12个指向二级索引表,第13个指向三级索引表,那么,一个文件最大可有多少块?(
关于共享式以太网的描述中,错误的是()。
对于运行批处理作业的大型计算中心,其调度算法的设计目标是()。
下图所示为交叉路口发生死锁的情况。为了预防死锁,可以在路口使用交通红绿灯。那么,该方法使得死锁的哪一个必要条件不成立?()
多道程序设计可以实现进程并发,那么,多道程序设计环境具有以下哪些特点?()
I/O设备管理中,I/O软件的层次结构有()。
采用动态地址映射方式向内存装入程序时,其地址转换工作是在什么时间完成的?()
企业模型表示企业在经营管理中的职能,而企业职能范围是企业中的主要【】。
随机试题
A.首乌藤B.酸枣仁C.远志D.珍珠心神不宁,兼目赤翳障首选
下述关于颅骨骨瘤的描述错误的是
中气虚弱,胃气不畅的胃气虚,应选用风寒感冒时可用
双纽线(x2+y2)2=x2–y2所围成的区域面积可用定积分表示为()。
()是指单位类客户在存入款项时不约定存期,支取时需提前通知银行,并约定支取存款日期和金额方能支取的存款类型。
启用会计账簿时,应当在账簿封面上写明账簿名称,并在账簿扉页上附启用表即可。()
优序融资理论(对外经济贸易大学2011年真题)
有以下程序#include#defineSQR(X)X*Xmain(){inta=10,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf("%d\n",a);}程序的输出结果是
—Readthearticleontheoppositepageaboutwhysomesmallcompaniesfailtogrow.—Choosethebestwordtofilleachgapfro
ParentsofMillennials(childrenborninand’after1982)areconfused.Thesemomsanddadsaregivingtheirchildrenmoretime
最新回复
(
0
)