首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。 【说明】 以字符流形式读入一个文件,从文件中检索出6种C语言的关键字,并统计、输出每种关键字在文件中出现的次数。本程序中规定:单词是一个以空格或’\t’、’\n’结束的字符串。其中
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。 【说明】 以字符流形式读入一个文件,从文件中检索出6种C语言的关键字,并统计、输出每种关键字在文件中出现的次数。本程序中规定:单词是一个以空格或’\t’、’\n’结束的字符串。其中
admin
2010-01-15
44
问题
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。
【说明】
以字符流形式读入一个文件,从文件中检索出6种C语言的关键字,并统计、输出每种关键字在文件中出现的次数。本程序中规定:单词是一个以空格或’\t’、’\n’结束的字符串。其中6种关键字在程序中已经给出。
【程序】
#include <stdio.h>
#include <stdlib.h>
FILE *cp;
char fname[20], buf[100];
int NUM;
struct key
{ char word[10];
int count;
}keyword[]={ "if", 0, "char", 0, "int", 0,
"else", 0, "while", 0, "return", 0};
char *getword (FILE *fp)
{ int i=0;
char c;
while((c=getc(fp))!= EOF &&(1));
if(c==EOF)
return (NULL);
else
buf[i++]=c;
while((c=fgetc(fp))!=EOF && c!="&& c!=’\t’ && c!=’\n’ )
buf[i++]=c;
buf
=’\0’;
return(buf);
}
void lookup(char *p)
{ int i;
char *q, *s;
for(i=0; i<NUM; i++)
{ q=(2);
s=p;
while(*s && (*s==*q))
{ (3))
if((4))
{ keyword
.count++;
break;
}
}
return;
}
void main()
{ int i;
char *word;
printf("lnput file name:");
scanf("%s", fname);
if((cp=fopen(fname, "r"))==NULL)
{ printf("File open error: %s\n", fname);
exit(0);
}
NUM=sizeof(keyword)/sizeof(struct key);
while((5))
lookup(word);
fclose(cp);
for(i=0;i<NUM;i++)
printf("keyword:%-20s count=%d\n",keyword
.word,keyword
.count);
}
选项
答案
(1)(c==’ ’||c==’\t’||c==’\n’) (2)&keyword[i].word[0] (3) s++; q++; (4) *s==*q (5)(word=getword(cp))!=NULL
解析
本题考查C语言对文件中字符串处理的相关知识。
题目要求从文件中检索已经给出的6种C语言的关键字,并统计、输出每种关键字在文件中出现的次数。这需要我们将文件中的字符串与6种C语言的关键字匹配,如果匹配成功一次,则记录下相关的内容。
从代码中我们可以分析出,函数getword()的主要功能是从文件中取出单个单词,并保存在数组buf[]中,第(1)空就在这个函数中,在文件中取单词时,首先要能区别单词的开始和结束标志。题目中规定单词是一个以空格或’\t’、’\n’,结束的字符串,再结合函数getword()的代码我们可以知道,此空应该填(c==’ ’||c==’\t’||c==’\n’)。
函数lookup()是关键函数,其功能是匹配文件的字符串与C语言的关键字,并记录匹配结果。函数lookup()中的参数指针变量p是指向getword()的返回结果的。函数体中 for循环语句下面是分别用其不同的关键字做匹配,在匹配过程中,用指针变量q和s分别指向关键字字符串和文件字符串。因此,第(2)空处的作用是让指针变量q指向关键字字符串,因此,答案为&keyword
.word[0]。第(3)空处的作用是让字符串能自动往后移动,因此,此空答案为s++;q++。第(4)空处是个条件判断语句,其下面的语句实现的功能是增加关键字出现次数,那么此句的功能应该是判断匹配是否成功,因此,第(4)空答案为*S==*q。
第(5)空是在主函数中,主函数的功能是首先打开一个文件,打开文件后,应该调用getword()函数取单词,并调用lookup()函数让单词与关键字匹配,再输出结果。从代码来看,第(5)空处是一个循环的条件,循环的主体是调用lookup()函数。因此,此处的作用是是否取得单词。第(5)空答案为(word=getword(cp))!=NULL。
转载请注明原文地址:https://kaotiyun.com/show/NBjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
某企业甲乙两个部门招聘职工中,男女应聘人数和录用人数情况如下表:从上表看出,各部门女性录用率都大于男性录用率。从该企业合计来看,()。
国家大型博物馆存放有大量珍贵文物。为安全管理文物,可采用__________技术,一旦文物被移动,能自动记录。若是非法移动,则会自动报警。
上级要求信息处理技术员做a、b、c、d、e五件工作。先做什么,后做什么,如何安排呢?根据工作性质以及紧急程度,他列出了如下几条规则:a应在b前 c应在a前 d应在a前 a应在e前d应在b前 b应在e前 c应在d前 c应在
在Word编辑状态下,有些英文单词或汉字下面会自动加上红色或绿色的波浪型细下划线。以下叙述中,“波浪型细下划线(44)”是错误的。
交通信号能同时被多人接收,说明信息具有(23)。
关于ADSL接入技术,下面的论述正确的是(15)。
某企业的大数据工程项目包括如下四个阶段的工作:①数据获取,②数据清洗与整理,③数据分析,④数据展现。一般来说,工作量较大、花费时间较长的阶段是______(1),技术含量最高的阶段是______(2),准备向有关部门递交成果的阶段是______(3)。
下列选项中,不能收发电子邮件的软件是______。
请根据网页显示的效果图和网页中的元素说明,将HTML文本中(n)处的解答填入答题纸对应的解答栏内。说明在Ⅲ浏览器中输入常春藤大学招生办公室主页的网址并回车后,网页显示的效果如图5-1所示。HTML文本<html><he
该公司用一个C类地址块202.119.110.0/24组网,将下表中的(1)~(6)处空缺的主机地址或子网掩码填写在答题纸的相应位置。可以采用(10)方法防止IP地址被盗用。(10)A.IP地址与子网掩码进行绑定B.IP地址与MAC地址进行
随机试题
某胆瘘患者胆汁大量流失至体外,胆汁分泌比正常人少数倍,这是由于下列哪项减少
Theemployeesareaskedtoavoid(use)________acellphonewhentheyareoperatingheavymachinery.
人民政协是我国的政权组织的形式。()
A.洛美沙星B.氯苯那敏C.沙丁胺醇D.阿司匹林E.烟酸易产生光毒性的药物是
电气暗配管安装中,配管必须穿过基础时,正确的作法为()。
煤矿许用炸药包括()。
产生偏差原因分析中,属于设计原因的是()。
提出学生的学习是有意义的接受学习的是()。
DNA分子是怎样被用作纳米世界建筑材料的呢?打个比方,我们在宏观世界所采用的建筑材料通常可分为柔性材料(如钢筋)和刚性材料(如砖块),前者决定结构的_________性,后者决定结构的_________性,两者结合成形态各异而又稳固的结构。类似地,可利用D
YouhavereadthefollowingmagazineadvertisementinwhichaBritishgiftislookingforpen-friendsandyouwanttogetintou
最新回复
(
0
)