3、按照四则运算加,减,乘,除优先关系的惯例,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程,表达式:A-B×C/D+E。

3、按照四则运算加,减,乘,除优先关系的惯例,画出对下列算术表达式求值时操作数栈和运算符栈的变化过程,表达式:A-B×C/D+E。


参考答案和解析
正确

相关考题:

●算术表达式x-(y+c)*8的后缀式是(22) (-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。(22) A.x y c 8 - + *B.x y - c + 8 *C.x y c 8 * + -D.x y c + 8 * -

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

可以用栈来检查算术表达式中的括号是否匹配。分析算术表达式时,初始栈为空,从左到右扫描字符,遇到字符“(”就将其入栈,遇到“)”就执行出栈操作。对算术表达式“(a+b*(a+b))/c)+(a+b)”,检查时,(33);对算术表达式“((a+b/(a+b)-c/a)/b”,检查时,(34)。这两种情况都表明所检查的算术表达式括号不匹配。A.栈为空却要进行出栈操作B.栈已满却要进行入栈操作C.表达式处理已结束,栈中仍留有字符“(”D.表达式处理已结束,栈中仍留有字符“)”

试采用设计模式描述算术表达式(不含圆括号)的设计方案。算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数。

阅读以下说明和C函数,将(1)~(5)空缺处的字句填写完整。[说明]计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的后缀表达式形式为“46 5 120 37-*+”。计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37-*+”的计算过程如下:a.依次将46、5、120、37压入栈中;b.遇到“-”,取出37、120,计算120-37=83,将其压入栈中;c.遇到“*”,取出83、5,计算5×83=415,将其压入栈中;d.遇到“+”,取出415、46,计算46+415=461,将其压入栈中;e.表达式结束,则计算过程完成。函数computing(char expr[],int*result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组 expr)的值,并通过参数result返回该值。函数的返回值为-1/0,分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。函数computing中所用栈的基本操作的函数原型说明如下。● void InitStack(STACK*s):初始化栈。● void Push(STACK*s,int e):将一个整数压栈,栈中元素数目增1。● void Pop(STACK*s):栈顶元素出栈,栈中元素数目减1。● int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。● int IsEmpty(STACKs):若s是空栈,则返回1;否则返回0。[C函数]

●算术表达式采用逆波兰式表示时不用括号,可以利用(20)进行求值。与逆波兰式ab-cd+*对应的中缀表达式是 (21) 。(20)A.数组B.栈C.队列D.散列表(21)A. a-b+c*dB.(a-b)*c+dC.(a-b)*(c+d)D. a-b*c+d

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

算术表达式a+(b-c)*d的后缀式是()(+、-、*表示算术的加、减、乘运算,运算符的优先级和结合性遵循惯例)。A.bc–d*a+B.abc–d*+C.ab+c–d*D.abcd–*+

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

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

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

算术表达式a*(b-c)+d的后缀式是(31) (一、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。A.abcd-*+B.abc-*d+C.abc-d*+D.ab-cd*+

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

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

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

表达式3*2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(),其中^为乘幂。

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

算术表达式a+(b-c)*d的后缀式是( )(-,+,*表示算数的减,加,乘运算,运算符的优先级和结合性遵循惯例)。A.bc-d*a+B.abc-d*+C.ab+c-d*D.abcd-*+

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

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

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

表达式求值算法需要两个栈,它们分别是下列哪些(),分别用于存储数据和符号。A、数据栈B、符号栈C、中间结果栈D、汉字栈

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

下面叙述中,错误的是()A、C语言基本的算术运算符不包含模运算符”%”B、算术运算符的优先级高于关系运算符C、自加和自减运算符的结合方向是”自右向左”D、C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行

单选题下面叙述中,错误的是()AC语言基本的算术运算符不包含模运算符”%”B算术运算符的优先级高于关系运算符C自加和自减运算符的结合方向是”自右向左”DC语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行

多选题表达式求值算法需要两个栈,它们分别是下列哪些(),分别用于存储数据和符号。A数据栈B符号栈C中间结果栈D汉字栈

单选题假设栈初始为空,将中缀表达式a/b+(c*d+e*f)/g转化为等价后表达式过程中,当扫描到f时,栈中的元素依次为:A+(*-B+(-*C/+(*-*D/+-*

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