編譯原理復習題及答案 - 下載本文

編譯原理復習題及答案

一、 選擇題

1. 一個正規語言只能對應( B )

A 一個正規文法 B 一個最小有限狀態自動機 2. 文法G[A]:A→ε A→aB B→Ab B→a是( A )

A 正規文法 B 二型文法 3. 下面說法正確的是( A )

A 一個SLR(1)文法一定也是LALR(1)文法 B 一個LR(1)文法一定也是LALR(1)文法

4. 一個上下文無關文法消除了左遞歸,提取了左公共因子后是滿足LL(1)文法的( A )

A 必要條件 B 充分必要條件 5. 下面說法正確的是( B )

A 一個正規式只能對應一個確定的有限狀態自動機 B 一個正規語言可能對應多個正規文法

6. 算符優先分析與規范歸約相比的優點是( A )

A 歸約速度快 B 對文法限制少 7. 一個LR(1)文法合并同心集后若不是LALR(1)文法( B )

A 則可能存在移進/歸約沖突 B 則可能存在歸約/歸約沖突

C 則可能存在移進/歸約沖突和歸約/歸約沖突 8. 下面說法正確的是( A )

A Lex是一個詞法分析器的生成器 B Yacc是一個語法分析器 9. 下面說法正確的是( A )

A 一個正規文法也一定是二型文法

B 一個二型文法也一定能有一個等價的正規文法 10. 編譯原理是對(C)。

A、機器語言的執行 B、匯編語言的翻譯

C、高級語言的翻譯

D、高級語言程序的解釋執行 C.FORTRAN

D.PASCAL

11. (A)是一種典型的解釋型語言。 A.BASIC B.C

12. 把匯編語言程序翻譯成機器可執行的目標程序的工作是由(B)完成的。 A. 編譯器 B. 匯編器 C. 解釋器 D. 預處理器 13. 用高級語言編寫的程序經編譯后產生的程序叫(B) A.源程序 B.目標程序 C.連接程序 14. (C)不是編譯程序的組成部分。 A.詞法分析程序 B.代碼生成程序

D.解釋程序 D.語法分析程序

C.設備管理程序

15. 通常一個編譯程序中,不僅包含詞法分析,語法分析,語義分析,中間代碼生成,代碼優化,目標代碼生成等六個部分,還應包括(C)。 A.模擬執行器 B.解釋器 C.表格處理和出錯處理 D.符號執行器 16. 編譯程序絕大多數時間花在(D)上。 A.出錯處理 B.詞法分析

C.目標代碼生成

D.表格管理

17. 源程序是句子的集合,(B)可以較好地反映句子的結構。 A. 線性表 B. 樹 C. 完全圖 18. 詞法分析器的輸出結果是(D)。 A、單詞自身值

C、單詞的種別編碼 19. 詞法分析器不能(D) A. 識別出數值常量

D. 堆棧

B、單詞在符號表中的位置 D、單詞的種別編碼和自身值 B. 過濾源程序中的注釋 D. 發現括號不匹配

C. 掃描源程序并識別記號

20. 文法:G:S→xSx | y所識別的語言是(D)。

A、xyx B、(xyx)* 21. 如果文法G是無二義的,則它的任何句子α(A) A.最左推導和最右推導對應的語法樹必定相同

B.最左推導和最右推導對應的語法樹可能不同 C.最左推導和最右推導必定相同

C、x*yx*

D、xnyxn (n≥0)

D.可能存在兩個不同的最左推導,但它們對應的語法樹相同 22. 正則文法(A)二義性的。

A. 可以是 B. 一定不是

C. 一定是

23. (B)這樣一些語言,它們能被確定的有窮自動機識別,但不能用正則表達式表示。 A. 存在 B. 不存在 C. 無法判定是否存在 24. 給定文法A→bA | ca,為該文法句子的是(C) A. bba B. cab C. bca

D. cba

25. 設有文法G[S]:S?S1|S0|Sa|Sc|a|b|c,下列符號串中是該文法的句子有(D) A. ab0 B. a0c01 C. a0b0a D. bc10 26. 文法G產生的(D)的全體是該文法描述的語言。 A.句型 B. 終結符集 C. 非終結符集 27. 若文法G定義的語言是無限集,則文法必然是(A) A.遞歸的 B. 上下文無關的 C. 二義性的 28. 描述一個語言的文法是(B) A.唯一的 B. 不唯一的 29. 一個文法所描述的語言是(A) A.唯一的 B. 不唯一的 30. 采用自上而下分析,必須(A)。 A、消除回溯

C、消除右遞歸

C. 可能唯一 C. 可能唯一

B、消除左遞歸

D.句子

D. 無二義性的

D、提取公共左因子

