算术表达式采用后缀式表示时不需要使用括号,使用(请作答此空)就可以方便地进行求值。a-b(c+d)(其中,-、+、*表示二元算术运算减、加、乘)的后缀式为( ),与该表达式等价的语法树为( )。

题目
算术表达式采用后缀式表示时不需要使用括号,使用(请作答此空)就可以方便地进行求值。a-b(c+d)(其中,-、+、*表示二元算术运算减、加、乘)的后缀式为( ),与该表达式等价的语法树为( )。

A.队列
B.数组
C.栈
D.广义表
参考答案和解析
答案:C
解析:
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

● 算术表达式采用逆波兰式表示时不用括号,可以利用 (20) 进行求值。与逆波兰式 ab-cd+* 对应的中缀表达式是 (21) 。

(20)

A .数组

B .栈

C .队列

D .散列表

(21)

A.a-b+c*d

B.(a_b)*c+d

C.(a-b)*(c+d)

D.a-b*c+d


正确答案:B,C

第2题:

算术表达式a+(b-c)*d的后缀式是(13) (-、+、*表示算术的减、加、乘运算, 运算符的优先级和结合性遵循惯例)。

A.bc-d*a+

B.abc-d* +

C.ab + c- d*

D.abcd-* +


正确答案:B
后缀表达式:又称逆波兰式表示方法:以从左到右的顺序先写操作数,后写操作符,如果操作数本身是一个具有操作数据的操作,则对其施用同样的规则。如:(a+b)*(a-b)后缀表达式为:ab+ab-*具体转换方法:(仅供参考)第一步:按照运算符的优先级对所有的运算单位加括号:式子变成:(a+((b-c)*d))第二步:把运算符号移动到对应的括号后面:(a((bc)-d)*)+第三步:去掉括号:abc-d*+

第3题:

算术表达式采用逆波兰式表示时不用括号,可以利用(1)进行求值。与逆波兰式ab-cd+*对应的中缀表达式是(2)。空白(2)处应选择()

A.a-b+c*d

B.(a-b)*c+d

C.(a-b)*(c+d)

D.a-b*c+d


参考答案:C

逆波兰式表示方式把运算符写在运算对象的后面,不需要使用括号。由于逆波兰式表示中的各个运算是按顺序执行的,因此,它的计值很容易实现。为此,仅需从左到右依次扫视表达式中的各个符号,每遇到一个运算对象,就把它压入栈顶暂存起来;每遇到一个二元(或一元)运算符时,就取出栈顶的两个(或一个)运算对象进行相应的运算,并用运算结果去替换栈顶的这两(或一)个运算对象,然后再继续扫视余留的符号,如此等等,直到扫视完整个表达式为止。当上述过程结束时,整个表达式的值将留于栈顶。a-b+c*d对应的逆波兰式为ab-cd*+。(a-b)*c+d对应的逆波兰式为ab-c*d+。(a-b)*(c+d)对应的逆波兰式为ab-cd+*。a-b*c+d对应的逆波兰式为abc*-d+。

第4题:

算术表达式采用后缀式表示时不需要使用括号,使用( )就可以方便地进行求值。a-b*(c+d)的后缀式为(请作答此空)。

A. a b c d- * +
B. a b c d * + -
C. a b – c * d +
D. a b c d + * -

答案:D
解析:
表达式“a-b*(b+d)”的后缀表达式形式为 “abcd + * -。一种比较简便的方法:a-b*(c+d),看计算的先后顺序,先是c+d,转化的时候将操作数放前面,然后再是运算符放后面,注意操作数的前后顺序保持不变,所以是cd+。然后b*(c+d),同样,操作数放前面,运算符放后面,所以是bcd+*。最后是a-b*(c+d),操作数放前面,运算符放后面,最后就是abcd+*-。

第5题:

算术表达式 a+b-c*d 的后缀式是( ) (一、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。

A. a b + C d * - B. a b c +- d* C. abcd+-* D. ab+c-d*


正确答案:A

第6题:

●算术表达式采用逆波兰式表示时不用括号,可以利用(20)进行求值。与逆波

兰式ab-cd+*对应的中缀表达式是 (21) 。

(20)

A.数组

B.栈

C.队列

D.散列表

(21)

A. a-b+c*d

B.(a-b)*c+d

C.(a-b)*(c+d)

D. a-b*c+d


正确答案:B,C

第7题:

算术表达式a+(b-c)*d的后缀式是()(+、-、*表示算术的加、减、乘运算,运算符的优先级和结合性遵循惯例)。

A.bc–d*a+

B.abc–d*+

C.ab+c–d*

D.abcd–*+


本题答案:C

第8题:

●算术表达式(a-b)*c+d的后缀式是(13) (-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。

(13)A.abcd-*+

B.ab-cd*+

C.ab-c*d+

D.ab c-d*+


正确答案:C

第9题:

若某算术表达式用二叉树表示如下, 则该算术表达式的中缀式为( ), 其后缀式为(请作答此空)。

A.abc+-d*
B.abcd*+-
C.ab-c+d*
D.abcd+*-

答案:A
解析:
中缀式的表达式接近人们进行数学计算使用的表达式,因此30题选择C。后缀式是采用左、右、根的方式进行遍历。

第10题:

算术表达式采用后缀式表示时不需要使用括号,使用(请作答此空)就可以方便地进行求值。a-b* (c + d)的后缀式为 ( ) 。

A.队列
B.数组
C.栈
D.广义表

答案:C
解析:
计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*(120-37)”的后缀表达式形式为 “46512037-*+”。计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中,若遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中,重复以上过程,直到后缀表达式扫描结束。表达式“a-b*(b+d)”的后缀表达式形式为“abcd + * -。

更多相关问题