试题查看

【分析解答题】


阅读下列说明和算法,回答问题1和问题2。
【说明】
算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示:
文件 提示信息
(1+2)
ABC) 缺少对应左括号:第2行,第4列
((DEF)gx)缺少对应左括号:第3行,第10列
(((h)
ij)(k
(1ml) 缺少对应右括号:第5行,第4列;第4行,第1列
在算法2-1中,stACk为一整数栈。算法中各函数的说明见表4。
{{B}}表4{{/B}}
函数名
函数功能
push (int i) 将整数i压人栈stACk中
pop( )stACk的栈顶元素出栈
Empty( )判断stACk栈是否为空。若为空,函数返回1,否则函数返回0
nExtCh( )读取文本文件中的下—个字符,井返回该字符的AsCii值,将字
符所在的行号以及字符在行中的位置分别存储到变量row和Col
中,若遇到文件结束符,则将变量EoF置为truE
kinD (ChAr Ch) 判断字符Ch是左括号还是右括号,若是左括号,函数返回1,
若是右括号,函数返回2,若两者都不是,函数返回。
【算法2-1】将栈stACk 置空,置EoF为FAlsE Ch < - nExtCh(); whilE( notEoF) k < - kinDCh); iF(k=={{u}} (1) {{/u}}) push({{u}} (2) {{/u}});push({{u}} (3) {{/u}}); ElsEiF(k=={{u}} (4) {{/u}}) 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; EnDwhilE EnDiF 为了识别更多种类的括号,对算法2-1加以改进后得到算法2-2。算法2-2能够识别圆括号、方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数kinD(ChAr Ch)的参数及其对应的返回值见表5。               {{B}}表五{{/B}}
Ch
(
)
{
}


其他
返回值
1
2
3
4
5
6
0
【算法2-2】
将栈stACk置空,置EoF为FAlsE
Ch< -nExtCh();
whilE(notEoF)
k <-kinD(Ch);
iF( k >0)
iF({{u}} 判断条件1 {{/u}})
push({{u}} (5) {{/u}});push({{u}} (6) {{/u}});push({{u}} (7) {{/u}});
ElsEiF({{u}} 判断条件2 {{/u}}AnD{{u}} 判断条件3 {{/u}})
pop() ;pop() ;pop();
ElsE
显示行号row; 显示列号Col;
EnDiF
EnDiF
Ch < - nExtCh();
EnDwhilE
iF(not Empty( ) )
显示错误信息(缺少对应左括号或右括号);
whilE( not Empty( ) )
pop( ); row←pop( ); Col←pop( );
显示行号row;显示列号Col;
EnDwhilE
EnDiF
【问题1】
请将【算法2-1】和【算法2-2】中(1)~(7)处补充完整。

查看答案解析

参考答案:

正在加载...

答案解析

正在加载...

根据网考网移动考试中心的统计,该试题:

0%的考友选择了A选项

0%的考友选择了B选项

0%的考友选择了C选项

0%的考友选择了D选项

你可能感兴趣的试题

SOXisanalternative{{U}}(71){{/U}}forXML.某商场的部门、员工和商品3个实体之间的关系如图5-7所示。假设每个部门有若干名员己知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护SOXisanalternative{{U}}(71){{/U}}forXML.SOXisanalternative{{U}}(71){{/U}}forXML.函数f()、g()的定义如下所示,调用函数f时传递给形参x的值为5,若采用传值(