首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。 程序用一棵有序二叉树存
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。 程序用一棵有序二叉树存
admin
2009-02-15
86
问题
阅读下列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
软件设计师下午应用技术考试
软考中级
相关试题推荐
在计算机体系结构中,CPU内部包括程序计数器PC、存储器数据寄存器MDR、指令寄存器IR和存储器地址寄存器MAR等。若CPU要执行的指令为:MOV R0,#100(即将数值100传送到寄存器R0中),则CPU首先要完成的操作是(1)。
若内存容量为4GB,字长为32,则______。A.地址总线和数据总线的宽度都为32B.地址总线的宽度为30,数据总线的宽度为32C.地址总线的宽度为30,数据总线的宽度为8D.地址总线的宽度为32,数据总线的宽度为8
如果在程序中的多个地方需要使用同一个常数,那么最好将其定义为一个符号常量,这样______。
逻辑覆盖标准包括()。①判定覆盖②语句覆盖③条件判定覆盖④修正条件判定覆盖
软件评价过程的特性不包括()。
软件可靠性管理把软件可靠性活动贯穿于软件开发的全过程,成为软件工程管理的一部分。确定软件可靠性度量活动属于()阶段。
内存按字节编址从B3000H到DABFFH的区域其存储容量为____________。
已知函数f()、g()的定义如下所示,调用函数f时传递给形参x的值是5。若g(a)采用引用调用(callbyreference)方式传递参数,则函数f的返回值为(12);若g(a)采用值调用(callbyvalue)的方式传递参数,则函数f
某客户端在采用ping命令检测网络连接故障时,发现可以ping通127.0.0.1及本机的IP地址,但无法ping通同一网段内其他工作正常的计算机的IP地址,说明该客户端的故障是(69)。
某文件管理系统采用位示图(bitmap)记录磁盘的使用情况。如果系统的字长为32位,磁盘物理块的大小为4MB,物理块依次编号为:0、1、2、…,位示图字依次编号为:0、1、2、…,那么16385号物理块的使用情况在位示图中的第(24)个字中描述;如果磁盘的
随机试题
无软件的计算机也称为_______。
心理咨询与心理治疗的联系与区别是什么?
A、chalkB、saltC、calmD、talkC
男性,55岁,慢性咳嗽、咳痰15余年,测VC为预计值的85%,FEV1/FVC为52%。此肺功能改变可能是
阅读下面的文章。回答后面的问题。财富他打着一把雨伞漫步在一条寂静的小街上,猛抬头发现路边一棵小树下站着个大约十一二岁的姑娘。衣服全淋湿了,乌黑的长发上雨水顺着发梢往下滴。他急忙走到她
教学模式具有普遍适用性。
新闻事业的群众性(黑龙江大学2004年研)
Subject:SelfintroductionFrom:maxlynd@yahoo.comTo:mailclub@egmail.com.DearMr.Washington,MynameisMaxLynd.Ihe
Questions14-17Thetexthas8paragraphs(A-H).Whichparagraphdoeseachofthefollowingheadingsbestfit?*
Theteamhasbeenworkingovertimeontheresearchproject______.
最新回复
(
0
)