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

资格题库2022-08-02  37

问题 阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。【说明】    本流程图旨在统计一本电子书中各个关键词出现的次数。假设已经对该书从头到尾依次分离出各个关键词{A(i)|i=1,…,n)(n>1)},其中包含了很多重复项,经下面的流程处理后,从中挑选出所有不同的关键词共m个{K(j)|j=1,…,m},而每个关键词K(j)出现的次数为NK(j),j=1,…,m。

选项

答案

解析 (1)1   
(2)K(j)
(3)NK(j)+1→NK(j)    或NK(j)++    或等价表示
(4)m+1→m或m++    或等价表示
(5)A(i)

流程图中的第1框显然是初始化。A(1)→K(1)意味着将本书的第1个关键词作为选出的第1个关键词。1→NK(1)意味着此时该关键词的个数置为1。m是动态选出的关键词数目,此时应该为1,因此(1)处应填1。
    本题的算法是对每个关键词与己选出的关键词进行逐个比较。凡是遇到相同的,相应的计数就增加1;如果始终没有遇到相同关键词的,则作为新选出的关键词。
    流程图第2框开始对i=2,n循环,就是对书中其他关键词逐个进行处理。流程图第3框开始j=1,m循环,就是按已选出的关键词依次进行处理。
    接着就是将关键词A(i)与选出的关键词K(j)进行比较。因此(2)处应填K(j)。
    如果A(i)=K(j),则需要对计数器NK(j)增1,即执行NK(j)+1→NK(j)。因此(3)处应填NK(j)+1→NK(j)。执行后,需要跳出j循环,继续进行i循环,即根据书中的下一个关键词进行处理。
    如果A(i)不等于K(j),则需要继续与下个K(j)进行比较,即继续执行j循环。如果直到j循环结束仍没有找到匹配的关键词,则要将该A(i)作为新的已选出的关键词。因此,应执行A(i)→K(m+1)以及m+1→m。更优的做法是先将计数器m增1,再执行A(i)→K(m)。因此(4)处应填m+1→m,(5)处应填A(i)。
转载请注明原文地址:https://tihaiku.com/congyezige/2427258.html

最新回复(0)