首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请将【算法4-1】和【算法4-2】中,(1)~(7)空缺处的内容补充完整。 请从以下选项中选择相应的判断逻辑填写【算法4-2】中的“判断条件1”至“判断条件3”。注意,如“判断条件2”的逻辑判断结果为假,则无须对“判断条件3”进行判断。 判断条件1
请将【算法4-1】和【算法4-2】中,(1)~(7)空缺处的内容补充完整。 请从以下选项中选择相应的判断逻辑填写【算法4-2】中的“判断条件1”至“判断条件3”。注意,如“判断条件2”的逻辑判断结果为假,则无须对“判断条件3”进行判断。 判断条件1
admin
2009-02-15
30
问题
请将【算法4-1】和【算法4-2】中,(1)~(7)空缺处的内容补充完整。
请从以下选项中选择相应的判断逻辑填写【算法4-2】中的“判断条件1”至“判断条件3”。注意,如“判断条件2”的逻辑判断结果为假,则无须对“判断条件3”进行判断。 判断条件1:(8) 判断条件2:(9) 判断条件3:(10) 【供选择的答案】A.栈顶元素表示的是与当前字符匹配的左括号
B.栈顶元素表示的是与当前字符匹配的右括号
C.字符是左括号
D.字符是右括号
E.栈不空F.栈空G.字符是括号
选项
答案
(8)C或字符是左括号 (9)E或栈不空 (10)A或栈顶元素的是与当前字符匹配的左括号
解析
这是一道要求读者用创建Thread类的子类的方法实现多线程的编程题。本题的解答思路如下。
通常把限定只能在一端进行插入和删除操作的线性表称为栈,所以栈又称为运算受限的线性表。把可以进行插入和删除操作的一端称为栈顶(习惯用top指针指示),而另一端称为栈底。当栈中不包含任何数据元素时,这个栈就为空栈。
由于栈具有“后进先出”的运算特点,因此在程序设计中应用十分广泛。例如进制转换、括号匹配的检验、表达式求值及迷宫求解等。
【算法4-1】的功能是检查文本文件中的圆括号是否匹配。若文件中存在圆括号而没有对应的左括号或者右括号,则给出图1-18所示的提示信息。从图1-18给出的信息可知,程序不但要求检查出是否有括号匹配错误,而且还需要给出具体的出错位置。通常,括号匹配的规则是把最近的左右括号配成一对,所以括号匹配最常用的方法是遇到左括号则入栈,遇到右括号则出栈。这样,出栈的左括号与当前的右括号是匹配的。
【算法4-1】分析:
1)栈置空,置EOF为FALSE,并从文件中读取第一个字符到ch,然后进入循环。循环体执行一次处理一个ch。进入循环,利用kind函数算出ch的类型k。
2)虽然【算法4-1】中有(1)~(4)空缺处,但其基本结构却很明显,大致流程如下。
当k等于什么的时候把什么入栈;
当k等于什么且栈不为空的时候,进行出栈操作。如果栈为空,则打印错误信息:如果都不是,则读文件的下一个字符再次进入循环。
根据以上所提到的算法可知,入栈操作应该发生在类型A为1(即ch为左括号)时,而出栈操作应该发生在类型A为2(即ch为右括号)时。因此(1)空缺处所填写的内容是“1”,(4)空缺处所填写的内容是“2”。
由于在(4)空缺处之后的出栈操作中,并没有用到栈的内容。因此可能有些读者理所当然地认为栈中的内容没有什么用,可以在(2)、(3)空缺处随便压个ch,即两个空缺处均填写“ch”。但换个角度思考,从逻辑上就可以推翻这种解答。如果(2)、(3)空缺处压的是同样的数据,又是在同一位置出栈,算法大可只用一个push、pop就可以了。
由语句“row<-pop();col<-pop();”可知,(2)、(3)空缺处应该把row和col压入堆栈。由于是先弹出FOW后弹出col,并且根据栈的“后进先出”规则可知,应先将col压入栈,再压入row。因此 (2)空缺处所填写的内容是“col”,(3)空缺处所填写的内容是“row”。
【算法4-2】分析:
同理,由【算法4-2】中的语句“row<-pop根据栈的“后进先出”规则可知,();col<-pop():”可知, (5)、(6)空缺处应该把row和col压入堆栈。应先将col压入栈,再压入row,即(5)空缺处所填写的内容是“col”,(6)空缺处所填写的内容是“row”。
由于判断条件1为真时,需要进行入栈操作,因此判断条们:1应是判断字符是不是左括号,如果是就入栈,即(8)空缺处应选择选项C的“字符是左括号”。
判断条件2和判断条件3是相关联的,当两个判断条件都为真时,要进行出栈操作,因此要判断栈是否为空。由此可以得出在判断条件2和判断条件3中,至少有一个必定是用来判断栈是否为空的。可以用判断栈顶元素来确定当前括号是否和栈中压入括号是同一类型的,但前提是左括号类型入了栈,而且要在栈顶。如果(7)空缺处压入的是k,则正好符合这一条件。所以(7)空缺处所填写的内容是“k”。
同时,判断括号是否匹配的条件也就可以确定了,如果当前ch是右括号且当前栈顶的左括号(只有左括号入了栈)类型与ch匹配,则匹配成功。根据试题说明中的提示信息:若“判断条件2”的逻辑判断结果为假,就无须对“判断条件3”进行判断,所以应把“栈不空”作为判断条件2,“栈顶元素表示的是与当前字符匹配的左括号”作为判断条件3,即(9)空缺处应选择选项E的“栈不空”,(10)空缺处应选择选项A的“栈顶元素表示的是与当前字符匹配的左括号”。
转载请注明原文地址:https://jikaoti.com/ti/PrW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
字符串编辑有3种基本操作:在指定位置插入一个字符、在指定位置删除一个字符、在指定位置用另一个字符替换原来的字符。将字符串ABCDE,编辑成ECDFE,至少需要执行(6)次基本操作。
信息处理技术员教程共有318页,甲在第一天看了全书的1/6,第二天看了剩下的1/5,第三天应从第(32)页开始看。
________________不会是信息系统的功能。
在收集、整理、存储大数据时,删除重复数据的作用不包括________________。
在Excel中,B2单元格的内容为123,A1单元格中的内容为“=B2”,当用Delete键删除B2单元格的内容后,则A1单元格显示(55)。
人类传播信息的五大类媒体按其出现的先后顺序排列为________。
在编辑Word2007文档时,若多次使用剪贴板移动文本内容,当操作结束时,剪贴板中的内容为__________。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
在Excel中,若单元格C5=1000、D5=50、C6=6000、D6=40,在单元格E5中输入公式“=C5*$D$5”,再将此公式复制到F6单元格中,则F6单元格的值为(54)。
下列关于在Word中文字和表格之间转换的叙述,正确的是(51)。
随机试题
企业合并对价分摊评估中,对于房屋建筑物的评估,说法错误的是()。
偏心工件两轴线之间的距离叫偏心距。()
针刺下列何穴有导致气胸危险
狂犬病的临诊特点是()。
下列药物既有抗抑郁作用,又有抗焦虑作用的是
防水等级为11级的防水屋面,防水层合理使用年限为()
下列关于专门用于产品生产的专利权会计处理的表述中,正确的有()。
北魏孝文帝改革的社会背景是()。
“______之治”是隋文帝开创的,“武德之治”是______统治时期开创的。
在表设计器中设置的索引包含在()。
最新回复
(
0
)