题目详情

程序设计语言的大多数语法现象可以用CFG (上 下文无关文法)表示。下面的CFG产生式集用于描述简单算术表达式,其中+、-、*表示加、减、乘运算,id表示单个字母表示的变量,那么符合该文法的表达式为( )。

P:E→E+T|E-T|T

T→T*F|F

F→-F|id

  • A.a+-b-c
  • B.a*(b+c)
  • C.a*-b+2
  • D.-a/b+c

正确答案及解析

正确答案
A
解析

根据本题的语法推导式,可以发现,这里没有终结符“(”、")"、"/",因此选项B和D错误。

在推导的过程中,会发现"*"只能通过T推导,此时必定经过了E+T或E-T,也就是说“+”或“-”必定在“*”前面。因此C错误。

只有A能够被推导,推导过程如下:

(1)通过E→E-T,从起始符E得到E-T;

(2)通过E→E+T,将上面的E展开为E+T,得到E+T-T;

(3)通过E→T→F→id→单个字母a;

(4)通过T→F→-F→-id→单个字母-b;

(5)通过T→F→id→单个字母c。

综上,可以从起始符E得到a+-b-c,即为A选项。

包含此试题的试卷

你可能感兴趣的试题

单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.V(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.P(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案
单选题

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

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

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

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

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

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

高级系统分析师,专项练习,软件水平考试《高级系统分析师》押题

  • A.P(S2)和P(S4)
  • B.P(S2)和V(S4)
  • C.V(S2)和P(S4)
  • D.V(S2)和V(S4)
查看答案

相关题库更多 +