编译原理复习题

作者在 2008-07-11 23:49:22 发布以下内容

编译原理复习题

一、选择题

1、在使用高级语言编程时,首先可通过编译程序发现源程序的全部    错误。

a. 语法      b. 语义        c. 语用        d. 运行

2 要在某台机器上为某种语言构造编译程序,必须掌握下述那些内容____

a.    汇编语言           b. 高级语言     c. 源语言          d. 目标语言

e.       程序设计方法学      f. 机器语言      g. 编译方法

abf            afg             cdg            efg

3、用高级语言书写的源程序 必须通过编译,产生目标代码后才能投入运行。这种说法_____

a. 正确      b. 不正确   c. 不一定        d. 都不对

4、文法G所描述的语言是_____的集合。

a.   文法G的字汇表V中所有符号组成的符号串

b.   文法G的字汇表V的闭包V*中的所有符号串

c.   由文法的识别符号推出的所有符号串

d.   由文法的识别符号推出的所有终结符号串

5、给定文法, A::= bA | cc, 下面哪些符号串可由其推导出_____

cc           b*cc       b*cbcc    bccbcc    bbbcc

可选项有:

a.       b.         c.          d.      e.

6、一个语言的文法是_____

a.有限的             b.不唯一的              c.唯一的

7、若一个文法是递归的,则它所产生语言的句子个数______

a.必定是无穷的      b.是有限个的           c.根据具体情况而定

8、语法分析常用的方法是_____

自顶向下    自底向上    自左向右   自右向左

可选项有:

a.         b.          c.          d.

9LR(k)方法是______

a. 从左到右分析,每次走k步的一种编译方法。

b. 从左到右分析,共经过k步的一种编译方法。

c. 从左到右分析,每次向前预测k步的一种编译方法。

d. 从左到右分析,是否归约句柄要向后看k个输入符号的一种编译方法。

10(2)、在编译过程中,符号表的主要作用是_____

a. 帮助错误处理    b. 辅助语法错误的检查      c.  辅助语义的正确性检查

d. 辅助代码生成     e. 辅助对目标程序的优化

11LL(1)文法的条件是______

      a.   对形如U::=x1 | x2 | … | xn 的规则,要求First(xi)∩ First(xj)=Φ,(i≠j);

b.  对形如 U::=x1 | x2 | … | xn 的规则,若xi=>*ε, 则要求First(xj)∩ Follow(U)=Φ,(i≠j)

     c.    a b

   d.  都不是

12LR(k)文法_______二义性的。

a.都是          b.都不是             c.不一定都是

13、描述语言 L= { ambn |  nm1 } 的文法为_____

a. Z::=Abb        A::=aA | a           B::=bB   | b

b. Z::=AB | b      A::=Aa | a                    B::=aBb  | b

c. Z::=Ab              A::=aAb | a

d. Z::=aAb            A::=Ab | aAb | ε

14、一个句型中的可归前缀为______

a.短语        b.简单短语        c.句柄

d.规范前缀,且句柄位于该规范前缀的后端

15Chmosky3型语言是这样一种语言,其产生式限制为____

a.A::= π         b.  A::=a   A::=aB  

c.α::=β         d.   αAβ::=απβ

16、高级语言编译程序常用的语法分析方法中,LL分析法属于______分析方法。

a.自左至右   b.自顶向下   c.自底向上   d.自右至左

17、 LL(1) 分析法的名字中,第一个“L”的含义是_____,第二个“L”的含义是______

a.自左至右   b.自顶向下   c.自底向上   d.自右至左

18、 设有文法G[S]:  S-> S*S | S+S | (S) | a, 该文法_____二义性文法。

a.                  b. 不是            c. 不一定

19、动态存储分配时,可以采用的分配方法有 ______

(1) 过程为单位的栈式动态存储分配

(2)   堆存储分配         

(3)   最佳分配方法

a. (1)   b.  (2)   c. (2)(3)    d. (1)(2)(3)

20. 过程调用时,参数的传递方法通常有________

     (1) 传值    (2) 传地址    (3) 传结果     (4) 传名

     a. (1)(2)   b.(1)(2)(3)    c. (1)(2)(4)     d. (1)(2)(3)(4)

21. 在编译方法中, 动态存储分配的含义是什么? 可选项有____.

a.在运行阶段对源程序中的量进行分配

b.在编译阶段对源程序中的量进行分配

c.在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要改变

d.以上都不正确

22. 过程信息表中至少应该包括有 _________

(1) 过程名    (2) 过程的静态层次           (3) 过程入口地址

(4) 过程首部在源程序中的行号               (5) 有关过程参数的信息

可选项有:

a.(1)(2)(3)  b.(1)(3)(4)  c.(1)(2)(3)(4)  d.(1)(3)(5)  e.(1)(2)(3)(4)(5)

23.

默认分类 | 阅读 6983 次
文章评论,共1条
zap688
2010-06-05 22:35
1
有这个复习题的全部试题及答案吗?非常感谢,有的话可以发至zap68@tom.com,非常感谢
游客请输入验证码