首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C函数,填补C函数中的空缺(1)~(6),将解答写在答题纸的对应栏内。 【说明】 函数numberOfwords(char message[])的功能是计算存储在message字符数组中的一段英文语句中的单词数目,输出每个单词
阅读以下说明和C函数,填补C函数中的空缺(1)~(6),将解答写在答题纸的对应栏内。 【说明】 函数numberOfwords(char message[])的功能是计算存储在message字符数组中的一段英文语句中的单词数目,输出每个单词
admin
2013-07-03
106
问题
阅读以下说明和C函数,填补C函数中的空缺(1)~(6),将解答写在答题纸的对应栏内。
【说明】
函数numberOfwords(char message[])的功能是计算存储在message字符数组中的一段英文语句中的单词数目,输出每个单词(单词长度超过20时仅输出其前20个字母),并计算每个英文字母出现的次数(即频数),字母计数时不区分大小写。
假设英文语句中的单词合乎规范(此处不考虑单词的正确性),单词不缩写或省略,即不会出现类似don’t形式的词,单词之后都为空格或标点符号。
函数中判定单词的规则是:
(1)一个英文字母串是单词;
(2)一个数字串是单词;
(3)表示名词所有格的撇号(’)与对应的单词看作是一个单词。
除上述规则外,其他情况概不考虑。
例如,句子“The 1990’s witnessed many changes in people’s concepts of conservation”中有10个单词,输出如下:
The
1990’s
witnessed
many
changes
in
people’s
concepts
of
conservation
函数numberOfwords中用到的部分标准库函数如下所述。
【C函数】
int numberOfwords(char message[])
{
char wordbuffer[21],i=0; /*i用作wordbuffer的下标*/
(1)
pstr;
int PS[26]={0}; /*ps[0]用于表示字母‘A’或‘a’的频数*/
/*ps[1]用于表示字母‘B’或‘b’的频数,依此类推*/
int wordcounter=0;
pstr=message;
while(*pstr){
if(
(2)
(*pstr)){/*调用函数判断是否为一个单词的开头字符*/
i=0:
do{/*将一个单词的字符逐个存入wordbuffer[],并对字母计数*/
wordbuffer[i++]=*pstr;
if(isalpha(*pstr)){
if
(3)
( *pstr)ps[*pstr-’a’]++;
else ps[ *pstr- ’A’]++;
}
(4)
; /*pstr指向下一字符*/
}while(i<20&&(isalnum(*pstr)||*pstr==”\”));
if(i>=20) /*处理超长单词(含名词所有格形式)*/
while(isalnum(*pstr)||*pstr==”\”){pstr++;}
(5)
=’\0’; /*设置暂存在wordbuffer中的单词结尾*/
wordcounter++; /*单词计数*/
puts(wor。dbuffer); /*输出单词*/
}
(6)
; /*pstr指向下一字符*/
}
return wordcounter:
}
选项
答案
(1)char*或Lresigned char* (2)isalnum或isalpha(*pstr)||isdigit (3)islower或!isupper (4)pstr++或其等价形式 (5)wordbuffer[i]或*(wordbuffer+i) (6)pstr++或其等价形式
解析
本题考查考生利用C语言的库函数解决实际问题。
(1)处用于声明pstr,从该函数的第8行的pstr=message赋值语句可以看出,该处应填入char*。
程序接下来对整个一段英文语句中的所有字符进行循环。(2)处调用函数判断是否为一个单词的开头字符。由于一个单词的开头字符可以是英文字符或数字,因此可调用题目提供的库函数isalnum进行判断。因此,(2)处应填入isalnum。
(3)处所在的程序段实现对字母计数。if(isalpha(* pstr))用于判断是否为英文字符,而且英文字符分为大写字母和小写字母。若为大写字母,执行对大写字母计数,即ps[*pstr一’A’]++;若为小写字母,执行对小写字母计数,即ps[*pstr一’a’]++。因此,(3)处应填入islower或!isupper。
(4)处用于实现将pstr指向下一字符,这在对字符串进行处理时十分常见,应填入pstr++或++pstr或其等价形式。
(5)处用于实现设置暂存在wordbuffer中的单词结尾,而i为一个单词中字符计数的下标,单词结尾标志在单词中最后一个字符后面的位置。因此,(5)处应填入wordbuffer
或*(wordbuffer+i)。
(6)处用于实现将pstr指向下一字符,和(4)完全相同,应填入pstr++或++pstr或其等价形式。
转载请注明原文地址:https://kaotiyun.com/show/5njZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Excel的A1单元格中输入函数“=ROUND(3.1415,2)”,则A1单元格中显示的值为(57)。
PowerPoint可以通过插入(55)来完成统计、计算等功能。
在用Word软件编辑文档时,若误删除了一个数据,随后可使用______命令进行恢复。
删除Windows中某个应用程序的快捷方式,意味着(39)。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
在Excel2007的A1单元格中输入函数“=LEFT(“CHINA”,1)”,按回车键后,则A1单元格中的值为()。
开机后显示器和主机都没有任何反应,首先应该检查(21)。
文件的使用权限包括完全控制、允许写入、允许读取、允许运行、允许删除等,其中完全控制、允许写入、允许读取、允许运行都允许用户进行的操作是(38)。
防火墙包过滤规则的默认策略为拒绝,下表给出防火墙的包过滤规则配置界面。若要求内部所有主机能使用IE浏览器访问外部IP地址为202.117.118.23的Web服务器,为图中(1)~(4)空缺处选择正确答案。(1)A.允许B.拒绝(2)A.192
该公司用一个C类地址块202.119.110.0/24组网,将下表中的(1)~(6)处空缺的主机地址或子网掩码填写在答题纸的相应位置。可以采用(10)方法防止IP地址被盗用。(10)A.IP地址与子网掩码进行绑定B.IP地址与MAC地址进行
随机试题
下列各组辅料中同时可作稀释剂、干燥黏合剂的是()
关于沥青混合料马歇尔试件制作,密度、马歇尔稳定度、车辙试验,请回答以下问题。沥青混合料试件制作方法(击实法)成型步骤,正确的顺序应为()。①插入温度计至混合料中心附近,检查混合料温度。②在装好的混合料上面垫一张吸油性小的圆纸。③用小
期货投资者保障基金的资金运用限于()。
更换基金管理人或者基金托管人,应当经参加基金份额持有人大会的基金份额持有人所持表决权的()以上通过。
影响股票投资价值的内部因素包括()。①公司净资产②股利政策③并购重组④货币政策
物业服务费的缴纳和督促的主要内容有()。
经规划部门批准的规划变更、设计单位同意的设计变更导致商品房的结构型式、户型、空间尺寸、朝向变化,以及出现合同当事人约定的其他影响商品房质量或者使用功能情形的,房地产开发企业应在变更确立之日起()日内,书面通知买受人。
认知心理学以瑞士著名心理学家()为代表,他通过一系列实验揭示了儿童思维发展的规律。
Smokingisconsidereddangeroustothehealth.Ourtobacco-seller,Mr.Johnson,therefore,alwaysaskshis【C1】______,iftheyar
We________supplierslikeyoutohelpuskeepourscheduleandsatisfyourcustomers.
最新回复
(
0
)