首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入对应栏内。 [说明] 下面的流程图旨在统计指定关键词在某一篇文章中出现的次数。 设这篇文章由字符A(0),…,A(n-1)依次组成,指定关键词由字符B(0),…,B(m-1)
阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入对应栏内。 [说明] 下面的流程图旨在统计指定关键词在某一篇文章中出现的次数。 设这篇文章由字符A(0),…,A(n-1)依次组成,指定关键词由字符B(0),…,B(m-1)
admin
2011-01-13
73
问题
阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入对应栏内。
[说明]
下面的流程图旨在统计指定关键词在某一篇文章中出现的次数。
设这篇文章由字符A(0),…,A(n-1)依次组成,指定关键词由字符B(0),…,B(m-1)依次组成,其中,n>m≥1。注意,关键词的各次出现不允许有交叉重叠。例如,在“aaaa”中只出现两次“aa”。
该流程图采用的算法是:在字符串A中,从左到右寻找与字符串B相匹配的并且没有交叉重叠的所有子串。流程图中,i为字符串A中当前正在进行比较的动态予串首字符的下标,j为字符串B的下标,k为指定关键词出现的次数。
[流程图]
选项
答案
0-k i+j i+m i+1 i
解析
本题考查用流程图描述算法的能力。
在文章中查找某关键词出现的次数是经常碰的问题。例如,为了给文章建立搜索关键词,确定近期的流行语,迅速定位文章的某个待修改的段落,判断文章的用词风格,甚至判断后半本书是否与前半本书是同一作者所写(用词风格是否一致)等,都采用了这种方法。
流程图最终输出的计算结果K就是文章字符串A中出现关键词字符串B的次数。显然,流程图开始时应将K赋值0,以后每找到一处出现该关键词,就执行增1操作K=K+1。
因此(1)处应填0→K。
字符串A和B的下标都是从0开始的。所以在流程图执行的开始处,需要给它们赋值0。接下来执行的第一个小循环就是判断A(i),A(i+1),…,A(i+j-1)是否完全等于B(0),B(1),…,B(m-1),其循环变量j=0,1,…,m-1。只要发现其中对应的字符有一个不相等时,该小循环就结束,不必再继续执行该循环。因此,该循环中继续执行的判断条件应该是A(i+j)=B(j)且j<m。只要遇到A(i+j)≠B(j)或者j=m(关键词各字符都己判断过)就不再继续执行该循环了。因此流程图的(2)处应填州i+j。
许多考生在(2)处填i,当j增1变化后,仍然使用A(i)进行比较就不对了。因此,在检查循环程序段时应多走查一次循环。
如果(2)处整体的判断条件不成立,则该判断关键词的小循环结束。此时可能有两种情况。一是在j=0,1,…,m-1时全都成立A(i+j)=B(j)(找到了一处关键词),直到j=m时才结束小循环;二是在j<m时就发现了字符不等的情况,这说明此处并不出现关键词。因此流程图中用j<m来区分找到与没有找到关键词的两种情况。
对于j=m,已找到一处关键词的情况,显然应该执行k=k+1,对关键词出现次数的变量k进行增1计算。同时,为了继续进行以后的判断,应将字符串A的下标i右移m(这是因为题中假设关键词的出现不允许重叠)。因此(3)处应填写i+m,表示应该从已出现的关键词后面开始再继续进行判断。由于此时的j=m,书写i+j的答案也是正确的,但这不是程序员的好习惯,因为这不符合逻辑思维的顺势,在程序不断修改的过程中容易出错。不少考生在(3)处填写i+1,这意味着下次判断关键词将从A(i+1)开始,这就使关键词的出现有可能发生部分重叠的现象。
流程图中,对于j<m的情况,表示刚才判断关键词时并非各个字符都完全相同,也就是说,刚才的判断结论是此处并没有出现关键词。即A(i)开始的子串并不是关键词。因此,下次判断关键词应该以A(i+1)开始,即(4)处应填i+1。
在下次判断关键词之前还应该判断是否全文已经判断完。最后一次小循环判断应该是对A(n-m),A(n-m+1),…,A(n-1)的判断。下标n-m来自从n-1倒数m个数。可以先试验写出A(n-m),A(n-m+1),…,A(n-1),再判断其个数是否为m。经检查,个数为(n-1)-(n-m)+1=m个,所以这是正确的。也可以用例子来检查次数是否正确。检查次数是程序员的基本功,数目的计算很容易少一个或多一个。
既然最后一次判断关键词应该是对A(n-m),A(n-m+1),…,A(n-1)的判断,即对i=n-m进行的小循环判断,所以当i>n-m时就应该停止大循环,停止再查找关键词了。
转载请注明原文地址:https://kaotiyun.com/show/Q6jZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
()不属于保护数据安全的技术措施。
纸张与()是使用喷墨打印机所需的消耗品。
鼠标指针的形状取决于它所在的位置以及与其他屏幕元素的相互关系。在文字处理的文本区域,指针就像(),指向当前待插入字符的位置。
在Excel工作表中,已输入的数据如下所示:按回车键后,B2单元格显示的值为()。
某单位的统计报表比较多,采用表号(报表的编号)的好处是______。
下列选项中,属于网络操作系统的是(37)。
为保护个人信息不被泄露,每个人都需要提高安全意识。以下各项,除(62)外,都是应该养成的安全习惯。
数据的收集方式可有多种,分别适用于各种情况。以下数据收集方式,不恰当的是______。
下列不属于著作权保护的是______。
在大型分布式信息系统中,为提高信息处理效率,减少网络拥堵,信息存储的原则是:数据应尽量(66)________________。
随机试题
患者咳嗽。查体:气管向左偏移。右侧胸廓较左侧饱满,叩诊出现鼓音。应首先考虑的是()
[2008年,第17题]微分方程y’’=y’2的通解是:(C1,C2为任意常数)()。
机电工程设备基础验收中对地脚螺栓的验收要求,安装胀锚地脚螺栓的基础混凝土强度不得小于()MPa,基础混凝土或钢筋混凝土有裂缝的部位不得使用胀锚地脚螺栓。
2016年底,A银行资产规模为600亿元,负债规模为700亿元,房地产贷款是该银行业务的重要组成部分。资产平均到期日为300天,负债平均到期日为360天。根据以上资料,回答下列问题:银行进行资产负债管理的理论依据为()。
某企业购买面值为1000万元的到期时一次还本付息公司债券作为长期投资,共支付价款1150万元,其中包括手续费4万元,应计利息46万元。假定购入债券的相关费用作为当期损益处理。该项债券投资时应计入“长期债权投资”账户的金额为()万元。
人类对技术的乐观或悲观倾向由来已久,但普林斯顿大学历史学家爱德华.泰讷的说法可能会使你大吃一惊:技术不仅没有给人类缔造福祉,反而极大地报复了人类。泰讷写道:就在我们欢庆又把自然世界的混乱削减了几分之时,我们制造的新机器开始脱离我们的控制,获得自身生命,通过
甲、乙、丙、丁4人共同出资成立一个公司,已知甲的出资额是其他三人出资总额的.乙的出资额是其他三人出资总额的,丙的出资额是其他三人出资总额的。又知丁比丙多出了12万,那么这家公司的注册资本应为()。
根据下列材料回答问题。美国经济不会萧条,次贷危机对中国影响有限。2001年美国互联网泡沫破灭,格林斯潘以低利率政策刺激消费和房地产需求使美国避免了萧条的危机,低利率政策导致房地产需求增加和泡沫的出现。而房地产泡沫破灭导致次贷危机,同时也使得财富蒸
考生文件夹下存在一个数据库文件“samp3.accdb”,里面已经设计了表对象“tEmp”、窗体对象“fEmp”、报表对象“rEmp”和宏对象“mEmp”。试在此基础上按照以下要求补充设计:试根据以下窗体功能要求,对已给的命令按钮事件过程进行补充和完善
LearningforItsOwnSakeForme,scientificknowledgeisdividedintomathematicalsciences,naturalsciencesorsciencesd
最新回复
(
0
)