【说明】 本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及

题型:问答题

问题:

【说明】
本程序从正文文件text.in中读入一篇英文短文,统计该短文中不同单词及出现次数,并按词典编辑顺序将单词及出现次数输出到正文文件word.out中。
程序用一棵有序二叉树存储这些单词及其出现的次数,边读入边建立,然后中序遍历该二叉树,将遍历经过的二叉树上的结点内容输出。
【函数】
# include <stdio.h>
# include <malloc.h>
# include <ctype.h>
# include <string.h>
# define INF"text.in"
# define OUTF "word.our’
typedef struct treenode
char *word;
int count;
struct treenode *left, *right;
BNODE;
int getword(FILE *fpt, char *word)
char c;
c=fgetc(tpt);
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, ptr->word);/* 保存当前比较结果 */
if (!compres)
 (2) ; return;
else
p=ptr;
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);
(3) ;
if (p==NULL)
*t=ptr;
else if (compres>0)
p->right=ptr;
else
p->left=ptr;

void midorder(FILE *fpt, BNODE *t)
if (t==NULL)
return;
midorder(fpt, (4) );
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( (5) );
fclose(fpt);
fpt=fopen(OUTF, "w");
if (fpt==NULL)
printf("Can’t open fife %s\n", OUTF);
return;

midorder(fpt, root);
fclose(fpt);

考点:计算机软件水平考试初级程序员初级程序员下午试题
题型:问答题

7080000读作______,改写成用“万”作单位的数是______.

题型:问答题

在一组数据中,众数可能不止一个,也可能没有众数.______.(判断对错)

题型:问答题

模切

题型:问答题

青少年若不注意用眼卫生会造成近视,近视眼应佩戴什么镜加以矫正(  )

A.反光镜

B.平面镜

C.凸透镜

D.凹透镜

题型:问答题

农民不仅是农村流动书库服务的主体,他们也应该是参与其建设的主体。

更多题库