首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行
admin
2009-02-15
38
问题
阅读以下说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
某学生要进行数据结构、操作系统和计算机组成原理三门课的考试。已知数据结构成绩是85分、操作系统成绩是87分,希望总分达到240分,需要求出计算机组成原理成绩应考的分数。此类问题可以使用Excel中的(53)功能来解决。
信息系统中,防止非法使用者盗取、破坏信息的安全措施要求:进不来、拿不走、改不了、看不懂。以下(62)技术不属于安全措施。
撰写数据分析报告时,如何用图正确地展现数据,需要考虑的问题中,不包括______。
新建一个Word文档,编辑结束后,执行“文件”菜单中的“保存”命令,则______。
在Excel2007中,设单元格A1中的值为-1,B1中的值为1,A2中的值为0,B2中的值为1,若在C1单元格中输入函数“=IF(AND(A1>0,B1>0),A2,B2)”,按回车键后,C1单元格中的值为______。
在Excel2010中,C3:C7单元格中的值分别为10、OK、20、YES和48,在。D7单元格中输入函数“=COUNT(C3:C7)”,按回车键后,D7单元格中显示的值为________________。
计算机网络中,防火墙的功能不包括________________。
下列关于Windows7屏幕保护程序的叙述中,不正确的是__________。
在Windows7中,若删除桌面上某个应用程序的快捷方式图标,则(31)。
双击某个非可执行程序的文件名将(24)。
随机试题
A.肾小球滤过膜的机械屏障作用B.肾小球滤过膜的电荷屏障作用C.二者均有D.二者均无(2003年第113题)正常情况下,尿中不出现红细胞是由于
甲公司为增值税一般纳税企业,适用的增值税税率为17%。2010年3月1日,甲公司向乙公司销售一批商品,按价目表上标明的价格计算,其不含增值税的售价总额为20000元。因属批量销售,甲公司同意给予乙公司10%的商业折扣;同时,为鼓励乙公司及早付清货款,甲公司
下列文字意在讲述的是()。城镇化进程中解决好“三农”问题,既是世界各国都需要把握的一般规律,更是我们这个农村人口众多的人口大国必须更加注重的重大问题。这三个问题分别是城镇化进程中的粮食和其他主要农产品供求问题(粮);城镇化进程中的农村土地
如果一些地方的农民看到蒜价猛涨,便一窝蜂地种植大蒜,有可能造成蒜贱伤农。因此农民除了学习农业实用技术外,也要重视获取最新、最可靠的农业生产及市场信息。掌握了有价值的信息,再冈地制宜,适时搞好农业生产的布局调整,稳妥发展适销对路的生产项目。这样才能大大减少农
当新闻人,一定得有点情怀。不管世人怎么看,情怀仍不可丢,尊重自己,不辜负自己:对世上的苦难保持痛感,不闭上眼,也不背过脸;对丑陋现象不容忍,时刻保持揭露的敏感,保持针砭的自觉。这是一个变化过快的时代,快得让人眩晕,变得让人恐慌。做到不乱于心,不困于情,不念
《中华人民共和国物权法》第106条规定:“无处分权人将不动产或者动产转让给受让人的,所有权人有权追回;除法律另有规定外,符合下列情形的,受让人取得该不动产或者动产的所有权:(一)受让人受让该不动产或者动产时是善意的;(二)以合理的价格转让;(三)转让
【B1】【B17】
Americandoctorssaythatmotherssmokebeforetheir【M1】______babiesarebornmayslowthegrowthoftheir
A、Narrowbrassframe.B、Squareandwhitebox.C、Anelectriclightswitch.D、Anexpensivemodernpainting.C
TopicMyViewonStudyingAbroadForthispart,youareallowed30minutestowriteashortessayentitledMyViewonStudyin
最新回复
(
0
)