31. 編譯過程中,語法分析器的任務是(A) ① 分析單詞的構成 ② 分析單詞串如何構成語句 ③ 分析語句是如何構成程序 ④ 分析程序的結構 A. ②③ B. ④ C. ①②③④ D. ②③④ 32. 詞法分析器的輸入是( A)。

A.符號串 B.源程序 C.語法單位 D.目標程序 33. 兩個有窮自動機等價是指它們的(C)。 A.狀態數相等

C.所識別的語言相等

B.有向弧數相等

D.狀態數和有向弧數相等

34. 若狀態k含有項目“A→α· ”,且僅當輸入符號a∈FOLLOW(A)時,才用規則“A →α”歸約的語法分析方法是(D)。 A.LALR分析法 B.LR(0)分析法 C.LR(1)分析法 D.SLR(1)分析法 35. 若a為終結符,則A→α · aβ為(B)項目。 A.歸約 B.移進

C.接受

D.待約

36. 在使用高級語言編程時,首先可通過編譯程序發現源程序的全部和部分(A)錯誤。 A. 語法 B. 語義 C. 語用 D. 運行

37. 喬姆斯基(Chomsky)把文法分為四種類型,即0型、1型、2型、3型。其中3型文法是(B) A. 非限制文法 B. 正則文法 C. 上下文有關文法 D. 上下文無關文法 38. 一個句型中的(A)稱為該句型的句柄。 A. 最左直接短語 B. 最右直接短語

C. 終結符 D. 非終結符

39. 在自底向上的語法分析方法中,分析的關鍵是(D)

A. 尋找句柄 B. 尋找句型 C. 消除遞歸 40. 在自頂向下的語法分析方法中,分析的關鍵是(C) A. 尋找句柄 B. 尋找句型 C. 消除遞歸

D. 選擇候選式 D. 選擇候選式

41. 在LR分析法中,分析棧中存放的狀態是識別規范句型(C)的DFA狀態。 A.句柄 B. 前綴 C. 活前綴 D. LR(0)項目

42. 一個上下文無關文法G包括四個組成部分,它們是一組非終結符號,一組終結符號,一個開始符號,以及一組(B) A. 句子 B. 產生式 C. 單詞 D. 句型 43. 詞法分析器用于識別(C) A. 句子 B. 產生式

C. 單詞

D. 句型 D. 目標程序 D. 代碼生成 D. 狀態集 D. 句子

44. 編譯程序是一種(B) A. 匯編程序 B. 翻譯程序

C. 解釋程序

45. 按邏輯上劃分,編譯程序第三步工作是(A) A. 語義分析 B. 詞法分析 C. 語法分析 46. 在語法分析處理中,FIRST集合、FOLLOW集合均是(B) A. 非終結符集 B.終結符集 C. 字母表 47. 編譯程序中語法分析器接收以(A)為單位的輸入。 A. 單詞 B. 表達式 C. 產生式 48. 編譯過程中,語法分析器的任務就是(B) A. 分析單詞是怎樣構成的

C. 分析語句和說明是如何構成程序的

B. 分析單詞串是如何構成語句和說明的 D. 分析程序的結構

D.個數是常量 D. 圖靈機 D.語義分析

49. 若一個文法是遞歸的,則它所產生的語言的句子(A)。 A.是無窮多個 B.是有窮多個 C.是可枚舉的 50. 識別上下文無關語言的自動機是(C) A. 下推自動機 B. NFA 51. 編譯原理各階段工作都涉及(B) A.詞法分析 B.表格管理

C. DFA

C.語法分析

52. 正則表達式R1和R2等價是指(C)

A. R1和R2都是定義在一個字母表上的正則表達式

B. R1和R2中使用的運算符相同 C. R1和R2代表同一正則集 D. R1和R2代表不同正則集

53. 已知文法G[S]:S→A1, A→A1|S0|0。與G 等價的正規式是(C)

A. 0(0|1)* B. 1*|0*1 C. 0(1|10)*1 54. 與(a|b)*(a|b)等價的正規式是(C)。 A.a*| b* B.(ab)*(a|b) 55. (D)文法不是LL(1)的。 A. 遞歸 B. 右遞歸

C. (a|b)(a|b)* C. 2型

D. 1(10|01)*0 D.(a|b)*

D.含有公共左因子的

56. 給定文法A→bA|cc,則符號串①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc中,是該文法句子的是(D) A. ① B. ③④⑤ C. ②④ D. ①⑤ 57. LR(1)文法都是()

A. 無二義性且無左遞歸

C. 無二義性但可能是左遞歸

B. 可能有二義性但無左遞歸 D. 可以既有二義性又有左遞歸

D.7

58. 文法E→E+E|E*E|i的句子i*i+i*i有(C)棵不同的語法樹。

A. 1 B. 3 C. 5 59. 文法 S→aaS|abc 定義的語言是(C)。

