首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和算法,回答问题1和问题2,将解答填入答题纸的对应栏内。 [说明] 算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示: 文件 提示信息 (
阅读下列说明和算法,回答问题1和问题2,将解答填入答题纸的对应栏内。 [说明] 算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示: 文件 提示信息 (
admin
2005-03-15
104
问题
阅读下列说明和算法,回答问题1和问题2,将解答填入答题纸的对应栏内。
[说明]
算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示:
文件 提示信息
(1+2)
abc) 缺少对应左括号:第2行,第4列
((def)8x)) 缺少对应左括号:第3行,第10列
(((h)
ij)(k
(1ml) 缺少对应右括号:第5行,第4列;第4行,第1列
在算法2-1中,stack为一整数栈。算法中各函数的说明如表4-1所示。
[算法2-1]
将栈stack置空,置EOF为False
ch←nextch();
while(not EOF)
k←kind(ch);
if(k==(1))
push((2));push((3));
elself(k==(4))
if(not empty())
pop(),pop(),
else
显示错误信息(缺少对应左括号或右括号);
显示行号row;显示列号col;
endif
endif
ch←nextch();
endwhile
if(not empty())
显示错误信息(缺少对应左括号或右括号);
while(not empty())
row←pop();col←pop();
显示行号row;显示列号col
cndwhile
endif
为了识别更多种类的括号,对算法2-1加以改进后得到算法2-2。算法2-2能够识别圆括号,方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数kinnd(char ch)的参数及其对应的返回值如表4-2所示。
表4-2 函数的参数及其返回值
[算法2-2]
将栈stack置空,置EOF为False
ch←nextch();
while(not EOF)
k←kind(ch);
if(k>0)
if( 判断条件1 )
push((5));push((6));push((7));
elseif( 判断条件2 and 判断条件3 )
pop();pop();pop();
else
显示错误信息(缺少对应左括号或右括号);
显示行号row;显示列号col;
endif
endif
ch←nexteh();
endwhile
if(not empty())
显示错误信息(缺少对应左括号或右括号);
while(not empty())
pop();row←pop();col←pop();
显示行号row;显示列号col;
endwhile
endif
选项
答案
(1)1 (2)col (3)row (4)2 (5)col (6)row (7)k
解析
本程序的功能是检查文本文件中的圆括号是否匹配。从提示信息中,可以看出程序不但可以检查出是否有括号匹配错误,而且还知道具体错在哪个括号。由于括号匹配的规则是把最近的左右括号配成一对,所以括号匹配最常用的方法是遇到左括号则入栈,遇到右括号就出栈,出栈的友括号与当前的右括号是匹配的。此算法也不例外。
下面具体分析算法:
首先,把栈置空,置EOF为False,并从文件中读取第一个字符到ch。然后进入循环,循环体执行一次处理一个ch。进入循环,利用kind函数算出ch的类型k,接下来就是一大堆的空了,这个算法本身并不长,但空有这么多,而且比较集中,为解题增加了一定的难度。这里虽然空多,但基本结构却很明显,大致流程如下:
当k等于什么的时候把什么入栈,当k等于什么的时候且栈不为空的时候出栈,如栈为空打印错误信息,如果都不是则读文件下一个字符再次进入循环。
再结合上面提到的算法,可以知道,入栈应是在类型k为1(即ch为左括号时),出栈应是在类型k为2(即ch为右括号时)。所以(1)空应填1,(4)空应填2。
(2)和(3)到底是把什么压入栈了呢?在(4)下面出栈时,并没有用到栈的内容。在此有些考生理所当然地认为栈中的内容没有什么用,随便压个ch进去了,而且2个都是写的ch。其实从逻辑上就可以推翻这种解答,如果是压的同样的数据,又是在同一位置出栈,算法大可只用个push,pop就可以了。这时继续往后面看,来寻找正确的答案。当看到“row<-pop();col<-pop();”时,所有的疑惑可迎刃而解了,应该把row和col压入堆栈!那么row和col谁先谁后呢?由于是先弹出row后弹出col,按栈的后进先出的规则,可知先压入栈的是col,再压入row。所以(2)空填写col,(3)空填写row。
完成[算法2-1]的分析后,分析[算法2-2]就比较轻松了。(5)(6)(7)空的答案可直接到后面找到,因为后面有“pop();row<-pop();col<-pop();”所以(5)空应填col,(6)空应填row。
转载请注明原文地址:https://kaotiyun.com/show/5yDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读下列说明,回答问题,将解答写在答题纸的对应栏内。【说明】某软件的积分计算模块每天定时根据用户发布的文章数、文章阅读数来统计用户所获取的积分,用户分为普通用户和专家用户,两类用户具有不同的积分系数。图4-1是该模块的类图,图中属性和
阅读下列说明,回答问题,将解答填入答题纸的对应栏内。【说明】在某嵌入式智能服务机器人的软件设计中,为了更好地记录机器人的个体信息和机器人的工作信息,为智能服务机器人设计了信息数据库。数据库主要完成收集智能服务机器人反馈信息的作用,记录所有机器人的所有工
阅读下列C程序,回答问题,将解答填入答题纸的对应栏内。【C程序】intisbinary(constvoid*buf,constsizetbuf—fen){sizetsuspiciousbytes=0;sizettotal—by
阅读下列C程序,回答问题,将解答填入答题纸的对应栏内。【C程序】intisbinary(constvoid*buf,constsizetbuf—fen){sizetsuspiciousbytes=0;sizettotal—by
某一确定性有限自动机(DFA)的状态转换图如下图所示,令d=0|1|2|…|9,则以下字符串中,不能被该DFA接受的是(33),与该DFA等价的正规式是(34)。(其中,ε表示空字符)①3857②1.2E+5③-123.④.
在软件生命周期的不同阶段,需要实施不同类型的测试工作,单元测试是对程序设计进行验证,其中(39)不是单元测试的主要内容。在进行单元测试过程中,通常测试工程师都需要借助(40)来代替所测模块调用的子模块;在单元测试的基础上,需要将所有模块按照概要设计和详细设
多条件覆盖是一种逻辑覆盖,它的含义是设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,满足多条件覆盖级别的测试用例也是满足(44)级别的;针对布尔表达式A&&(B‖C)执行逻辑覆盖测试,测试用例至少需要(45)种组合才能满足多条件覆盖的要
设关系模式R(A,B,C),传递依赖指的是(16);下列结论错误的是(17)。
风险分析在软件项目开发中具有重要作用,包括风险识别、风险预测、风险评估和风险控制等。“建立风险条目检查表”是(18)时的活动,“描述风险的结果”是(19)时的活动。
随机试题
A.广豆根B.番木鳖C.双花D.仙灵脾E.草河车山豆根的别名是
某企业2011年实现销售收入为3000万元,取得租金收入50万元;销售成本、销售费用、管理费用共计2800万元(全部允许所得税前扣除);“营业外支出”账户列支35万元,其中:通过希望工程基金委员会向某灾区捐款10万元,直接向某困难地区捐赠5万元,非广告性赞
财产保险的被保险人或受益人,对保险人请求赔偿或者给付保险金的权利,自其知道保险事故发生之日起( )内不行使而消灭。
资料一C国蓝先生在D国攻读物理学硕士学位期间,兼职于D国一家光伏产业的公司,从光伏组件的销售业务,蓝先生熟悉太阳能电极板零部件产品的销售渠道及客户群体,积累了丰富的销售经验及客户资源,善于搜集客户要求信息,并能够根据客户要求对产品提出改进的建议。 2
有如下类声明:classWd{inta;public:intb;intc;private:
ALACRITY:
The______ofthewordisunknown,butitiscertainlynotfromGreek.
A------marketpriceJ------identitycardB------check-intimeK------roomserviceC------pricelistL------luggagelabelD-----
GriffithworkedforafirmthatspecializedineconomicdevelopmentinWashingtonD.C.becausesheneededmoneytopayforherd
IntheUnitedStatesthecostoflivinghasbeensteadilyrisingforthepastfewdecades.Foodprices,clothingcosts,housing
最新回复
(
0
)