首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行
admin
2009-02-15
50
问题
阅读以下说明和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工作表中,已输入的数据如下所示:按回车键后,B6单元格显示的值为()。
某商场的部门和商品两个实体之间的关系如下图所示。假设每个部门负责销售若干种商品,每种商品只能由一个部门负责销售,那么部门和商品之间存在着(14)的联系。
企业信息系统的用户一般不包括()。
用Word2007编辑文件时,查找和替换中能使用的通配符是______。
信息处理技术员教程共有318页,甲在第一天看了全书的1/6,第二天看了剩下的1/5,第三天应从第(32)页开始看。
信息系统升级后,需要将数据从旧系统(包括手工系统)转换到新系统。以下关于数据转换的叙述中,不正确的是(69)。
以下关于Excel单元格操作的叙述,(52)是错误的。
根据某机构的统计与推测,我国人口中男性和女性各个年龄段的百分比如下图。根据该图,以下叙述中正确的是________________。
某商场统计了每个月的销售总额,坚持了多年。每次公布上月销售额时,还都采用同比和环比概念与历史数据进行对比。以下叙述中,正确的是________________。
在统计学中,用来衡量一个样本中各个数据波动大小的量是______。
随机试题
休克扩容治疗时,反映器官灌流情况的简单、有效的指标是
建设单位应当在竣工验收几个月内向城乡规划主管部门报送竣工验收资料?(2010年第13题、2011年第13题)
C国亚威集团是一家国际化矿业公司,其前身是主营五金矿产进出口业务的贸易公司。2004年7月,亚威集团在“从贸易型企业向资源型企业转型”的战略目标指引下,对北美N矿业公司发起近60亿美元的收购。当时国际有色金属业正处于低潮,收购时机较好。2005年5月,虽然
某只股票要求的收益率为15%,收益率的标准差为25%,与市场投资组合收益率的相关系数是0.2,市场投资组合要求的收益率是14%,市场投资组合的标准差是4%,假设处于市场均衡状态,则市场风险价格和该股票的贝他系数分别为()。
TheHealthcarecommunitywasshocked______RicardoPeter’sresignationafteronlyoneyearaspresidentofHeahhcorps.
《老残游记》、《西游记》、《聊斋志异》、《儒林外史》四部作品的作者依次是()。
因为面临预算困难,政府机构减少了他们的科研基金,更大量的类似的研究现在由私人基金赞助。这种变化意味着可能导致具有争论性后果的研究将占据所有被资助项目的较小比例。因为私人基金考虑到他们的公众形象,倾向于避免争议。下列哪一个是上文所做的假设?
许多报纸有两种版面——免费的网络版和花钱订阅的印刷版。报纸上网使得印刷版的读者迅速流失,而网络版的广告收入有限,报纸经济收益大幅下挫。如果不上网,报纸的影响力会大大下降。如果对网络版收费,很多读者可能会流转到其他网站。要让读者心甘情愿地掏腰包,报纸必须提供
小林刚上大学的时候,因为爱睡(1)而不参加晨跑锻炼,体育不及格。当他求助心理(2)老师时,老师问他有什么(3),他说:“最喜欢听音乐。”老师(4)他:“明天早晨开始戴上耳机去跑步,在清新的空气里(5)自己喜欢的音乐。”两个月后,小林高兴地告诉老师
"Themoregadgetsthereare,the【C1】______thingsseemtoget."saidHonoreErvin,co-authorofTheEtiquetteGirls:ThingsYou
最新回复
(
0
)