1、在算术表达式求值的算法中,若当前正扫描的符号是运算符s,且s的优先级比运算符栈栈顶元素的优先级高,则()。A.运算符栈出栈,运算数出栈,做运算;B.s 进运算符栈;C.取运算符栈栈顶,运算数栈顶,做运算;D.s 进运算数栈;

1、在算术表达式求值的算法中,若当前正扫描的符号是运算符s,且s的优先级比运算符栈栈顶元素的优先级高,则()。

A.运算符栈出栈,运算数出栈,做运算;

B.s 进运算符栈;

C.取运算符栈栈顶,运算数栈顶,做运算;

D.s 进运算数栈;


参考答案和解析
s 进运算符栈;

相关考题:

试题四(共 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;}elseif (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;}}elsereturn -1;ptr++; /*字符指针指向下一字符*/} /* while */if (IsEmpty(s)) return -1;else {(5) = Top(s); Pop(s); /*取运算结果*/if (!IsEmpty(s)) return -1;return 0;}}

在算术运算符、比较运算符、逻辑运算符,这三种符号中,它们的优先级排列不正确的是( )A.算术/逻辑/比较B.比较/逻辑/算术C.比较/算术/逻辑D.算术/比较/逻辑

以下运算符的优先级描述正确的是()。 A、逻辑运算符的优先级最高B、*的运算符比()内部的高C、+运算符比逻辑运算符高D、逻辑运算符比*运算符高

POP(PUSH(S,A))的运算步骤是首先将元素A压入栈中,若栈S满,出现上溢现象,否则将元素A压入栈顶,且元素个数加1,然后做POP(S)运算,将栈顶元素弹出,且元素个数减一。( ) 此题为判断题(对,错)。

算术表达式中,算术运算符的优先级次序为( )。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函数]

阅读以下说明和流程图(如图1所示),回答问题1至问题4。【说明】本流程图是将中缀表示的算术表达式转换成后缀表示。如中缀表达式(A-(B*C+D)*E)/(F+G))的后缀表示为ABC*D+E*-FG+/为了方便,假定变量名为单个英文字母,运算符只有+、-、*、/(均为双目运算符,左结合),并假定所提供的算术表达是非空且语法是正确的。另外,中缀表示形式中无空格符,但整个算术表达式以空格符结束。流程图中使用的符号的意义如下:数组 IN[]存储中缀表达式;数组 POLISH[]存储其后缀表达式;数组 S[]是一个后进先出栈;函数PRIOR(CHAR)返回符号CHAR的优先级,各符号的优先级见表2:填充流程图中①的判断条件。

设计算法判断一个算术表达式的圆括号是否正确配对。(提示:对表达式进行扫描,凡遇到'('就进栈,遇')'就退掉栈顶的'(',表达式被扫描完毕,栈应为空。

阅读以下说明和C函数,将应填入 (n) 处的字句写在答题纸的对应栏内。4、【说明】 计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“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==' ') { /*当前字符是空格*/ (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; } }

设栈S和队列Q的初始状态均为空,元素abcdefg依次进入栈S。若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag,则栈S的容量至少是()。A.1B.2C.3D.4

在Excel中,各运算符号的优先级由大到小顺序为()。A 算术运算符、关系运算符、逻辑运算符B 算术运算符、逻辑运算符、关系运算符C 关系运算符、算术运算符、逻辑运算符D 逻辑运算符、算术运算符、关系运算符

在Excel中,算术运算符的优先级低于逻辑运算符。

在PHP中,逻辑运算符的优先级比算术运算符的优先级高。

算术运算符的优先级高于赋值符号的优先级。

在栈的操作中,顺序栈s,栈顶指针是top指向栈顶元素,用e接收出栈元素,则出栈正确的是()A、e=s[top--];B、s[--top]=e;C、e=s[++top];D、s[++top]=e;

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

顺序栈s,入栈的元素是e,栈顶是top,栈顶top指示栈顶元素所在位置而不是下一个空位置,则入栈正确的是()。A、s[top++]=e;B、s[++top]=e;C、top++;s[top]=e;D、s[top]=e;top++;

关于FoxPro中的运算符的优先级,下列选项中不正确的是().A、所有关系运算符的优先级都相等B、逻辑运算符的优先级高于关系运算符C、字符串运算符"+"和"-"优先级相等D、算术运算符的优先级高于其它类型运算符

顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e进栈操作的主要语句为()。A、s.elem[top]=e;s.top=s.top+1;B、s.elem[top+1]=e;s.top=s.top+1;C、s.top=s.top+1;s.elem[top+1]=e;D、s.top=s.top+1;s.elem[top]=e;

当在一条语句中使用多个逻辑运算符时,以下描述正确的是()A、SQLServer将首先求NOT运算符的值,然后是AND运算符,最后求OR运算符的值B、SQLServer将首先求And运算符的值,然后是Not运算符,最后求OR运算符的值C、当一个表达式中的所有运算符具有相同的优先级时,则按照从左到右的顺序依次求值D、当一个表达式中的所有运算符具有相同的优先级时,则按照从右到左的顺序依次求值

在Excel中,各运算符号的优先级由高到低的顺序为()。A、算术运算符,关系运算符,文本运算符B、算术运算符,文本运算符,关系运算符C、关系运算符,文本运算符,算术运算符D、文本运算符,算术运算符,关系运算符

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

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

单选题在Excel中,各运算符号的优先级由高到低的顺序为()。A算术运算符,关系运算符,文本运算符B算术运算符,文本运算符,关系运算符C关系运算符,文本运算符,算术运算符D文本运算符,算术运算符,关系运算符

单选题在栈的操作中,顺序栈s,栈顶指针是top指向栈顶元素,用e接收出栈元素,则出栈正确的是()Ae=s[top--];Bs[--top]=e;Ce=s[++top];Ds[++top]=e;

单选题顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e进栈操作的主要语句为()。As.elem[top]=e;s.top=s.top+1;Bs.elem[top+1]=e;s.top=s.top+1;Cs.top=s.top+1;s.elem[top+1]=e;Ds.top=s.top+1;s.elem[top]=e;

判断题在PHP中,逻辑运算符的优先级比算术运算符的优先级高。A对B错

判断题算术运算符的优先级高于赋值符号的优先级。A对B错