- 3
- 0
- 约5.74千字
- 约 12页
- 2021-11-09 发布于天津
- 举报
软件设计师模拟题及答案解析第十七套
●试题一
阅读以下说明和流程图 ( 如图 1 所示 ) ,回答问题 1 至问题 4,将答案写在答卷的对应栏内。
【说明】
本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式
(A-(B*C+D)*E)/(F+G))
的后缀表示为
ABC*D+E*-FG+/
为了方便,假定变量名为单个英文字母,运算符只有 +、- 、* 、/( 均为双目运算符,左结合 ) ,并假定所提供的算术表达是非空且语法是正确的。 另外,中缀表示形式中无空格符, 但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:
数组 IN[]存储中缀表达式;
数组 POLISH[]存储其后缀表达式;
数组 S[]是一个后进先出栈;
函数 PRIOR(CHAR)返回符号 CHAR的优先级,各符号的优先级见表 2:
【问题 1】
填充流程图中①的判断条件。
【问题 2】
写出子程序 A 的功能,并顺序写出实现该功能的操作
【问题 3】
写出子程序 B 的功能,并顺序写出实现该功能的操作。
【问题 4】
中缀表达式
(A+B-C*D)*(E-F)/G
经该流程图处理后的输出是什么?
【流程图】
图 1
●试题一
[问题 1]
【答案】 PRIOR( IN[i ]):PRIOR(S[p])
[问题 2]
【答案】功能: 将当前符号 IN[i ]入栈
操作: p+1-p
原创力文档

文档评论(0)