A.{a2kbc|k>0} B.{akbc|k>0} C.{a2k-1bc|k>0} C.接受項目 C.移進/歸約

D.{akakbc|k>0} D.待約項目 D.歸約/歸約

60. 若B為非終結符,則 A→?.B? 為(D)。

A.移進項目 B.歸約項目 61. 同心集合并可能會產生新的(D)沖突。 A.二義 B.移進/移進

62. 就文法的描述能力來說,有(C)

A.SLR(1) ? LR(0) B.LR(1) ? LR(0) C.SLR(1) ? LR(1) D.無二義文法 ? LR(1) 63. 如圖所示自動機M,請問下列哪個字符串不是M所能識別的(D)。

A. bbaa B. abba C. abab D. aabb

64. 有限狀態自動機能識別(C)

A.上下文無關語言 B.上下文有關語言

C.正規語言

D.0型文法定義的語言

65. 已知文法G是無二義的,則對G的任意句型α(A)

A.最左推導和最右推導對應的語法樹必定相同

B.最左推導和最右推導對應的語法樹可能相同 C.最左推導和最右推導必定相同

D.可能存在兩個不同的最左推導,但他們對應的語法樹相同 66. (B)不是DFA的成分

A.有窮字母表 B.多個初始狀態的集合

C.多個終態的集合

D.轉換函數

D. a+b*c+d

D.(a?(?b+c))+d

67. 與逆波蘭式(后綴表達式)ab+c*d+對應的中綴表達式是(B)

A. a+b+c*d B. (a+b)* c+d C. (a+b)* (c+d) 68. 后綴式abc?+?d+可用表達式(B)來表示。 A.(? (a+b)?c)+d B.?(a+(b?c))+d 69. 表達式A*(B-C*(C/D))的后綴式為(B)。 A.ABC-CD/** B.ABCCD/*-*

C.? (a?(b+c))+d

C.ABC-*CD/* D.以上都不對

70. (D)不是NFA的成分。 A. 有窮字母表 B. 初始狀態集合 C. 終止狀態集合 D. 有限狀態集合

二、 問答題

1. 將文法G[S] 改寫為等價的G′[S],使G′[S]不含左遞歸和左公共因子。 G[S]: S→bSAe | bA A→Ab | d 答:

文法G[S] 改寫為等價的不含左遞歸和左公共因子的G'[S]為: S→bB B→SAe | A A→d A'

A' →bA' | ε

2. 將文法G[S] 改寫為等價的G'[S],使G'[S]不含左遞歸和左公共因子。 G[S]: S→SAe|Ae

A→dAbA|dA|d 答:

文法G[S] 改寫為等價的不含左遞歸和左公共因子的G'[S]為: S →AeS' S' →AeS'|ε A →dA' A' →AB|ε B →bA |ε

3. 將文法G[S] 改寫為等價的G'[S],使G'[S]不含左遞歸和左公共因子。 G[S]: S→[A A→B]|AS B→aB|a 答:

文法G[S] 改寫為等價的不含左遞歸和左公共因子的G'[S]為: S →[A A →B]A′ A′→SA′|ε B →aB′

B′→B|ε

4. 判斷下面文法是否為LL(1)文法,若是,請構造相應的LL(1)分析表。 S→aH

H→aMd | d M→Ab | ε A→aM | e 答:

首先計算文法的 FIRST集和FOLLOW集如下表。

文法的 FIRST集和FOLLOW集 非終結符 FIRST集 FOLLOW集 S {a}......... {# }... H {# }... {a ,d}..... M {a ,e ,ε} {d ,b} A {b}.... {a ,e}..... 由于predict(H→aMd)∩predict(H→d)={a}∩{d }=

predict(M→Ab)∩predict(M→ε)={a ,e}∩{d ,b }= predict(A→aM)∩predict(A→e)={ a }∩{ e }= 所以該文法是LL(1)文法,LL(1)分析表如下表。 a d b S →aH. H →aMd →d. M →Ab. →ε →ε A →aM. 5. 判斷下面文法是否為LL(1)文法,若是,請構造相應的LL(1)分析表。 S→aD D→STe|ε T→bH|H H→d|ε 答:

首先計算文法的 FIRST集和FOLLOW集如下表。 非終結符 FIRST集 FOLLOW集 S {a} {#,b,d,e}. D {a,ε} {#,b,d,e }

e →Ab →e. #





天津时时彩开奖号码表 2019国产东京热在线 smi理财平台 黑龙江6 1开奖 韩国a片名字 原始股骗局一般多久 重庆时时彩官网app下载 亚洲影视综合网日韩av 广西快乐10分 棒球比分一般是多少 红中赖子杠武汉麻将 日韩av片 极速快乐十分 海口沐足论坛在哪 股票涨跌指标 麻将下载安装 大赢家比分即时比分中