2014年11月 程序员 下午题答案及解析.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

一、问答题

1、阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏

[说明]

本流程图旨在统计一本电子书中各个关键词出现的次数。假设已经对该书从头到尾

依次分离出各个关键词{A(i)|i=1,…,n}(n>1)},其中包含了很多重复项,经下面的

流程处理后,从中挑选出所有不同的关键词共m个{K(j)|j=1,…,m},而每个关键词K

(j)出现的次数为NK(j),j=1,…,m。

[流程图]

参考答案:

1

K(j)

NK(j)+1→NK(i)或NK(j)++或等价表示

m+1→m或m++或等价表示

A(i)

解析:

本题的流程图旨在统计一本电子书中各个关键词出现的次数,其中涉及到初始化和

关键词的比较计数过程。

1.初始化部分:第一个关键词作为选出的第一个关键词,其出现次数初始化为

1,同时选出的关键词数目初始化为1。因此,1→NK(1)和A(1)→K(1)是对第

一个关键词的初始处理。

2.第2框处理的是将关键词A(i)与已选出的关键词K(j)进行比较,所以空缺处应

填写K(j)。

3.如果A(i)等于K(j),则对应的关键词计数NK(j)需要增加1。因此,NK(j)+1→

NK(j)或NK(j)++表示计数增加的操作。

4.如果A(i)不等于所有的K(j),意味着这是一个新的关键词。此时,需要将其

加入选出的关键词列表,并统计其出现次数。因此,需要先将计数器m增加

1(表示新增一个关键词),然后执行A(i)→K(m)或将A(i)作为新的K(m+1)

。所以,m+1→m或m++是增加选出的关键词数目的操作,而A(i)→K(m)或

将A(i)作为新的K(m+1)是新增关键词的处理。

2、阅读以下说明和C函数,填补代码中的空缺,将解答填入答题纸的对应栏内。

[说明]

函数removeDuplicates(chai

*str)的功能是移除给定字符串中的重复字符,使每种字符仅保留一个,其方法是:

对原字符串逐个字符进行扫描,遇到重复出现的字符时,设置标志,并将其后的非

重复字符前移。例如,若str指向的字符串为aaabbbbscbsss,则函数运行后该字符

串为absc。

[C代码]

void

removeDuplicates(char*str)

{

int

i,len=strlen(str);/*求字符串长度*/

if(______)return;

/*空串或长度为1的字符串无需处理*/

for(i=0;i<len;i++){

intflag=0;

/*字符是否重复标志*/

intm;

for(m=______;m<len;m++){

if(Str[i]==str[m]){

______;

break;

}

}

if(flag){

intn,idx=m;

/*将字符串第idx字符之后、与str[i]不同的字符向前移*/

for(n=idx+1;n<len;n++)

if(Str[n]!=str[i]){

str[idx]=str[n];

______;

}

str[______]=\0;

/*设置字符串结束标志*/

}

}

}

参考答案:

len<2或len<=1或等价表示

i+1或等价表示

flag=1或给flag赋值为任何一个不是0的值

idx++或idx=idx+1或等价表示

idx或等价表示

解析:

本题考查的是对字符串处理的C语言编程能力。根据题目描述和代码注释,我们需

要完善一个名为removeDuplicates的函数,该函数的功能是移除给定字符串中的重

复字符,使每种字符仅保留一个。

首先,对于空(1),由于函数需要处理的是长度大于1的字符串,所以当字符串长度

小于等于1时,无需处理,直接返回。因此应填入的内容为len<=1或等价表示。

其次,对于空(2),我们需要对字符串从当前位置开始扫描是否存在重复字符,所

以应从当前位置的下一个字符开始扫描,即i+1。

然后,对于空(3),当我们找到一个重复字符时,需要设置标

您可能关注的文档

文档评论(0)

喵呜刷题 + 关注
实名认证
文档贡献者

来喵呜刷题,完成你的职业蜕变!

1亿VIP精品文档

相关文档