更多"表达式a*(b+c)-d的后缀表达形式为()。"的相关试题:
[单项选择]表达式a×(b+c)-d的后缀表达式为()。
A. abcd×+-
B. abc+×d-
C. abc×+d-
D. -+×abcd
[简答题]【说明】
本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式
(A-(B*C+D)*E)/(F+G))
的后缀表示为
ABC*D+E*-FG+/
为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:
数组 IN[]存储中缀表达式;
数组 POLISH[]存储其后缀表达式;
数组 S[]是一个后进先出栈;
函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级见表2:
表2 CHAR | PRIOR(XHAR) |
*/ + - ( ) | 4 3 2 1 |
【问题1】
填充流程图中①的判断条件。
[简答题]【说明】
计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*(120-37)”的后缀表达式形式为“46 512037-*+”。
计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇,到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5120 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函数】
int computing (char expr[],int *result)
{
STACK s; int tnum,a,b; char *ptr;
InitStack(&s);
ptr=expr;pstr /*字符指针指向后缀表达式串的第一个字符*/
while(*ptr!=’/0’) {
if(*ptr==’ ’) { /*当前字符是空格*/
[单项选择]与表达式“a-(b+c)*d”对应的后缀式为()
A. ab-c*d+
B. abc+d*-
C. abcd-+*
D. abc+-*d
[单项选择]表达式“a*(b-(c+d))”的后缀式为()
A. cd+ab-*
B. ab*c-d+
C. abcd+-*
D. abcd*-+
[单项选择]表达式(1+34)*5-56/7的后缀表达式为()
A. 1+34*5-56/7
B. -*+1345/567
C. 134+5*567/-
D. 1345*+567/-
[单项选择]表达式“X=A+B×(C-D)/E”.的后缀表达式可以为()。(运算符优先级相同时,遵循左结合的原则)
A. XAB+CDE/-X=
B. XA+BC-DE/×=
C. XABCD-×E/+=
D. XABCDE+×-/=
[填空题]根据表达式值的类型,表达式可分为数值表达式、字符表达式、日期时间表达式、逻辑表达式;而大多数 【6】 表达式是带比较运算符的关系表达式。
[单项选择]中缀表达式A-(B+C/D)×E的后缀形式是()。
A. ABC+D/×E-
B. ABCD/+E×-
C. AB-C+D/E×
D. ABC-+D/E×
[单项选择]算术表达式(a-b)*c+d的后缀式是()(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
A. abcd - * +
B. ab - cd * +
C. ab - c * d +
D. abc - d * +
[单项选择]对表达式for(表达式1;;表达式3) 可理解为
A. for(表达式1;0;表达式3)
B. for(表达式1;1;表达式3)
C. for(表达式1;表达式3;)
D. for(;;表达式3)
[判断题]教学信息转换就是把课本卜的书面表达形式转换为口语、体态、板书等表达形式。
[判断题]教学信息转换就是把课本上的书面表达形式转换为口语、体态、板书等表达形式。()
[单项选择]已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为( )。
A. -A+B*C/DE
B. -A+B*CD/E
C. -+*ABC/DE
D. -+A*BC/DE
[单项选择]关于for(表达式1;表达式2;表达式3),叙述正确的是( )
A. 表达式1不可以缺省
B. 表达式2不可以缺省
C. 表达式3不可以缺省
D. 三个表达式都可以缺省