重要提示:请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
首页 > 外贸类考试
网友您好,请在下方输入框内输入要搜索的题目:
搜题
拍照、语音搜题,请扫码下载APP
扫一扫 下载APP
题目内容 (请给出正确答案)
[主观题]

写出下列表达式的后缀形式。 (1) (a+b)/(c+d) (2) b^2-4*a*c (3) a*c-b/c^2 (4) (a+b)*c+d/(e+f) (5) (a+b)*(c*d+e)-a*c

答案
暂无答案
更多“写出下列表达式的后缀形式。 (1) (a+b)/(c+d) (2) b^2-4*a*c (3) a*c-b/c^2 (4) (a+b)*c+d/(e+f) (5) (a+b)*(c*d+e)-a*c”相关的问题

第1题

阅读以下说明和流程图(如图1所示),回答问题1至问题4。【说明】 本流程图是将中缀表示的算术表达式转

阅读以下说明和流程图(如图1所示),回答问题1至问题4。

【说明】

本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式

(A-(B*C+D)*E)/(F+G))

的后缀表示为

ABC*D+E*-FG+/

为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:

数组 IN[]存储中缀表达式;

数组 POLISH[]存储其后缀表达式;

数组 S[]是一个后进先出栈;

函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级见表2:

填充流程图中①的判断条件。

点击查看答案

第2题

试题四(共 15 分) 阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 [说明]

试题四(共 15 分)

阅读以下说明和 C 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。

[说明]

计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式

“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(STACK s):若s 是空栈,则返回1 否则返回 0。

[C 函数]

int computing(char expr[], int *result)

{

STACK s; int tnum, a,b; char *ptr;

InitStack(&s);

ptr = expr; /*字符指针指向后缀表达式串的第一个字符*/

while (*ptr!='\0') {

if (*ptr==' ') { /*当前字符是空格*/

(1) ; /*字符指针指向下一字符*/

continue;

}

else

if (isdigit(*ptr)) {

/*当前字符是数字,则将该数字开始的数字串转换为数值*/

tnum = (2) ;

while (*ptr>=’0’ && *ptr <=’9’) {

tnum = tnum * 10 + (3) ;

ptr++;

}

Push((4) );

}

else /*当前字符是运算符或其他符号*/

if (*ptr=='+'||*ptr=='-'||*ptr =='*'||*ptr =='/'){

if (!IsEmpty(s)) {

a = Top(s); Pop(&s); /*取运算符的第二个运算数*/

if (!IsEmpty(s)) {

b = Top(s); Pop(&s); /*取运算符的第一个运算数*/

}

else return -1;

}

else return -1;

switch (*ptr) {

case '+': Push(&s,b+a); break;

case '-': Push(&s,b-a); break;

case '*': Push(&s,b*a); break;

case '/': Push(&s,b/a); break;

}

}

else

return -1;

ptr++; /*字符指针指向下一字符*/

} /* while */

if (IsEmpty(s)) return -1;

else {

(5) = Top(s); Pop(&s); /*取运算结果*/

if (!IsEmpty(s)) return -1;

return 0;

}

}

点击查看答案

第3题

已知一算术表达式的中缀表达式为a-(b+c/d)*e,其后缀形式为()A.-a+b*c/dB.-a+b*cd/eC.-+*abc/deD.

已知一算术表达式的中缀表达式为a-(b+c/d)*e,其后缀形式为()

A.-a+b*c/d

B.-a+b*cd/e

C.-+*abc/de

D.abcd/+e*-

点击查看答案

第4题

● 表达式“X = A + B ? (C ? D)/E”的后缀表示形式可以为 (17) (运算符优先级相同时,遵循左结合的

● 表达式“X = A + B ? (C ? D)/E”的后缀表示形式可以为 (17) (运算符优先级相同时,遵循左结合的原则) 。

点击查看答案

第5题

● 表达式“X = A + B ? (C ? D)/E”的后缀表示形式可以为 (19) (运算符优先级相同时,遵循左结合的

● 表达式“X = A + B ? (C ? D)/E”的后缀表示形式可以为 (19) (运算符优先级相同时,遵循左结合的原则)

点击查看答案

第6题

● 表达式“X = A + B ? (C ? D)/E”的后缀表示形式可以为 (25) (运算符优先级相同时,遵循左结合的

● 表达式“X = A + B ? (C ? D)/E”的后缀表示形式可以为 (25) (运算符优先级相同时,遵循左结合的原则)

(25)

点击查看答案

第7题

下图为一个表达式的语法树,该表达式的后缀形式为()。 A. x 5 y * a / b -B. x 5 y a b* /-C.

下图为一个表达式的语法树,该表达式的后缀形式为()。

A. x 5 y * a / b -B. x 5 y a b* /-C. -/ * x 5 y a bD. x 5 * y a/b-

点击查看答案

第8题

表达式“X=A+B×(C-D)/E”的后缀表示形式可以为(25)(运算符优先级相同时,遵循左结合的原则)。

A.XAB+CDE/-×=

B.XA+BC-DE/×=

C.XABCD-×E/+=

D.XABCDE+×-/=

点击查看答案

第9题

● 表达式“X = A + B ? (C ? D)/E”的后缀表示形式可以为 (22) (运算符优先级相同时,遵循左结合的

● 表达式“X = A + B ? (C ? D)/E”的后缀表示形式可以为 (22) (运算符优

先级相同时,遵循左结合的原则) 。

(22)

A. XAB + CDE/??=

B. XA+BC?DE/?=

C. XABCD??E/+=

D. XABCDE+??/=

点击查看答案
下载APP
关注公众号
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案 购买前请仔细阅读《购买须知》
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《服务协议》《购买须知》
立即支付 系统将自动为您注册账号
已付款,但不能查看答案,请点这里登录即可>>>
请使用微信扫码支付(元)

订单号:

遇到问题请联系在线客服

请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示:请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
请用微信扫码测试
优题宝