首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行
admin
2009-02-15
33
问题
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后把结果xx输出到文件OUT6.DAT中。
例如:原文:You He Me
I am a student.
结果:Me He You
student a am I
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
【函数】
#include<string.h>
#include<conio.h>
#include<ctype.h>
#include<stdio.h>
char xx[50] [80];
int maxline=0; /*文章的总行数*/
int ReaaDat(void);
void WriteDat(void);
void StrOL(void)
{
char * p1, * p2,t[80];
int i;
for(i=0;i<maxline;i++)
{ p1=xx
;t[0]=0;
while(*p1)p1++;
while(p1>=xx
)
{ while(!isalpha(*p1) &&p1!=xx
)p1--;
p2=p1;
while((1))p1--;
if(p1==xx
)
if(isalpha(*p1))p1--;
else if(!isalpha(*(p1+1)))break;
p2++;
(2);
strcat(t, p1+1);
strcat(t," ");
}
strcpy(xx
,t);
}
}
void main( )
{
if((3)) {
printf("数据文件in.dat不能打开!\n\007" );
return;
}
StroL();
writeDat();
getch();
} int ReadDat(void)
{
FILE * fp;
int i =0;
char * p;
if((fp=fopen("e:\a\in.dat"," r" ))==NULL)return 1;
while(fgets(xx
,80,fp)!=NULL) {
p=strchr(xx
,’\n’)
if(p)*p=0;
i++;
}
maxline=(4)
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE * fp;
int i;
fp=fopen("e:\\a\\out6,dat","w");
for(i=0;i<(5);i++){
printf("%s\n",xx
);
fprintf(fp,"%s\n",xx
)
}
fclose(fp)
}
选项
答案
(1)isalpha(* p1)&&p1!=xx[i] (2) * p2=0 (3) ReadDat() (4)i (5)maxline
解析
在主函数中首先调用函数ReadDat(),从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,所以(3)空应填入“ReadDat ()”。用变量maxline表示文章的行数,所以空(4)应填入“i”。
函数StrOL()的功能是以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排,然后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,采用的算法是先让两字符指针都指向串尾,然后使一指针(p1)往前移动,当出现不是字母时,则表示在p1+ 1与P2之间是一个单词,并将该单词存入一变量(t1),最后将t1连接到新串中(t);接着再往前找第二个单词,依次类推直到字符串头。br循环中的第一个while循环将字符指针移到串尾,在第二个while循环中,首先要去掉不是字母的字符,将p2也指向串尾,然后向前找一个单词及P1所指向的应为字母,且要保证仍然在本行,所以(1)空可填入“ isalPha (*p1)&&p1!=xx
”(或等价形式),这样p1+1与p2之间是一个单词,要作字符串处理,P2加1,指向字符串结束标记,所以(2)空应填入“*p2==’\0’”或者“*p2=0”。
最后通过调用函数WriteDat()把结果n输出到文件中,(5)空为输入的行数,显然应填入“maxline”。
转载请注明原文地址:https://kaotiyun.com/show/iEjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
下面不属于软件开发过程的是______。
在Excel中,若A1单元格的值为5,在B1单元格输入函数“=A1-10”,则B1单元格的值为______。
信息系统设计方案中的操作界面部分,特别是输入界面设计方案需要征求信息处理技术员的意见。在如下设计理念中,(66)是不正确的。
下列关于数据库系统的说法中,(62)是错误的。
计算机处理的数字数据有数值数据和字符数据之分。对信息处理技术员来说,它们的主要区别是______。
在调查某地区各类用户所喜欢的电视栏目时,信息处理技术员小王制作了用户类(U)与电视栏目(V)关系图。下面的示意图描述了五类用户(从上到下U1~U5)与四个电视栏目(从上到下V1~V4)之间的关系:如果某类用户大多喜欢某个电视栏目,则在它们之间画一条连线。从
以下关于Word2010图形和图片的叙述中,不正确的是()。
某地区去年粮食产量资料如下表:根据该表可以推算出,该地区去年薯类的产量为()万吨。
西部某省考试机构工作人员统计了去年下半年三个地区四种资格的报考人数,将统计表抄录如下(其中有一个数据抄错了): 信息处理技术员小王很快就找出了错误的数据,并进行了纠正。错误的数据是(32),该数据应纠正为(33)。33.
在Excel2007中,如果在A1单元格输入“计算机”,在A2单元格输入“软件资格考试”,在A3单元格输入“=A1&A2”,按回车键后,结果为______。
随机试题
形而上学唯物主义在物质和运动关系问题上的错误是()
出生时存在但3~4个月后消失的反射是
气滞腹痛的临床表现是食滞腹痛的临床表现是
男性,25岁,自幼咳嗽,经常于感冒后加重,咳大量脓痰,无咳血,考虑诊断为()
某医师常选用肉桂治疗下元虚冷、虚阳上浮之上热下寒证,此因肉桂除能补火助阳外,又能
确定制作沥青混合料试件拌和与压实温度的方法,可通过测定沥青黏度,绘制黏温曲线,按规定要求确定适宜的等黏温度。当缺乏沥青黏度测定条件时,也可按规范查表选用,并根据沥青品种和标号作适当调整。对大部分聚合物改性沥青,通常在普通沥青的基础上提高10~20℃;掺加纤
利用土工布( )的特点,可作为土石坝、水闸等工程的排水和反滤体。
提出“文章合为时而著,歌诗合为事而作”的诗人是()。
经初步核算,2009年上半年我国国内生产总值同比增长7.1%,比一季度加快1.0个百分点。其中,第一产业增加值12025亿元,增长3.8%,第二产业增加值70070亿元,增长6.6%,第三产业增加值57767亿元,增长8.3%。上半年,全社会固定资产
下列说法中正确的是()。
最新回复
(
0
)