首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明和算法,回答问题1和问题2,将解答填入答题纸的对应栏内。 [说明] 算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示: 文件 提示信息 (
阅读下列说明和算法,回答问题1和问题2,将解答填入答题纸的对应栏内。 [说明] 算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示: 文件 提示信息 (
admin
2005-03-15
75
问题
阅读下列说明和算法,回答问题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
软件设计师下午应用技术考试
软考中级
相关试题推荐
阅读下列C程序,回答问题,将解答填入答题纸的对应栏内。【C程序】staticvoidpermute_args(intpanonopt_start,intpanonopt_end,intopt_end,intncycle){
阅读下列说明,回答问题,将解答写在答题纸的对应栏内。某汽车维修公司的工时计算模块每天定时根据系统登记的维修信息统计维修工的工时工资。维修工分为学徒、普通维修工和高级维修工三种,三种维修工有不同的时薪标准。图4一1是该模块的类图,图中属性和操作前的“+”
阅读下列说明,回答问题,将解答写在答题纸的对应栏内。某汽车维修公司的工时计算模块每天定时根据系统登记的维修信息统计维修工的工时工资。维修工分为学徒、普通维修工和高级维修工三种,三种维修工有不同的时薪标准。图4一1是该模块的类图,图中属性和操作前的“+”
阅读下列说明,回答问题,将解答填入答题纸的对应栏内。【说明】某公司欲开发一款二手车物流系统,以有效提升物流成交效率。该系统的主要功能是:(1)订单管理:帮买顾问看到有买车线索后,会打电话询问买家是不是需要物流,若需要,帮买顾问就将这个线索发起为订单,
阅读下列C程序,回答问题,将解答填入答题纸的对应栏内。【C程序】intisbinary(constvoid*buf,constsizetbuf—fen){sizetsuspiciousbytes=0;sizettotal—by
在系统转换的过程中,旧系统和新系统并行工作一段时间,再由新系统代替旧系统的策略称为(20);在新系统全部正式运行前,一部分一部分地代替旧系统的策略称为(21)。
黑盒测试是通过软件的外部表现来发现软件缺陷和错误的测试方法,具体地说,黑盒测试用例设计技术包括(42)等。现有一个处理单价为1元的盒装饮料的自动售货机软件,若投入1元币,按下“可乐”、“雪碧”或“红茶”按钮,相应的饮料就送出来,若投入的是2元币,在送出饮料
某供应商数据库中的供应关系为SPJ(供应商号,零件号,工担号,数量),如下命令查询某工程至少用了3家供应商(包含3家)供应的零件的平均数量,并按工程号的降序排列。SELECT工程号,(14)FROMSPJGROUPBY工程号(15)
以下(53)属于在GB/T18905《评价者用的过程》中定义软件评价过程的特性。①可重复性②可再现性③公正性④客观性⑤合理性
随机试题
我国解决民族问题的根本出发点是:
未来深海水下线缆的外皮是由玻璃而不是由特殊的钢材或铝合金制成的。原因是金属具有颗粒状的微观结构,在深海压力之下,粒子交结处的金属外皮易于断裂。玻璃外皮就不会有这种情况,因为玻璃看起来是固体,由于它在压力之下可以流动,所以可将之视为液体。以下哪项最有可能从上
A.阴茎头型尿道下裂B.阴茎型尿道下裂C.阴茎阴囊型尿道下裂D.阴囊型尿道下裂E.会阴型尿道下裂适用于阴囊纵隔蒂皮瓣法修复的是
某男,37岁。2003年5月17日就诊,发热5天,伴全身酸痛,干咳无痰,胸闷气促,腹泻3~4次/天。1周前其妻因患“SARS”已住院治疗。体查:T38.9℃,P130次/分,R40次/分,BP100/70mmHg,神清合作,皮肤巩膜无黄染,浅表淋
某商场2001年2月份期初存货成本136000元,售价200000元;本期购入存货成本508000元,售价720000元;本期实现销售收入800000元。在采用零售价法核算的情况下,该商场2月末资产负债表中存货项目(假设期末存货未发生跌价损失)金额为(
近日,科学家根据火星车在加勒陨坑拍摄的图像发现,火星陨坑内的远古土壤存在着类似地球土壤裂纹剖面的土壤样本,通常这样的土壤存在于南极干燥谷和智利阿塔卡马沙漠,这暗示着远古时期的火星可能存在生命。以下哪项如果为真,最能支持上述结论?
下面对商鞅变法论述不正确的是()。
某学院10名博士生(B1~B10)选修6门课程(A~F)的情况如下表(用√表示选修): 现需要安排这6门课程的考试,要求是:(1)每天上、下午各安排一门课程考试,计划连续3天考完;(2)每个博士生每天只能参加一门课程考试,在这3天内考完全部选修课;
Thenaturalformsofenergyarethesun,thewind,thesea______heatfromthecenteroftheearth.
A、Byofferingfreeservicenexttime.B、Byrecommendingqualifieddoctorstothem.C、Byprovidingfinancialhelpforthem.D、By
最新回复
(
0
)