题目详情

可以用栈来检查算术表达式中括号是否匹配。分析算术表达式时,初始栈为空,从左到右扫描字符,遇到字符“(”就将其入栈,遇到“)”就执行出栈操作。对算术表达式“(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次入栈“(”仍没有取出,因此,表达式中括号并不匹配。本例是栈重要应用之例。编译程序中常用栈来检查语句(或程序)中括号是否匹配。在日常生活中,当人们进入一个复杂大院时,需要多次进门,多次出门。每次出门,总是退出最近进门院。在同一位置堆积货物时,总是先取最近刚放上货。所以,栈应用也是比较常见。可以用这种日常生活中例子来形象地理解栈操作。

你可能感兴趣的试题

单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.0
  • B.1
  • C.2
  • D.3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.1、1
  • B.1、2
  • C.2、2
  • D.2、3
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.3
  • B.4
  • C.5
  • D.6
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.V(S3)和V(S5)V(S6)
  • B.P(S3)和V(S5)V(S6)
  • C.V(S3)和P(S5)P(S6)
  • D.P(S3)和P(S5)P(S6)
查看答案
单选题

中级软件设计师,章节练习,中级软件设计师系统开发运行知识

  • A.243ms
  • B.246ms
  • C.254ms
  • D.280ms
查看答案

相关题库更多 +