itgle.com

可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于(),因此可判断出该表达式中的括号不匹配。A、需要进行出栈操作但栈已空B、需要进行入栈操作但栈已满C、表达式处理已结束,但栈中仍留有字符“(”D、表达式处理已结束,但栈中仍留有字符“)”

题目
可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于(),因此可判断出该表达式中的括号不匹配。

A、需要进行出栈操作但栈已空

B、需要进行入栈操作但栈已满

C、表达式处理已结束,但栈中仍留有字符“(”

D、表达式处理已结束,但栈中仍留有字符“)”


相似考题
更多“可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于(),因此可判断出该表达式中的括号不匹配。 ”相关问题
  • 第1题:

    可以用栈来检查算术表达式中的括号是否匹配。分析算术表达式时,初始栈为空,从左到右扫描字符,遇到字符“(”就将其入栈,遇到“)”就执行出栈操作。对算术表达式“(a+b*(a+b))/c)+(a+b)”,检查时,( );对算术表达式“((a+b/(a+b)-c/a)/b”,检查时,(请作答此空)。这两种情况都表明所检查的算术表达式括号不匹配。

    A.栈为空却要进行出栈操作
    B.栈已满却要进行入栈操作
    C.表达式处理已结束,栈中仍留有字符“(”
    D.表达式处理已结束,栈中仍留有字符“)”

    答案:C
    解析:
    对算术表达式(a+b*(a+b))/c)+(a+b)进行括号检查时,栈操作的顺序为:入栈,入栈,出栈,出栈,出栈,……当需要进行第三次出栈操作时,发现栈已空,已不可能完成出栈操作。对算术表达式((a+b/(a+b)-c/a)/b进行括号检查时,栈操作的顺序为: 入栈,入栈,入栈,出栈,出栈第1次出栈操作取出的是第3次刚入栈的“(”,第2次出栈操作取出的是第2次入栈的“(”。直到表达式检查结束,第1次入栈的“(”仍没有取出,因此,表达式中的括号并不匹配。本例是栈的重要应用之例。编译程序中常用栈来检查语句(或程序)中的括号是否匹配。在日常生活中,当人们进入一个复杂的大院时,需要多次进门,多次出门。每次出门,总是退出最近进门的院。在同一位置堆积货物时,总是先取最近刚放上的货。所以,栈的应用也是比较常见的。可以用这种日常生活中的例子来形象地理解栈的操作。

  • 第2题:

    可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空, 然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于( ),因此可判断出该表达式中的括号不匹配。

    A.需要进行出栈操作但栈已空
    B.需要进行入栈操作但栈已满
    C.表达式处理已结束,但栈中仍留有字符“(”
    D.表达式处理已结束,但栈中仍留有字符“)”

    答案:A
    解析:
    本题考查出栈入栈的基础知识。左括号入站,右括号出栈,,该题中括号为:()),所以当执行第2个右括号时,第一个左括号已经出栈了,栈为空栈故正确答案为:A

  • 第3题:

    在括号匹配算法中,当正扫描的符号是右括号,此时的栈是空栈,则()。

    A.右括号进栈;

    B.继续向下扫描;

    C.取出栈顶元素做匹配检查;

    D.此时出现右括号多了的不匹配现象。


    进栈

  • 第4题:

    可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空, 然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于( ),因此可判断出该表达式中的括号不匹配。

    A. 需要进行出栈操作但栈已空
    B. 需要进行入栈操作但栈已满
    C. 表达式处理已结束,但栈中仍留有字符“(”
    D. 表达式处理已结束,但栈中仍留有字符“)”

    答案:A
    解析:
    左括号入站,右括号出栈,, 该题中括号为: ( ) ) ,所以当执行第2个右括号时,第一个左括号已经出栈了,栈为空栈

  • 第5题:

    可利用一个栈来检查表达式中的括号是否匹配,其方法是:初始时设置栈为空,然后从左到右扫描表达式,遇到左括号“(”就将其入栈,遇到右括号“)”就执行出栈操作,忽略其他符号。对于算术表达式“a*(b+c))d”,由于( ),因此可判断出该表达式中的括号不匹配。

    A.需要进行出栈操作但栈已空
    B.需要进行入栈操作但栈已满
    C.表达式处理已结束,但栈中仍留有字符“(”
    D.表达式处理已结束,但栈中仍留有字符“)”

    答案:A
    解析: