首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。 程序用一棵有序二叉树存
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。 程序用一棵有序二叉树存
admin
2009-02-15
82
问题
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。
【说明】本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。
程序用一棵有序二叉树存储这些单词及其出现的次数,边读入边建立,然后中序遍历该二叉树,将遍历经过的二叉树上的结点的内容输出。
#include <stdio.h>
#include <malloc.h>
#include <ctype.h>
#include <string.h>
#define INF "text.in"
#define OUTF "wotd.out"
typedef struct treenode{
char *word;
int count;
struct treenode *left,*right;
}BNODE
int getword (FILE *fpt,char *word)
{ char c;
c=fgetc (fpt);
if ( c=EOF)
return 0;
while(!(tolower(c)>=’a’ && tolower(c)<=’z’))
{ c=fgetc (fpt);
if ( c==EOF)
return 0;
} /*跳过单词间的所有非字母字符*/
while (tolower (c)>=’a’ && tolower (c)<=’z’)
{ *word++=c;
c=fgetc (fpt);
}
*word=’\0’;
return 1;
}
void binary_tree(BNODE **t,char *word)
{ BNODE *ptr,*p;int compres;
P=NULL; (1);
while (ptr) /*寻找插入位置*/
{ compres=strcmp (word, (2) );/*保存当前比较结果*/
if (!compres)
{ (3);return;}
else
{ (4);
ptr=compres>0? ptr->right:ptr->left;
}
}
ptr= (BNODE*) malloc (sizeof (BNODE)) ;
ptr->left = ptr->right = NULL;
ptr->word= (char*) malloc (strlen (word) +1) ;
strcpy (ptr->word, word);
ptr->count - 1;
if (p==NULL)
(5);
else if (compres > 0)
p->right = ptr;
else
p->left = ptr;
}
void midorder (FILE **fpt, BNODE *t)
{ if (t==NULL)
return;
midorder (fpt, t->left);
fprintf (fpt, "%s %d\n", t->word, t->count)
midorder (fpt, t->right);
}
void main()
{ FILE *fpt; char word[40];
BNODE *root=NULL;
if ((fpt=fopen (INF,"r")) ==NULL)
{ printf ("Can’t open file %s\n", INF )
return;
}
while (getword (fpt, word) ==1 )
binary_tree (&root, word );
fclose (fpt);
fpt = fopen (OUTF, "w");
if (fpt==NULL)
{ printf ("Can’t open file %s\n", OUTF)
return;
}
midorder (fpt, root);
fclose(fpt);
}
选项
答案
(1)ptr=*t (2)ptr->word或 (*ptr).word 或ptr[0].word (3)ptr->count++ (4)p=ptr (5)*t=ptr
解析
(1)ptr=*t
本处填空是函数binary_tree的开始处,进行初始化,应该是让指针ptr指向树的根结点*t。因此应该填入:ptr=*t。
(2)ptr->word或 (*ptr).word 或ptr[0].word
本处填空是将要插入的单词word与当前指针ptr所指的结点的word比较大小。
(3)ptr->count++
本处填空是当要插入的单词word与指针ptr所指的结点的word相同时的处理,必然是将指针ptr所指结点的计数器count加1。因此应该填入:ptr->count++。
(4)p=ptr
本处填空是当要插入的单词word与指针ptr所指结点的word不相同时的处理,必然是让p指向ptr,而ptr指向其左子树或右子树。因此应该填入:p=ptr。
(5)*t=ptr
本处填空是当p为空时的处理,应该是让树的根结点指针指向ptr以便返回。
转载请注明原文地址:https://kaotiyun.com/show/DwDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
一个软件系统的生存周期包含可行性分析和项目开发计划、需求分析、设计(概要设计和详细设计)、编码、测试和维护等活动,其中(18)是软件工程的技术核心,其任务是确定如何实现软件系统。
以下关于软件系统安全防护策略的叙述,不正确的是______。A.网闸的主要目的是实现内网和外网的物理隔离B.防火墙的主要目的是实现内网和外网的逻辑隔离C.入侵检测系统通常部署在防火墙之外D.安全日志属于被动防护策略
关系数据库管理系统应能实现的专门关系运算包括______。A.选择、索引、统计B.选择、投影、连接C.关联、更新、排序D.显示、打印、制表
CMM对软件测试没有提供单独的关键过程领域(KPA),所以许多研究机构和测试服务机构从不同角度出发提出了有关软件测试方面的能力成熟度模型,其中软件测试成熟度模型(TMM)是当前影响力最大的软件测试过程模型。TMM制定了5个成熟度等级,它们依次是:初始级、阶
A模块通过简单数据类型(如整型)参数访问B模块,该参数在B模块内用于数据计算,则A、B模块之间存在______。
某单位局域网配置如下图所示,PC2发送到Intemet上的报文的源IP地址为()。
内存按字节编址从B3000H到DABFFH的区域其存储容量为____________。
模块A的功能为:从数据库中读出产品信息,修改后存回数据库,然后将修改记录写到维护文件中。该模块内聚类型为(38)内聚。以下关于该类内聚的叙述中,正确的是(39)。(39)
POP3协议采用(29)模式进行通信,当客户机需要服务时,客户端软件与POP3服务器建立(30)连接。(30)
随机试题
WhenNeilArmstrongandBuzzAldrinreturnedfromthemoon,theircargoincludednearlyfiftypoundsofrockandsoil,whichwer
被认为是继柏拉图《理想国》之后西方最完整、最系统的教育论著是()
为避免混杂因素影响调查结果,在不同年龄人群调查中,往往采取以下抽样调查方法中的哪一种
A.分离性感觉障碍B.振动觉,位置觉障碍,感觉性共济失调C.病变对侧肢体上运动神经元瘫D.支配肌肉瘫痪,萎缩,肌张力减低E.血管舒缩功能障碍,泌汗障碍
当供应商之间的竞争不充分时,可以通过()的办法降低采购总成本。
一般产品浴盆曲线的三个阶段包括()。
海南杂忆茅盾我们到了那有名的“天涯海角”。原以为这个地方是一条陆地,突入海中,碧涛澎湃,前无去路。但是错了,完全不是那么一回事。所谓“天涯海角”就在公路旁边,相去二三
设二维随机变量(X,Y)的联合密度函数为f(x,y)=求随机变量X,Y的边缘密度函数;
Working-classfamiliesintheUnitedStatesareusuallynuclear,andmanystudiesindicatethatworking-classcouplesmarryfor
Technologyisanothergreatforceforchange.Inpart,technologyhascausedthepopulationexplosion;manyofuswon’tnowbea
最新回复
(
0
)