首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。 程序用一棵有序二叉树存
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。 【说明】本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。 程序用一棵有序二叉树存
admin
2009-02-15
63
问题
阅读下列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://www.kaotiyun.com/show/DwDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
为验证某呼叫中心是否能够承受大量呼叫信息同时呼入并得到正确处理,测试工程师一般采用______测试工具。A.负载压力B.代码C.网络仿真D.故障诊断
假设在程序控制流图中有14条边、10个节点,则控制流程图的环路复杂性V(G)等于______。A.12B.8C.6D.4
下面关于软件测试模型的描述中,不正确的包括______。①V模型的软件测试策略既包括低层测试又包括高层测试,高层测试是为了源代码的正确性,低层测试是为了使整个系统满足用户的需求②V模型存在一定的局限性,它仅仅把测试过程作为在需求分析、概要设
给定关系模式R(A,B,C,D)、S(C,D,E),与π1,3,5等价的SQL语句如下:SELECT(22)FROMR,sWHERE(23);下列查询B=“信息”且E=“北京”的A、B、E的关系代数表达式中,查询效率
兼容性测试的测试范围包括___________。①硬件兼容性测试②软件兼容性测试③数据兼容性测试④平台兼容性测试
如下图所示,从输出的信息中可以确定的信息是___________。
以下关于用例图的叙述中,不正确的是(44)。图书馆管理系统需求中包含“还书”用例和“到书通知”用例,对于“还书”用例,应先查询该书是否有人预定,若有则执行“到书通知”。“还书”用例和“到书通知”用例是(45)关系,以下用例图中,(46)是正确的。管理员处
以下所示程序控制流程图中有(59)条线性无关的基本路径。
(16)是一种面向数据流的开发方法,其基本思想是软件功能的分解和抽象。
随机试题
A.心阳虚衰B.湿邪困脾C.脾虚气陷D.外邪侵袭E.脾胃湿热头面先肿,继而波及全身,小便短少,发热恶风者,多因
下列哪项不是闭经与痛经的共同病机()
某男,58岁。胸胁胀满,咳唾引痛,舌苔白滑,脉弦。辨证为
某患者,女,56岁,有糖尿病史,近期感觉头晕,头痛,肢体麻木,到医院就诊,被诊断为高血压。医生开具了缬沙坦胶囊。关于该药物的特点。不正确的是
地基变形计算深度应采用下列何种方法计算?[2003年第136题,2007年第130题]
()是衡量利率变动对银行当期收益影响的一种方法。
李某为一有限合伙企业中的有限合伙人,根据《合伙企业法》的规定,李某的下列行为中,不符合法律规定的是()。
[*]
在Windows98环境下,系统支持下面4种文件系统:Ⅰ.FATl2Ⅱ.FATl6Ⅲ.FAT32Ⅳ.CDFS硬磁盘存储系统可采用的文件系统为()。
Whatisnottheelementindefininglanguage?
最新回复
(
0
)