編譯原理:習題

Q1. 下列哪種語言是依賴於機器的? (10 分)( D )
A. 自然語言
B. 高級語言
C. SQL語言
D. 彙編語言或機器語言

Q2. 編譯程序是對( )程序進行翻譯? (10 分)
( D )
A. 機器語言
B. 彙編語言
C. 自然語言
D. 高級語言

Q3. 編譯程序的工作過程按照先後順序依次劃分爲_詞法分析__,語法分析_,語義分析,中間代碼生成代碼優化目標代碼生成。(20 分)

Q4. 編譯程序各階段的工作都涉及到( )。 (20 分)
( CD )
A. 語法分析
B. 代碼生成
C. 表格管理
D. 出錯處理

Q5. 用高級語言編寫的程序經編譯後產生的程序叫( )。 (10 分)
( B )
A. 解釋程序
B. 目標程序
C. 連接程序
D. 源程序

Q6. 按邏輯上劃分,編譯程序第三步工作是( )。 (10 分)
( A )
A. 語義分析
B. 語法分析
C. 代碼生成
D. 詞法分析

Q7. 語法分析時所依據的是( )。 (10 分)
( B )
A. 等價變換規則
B. 語法規則
C. 語義規則
D. 詞法規則

Q8. 將編譯程序分成若干“遍”,是爲了( )。 (10 分)
( B )
A. 利用有限的機器內存並提高機器的執行效
B. 使程序的結構更爲清晰
C. 利用有限的機器內存但降低了機器的執行效率
D. 提高程序的執行效率

Q1. [2008上] 編譯器對高級語言的處理過程可以分爲詞法分析、語法分析、語義分析、中間代碼生成、代碼優化、目標代碼生成等幾個階段,其中,_______並不是每種編譯器都必需的。 (10 分)
( C )
A. 詞法分析和語法分析
B. 語義分析和中間代碼生成
C. 中間代碼生成和代碼優化
D. 代碼優化和目標代碼生成

Q2. [2008上] 已知某文法G[S]:S→0S1, S→1,從S推導出的符號串可用________(n≥0)描述。 (10 分)
( B )
A. 010
B. 0^n 1^(n+1) n>=0
C. 1^n n>=0
D. 0 1^n 0 n>=0

Q3. [2008下] 設某語言的語法規則用上下文無關文法G=(N,T,P,S)表示,其中N是非終結符號的集合,T是終結符號的集合,P是產生式集合,S是開始符號,令V=NUT,那麼符合該語法的句子是_________。 (10 分)
( A )
A. 從S出發推導的,僅包含T中符號的符號串
B. 從N中符號出發推導的,僅包含T中符號的符號串
C. 從S出發推導的,包含V中符號的符號串
D. 從N中符號出發推導的,包含V中符號的符號串

Q4. [2008下] 以下關於高級語言程序的編譯和解釋的敘述中,正確的是_________。 (10 分)
( C )
A. 編譯方式下,可以省略對源程序的詞法分析、語法分析
B. 解釋方式下,可以省略對源程序的詞法分析、語法分析
C. 編譯方式下,在機器上運行的目標程序完全獨立於源程序
D. 解釋方式下,在機器上運行的目標程序完全獨立於源程序

Q5. [2010下] 編譯程序分析源程序的階段依次是_________。 (10 分)
( A )
A. 詞法分析、語法分析、語義分析
B. 語法分析、詞法分析、語義分析
C. 語義分析、語法分析、詞法分析
D. 語義分析、詞法分析、語法分析

Q6. [2011上] 以下關於高級程序設計語言翻譯的敘述中,正確的是_________。 (10 分)
( D )
A. 可以先進行語法分析,再進行詞法分析
B. 再語法分析階段可以發現程序中的所有錯誤
C. 語義分析階段的工作與目標機器的體系結構密切相關
D. 目標代碼生成階段的工作與目標機器的體系結構密切相關

Q7. [2011上] 將高級語言源程序翻譯成目標程序的是_________。 (10 分)
( B )
A. 解釋程序
B. 編譯程序
C. 鏈接程序
D. 彙編程序

Q8. [2011上] 以下關於解釋程序和編譯程序的敘述中,正確的是_________。 (10 分)
( C )
A. 編譯程序和解釋程序都生成源程序的目標程序
B. 編譯程序和解釋程序都不生成源程序的目標程序
C. 編譯程序生成源程序的目標程序,解釋程序則不然
D. 編譯程序不生成源程序的目標程序,而解釋程序反之

Q9. [2015上] 對高級語言源程序進行編譯或解釋的過程可以分爲多個階段,解釋方式不包含________階段。 (10 分)
( D )
A. 詞法分析
B. 語法分析
C. 語義分析
D. 目標代碼生成

Q10. [2009下] 由某上下文無關文法M[S]推導出某句子的分析樹如下圖所示(見黑板板書),則錯誤的敘述是___________。 (10 分)
( A )

A. 該文法推導出的句子必須以“a”開頭
B. acabcbdcc是該文法推導出的一個句子
C. "S→aAcB"是該文法的一個產生式
D. a,b,c,d屬於該文法的終結符號集

Q1. 文法:G:S→xSx | y所識別的語言是( )。 (10 分)
( B )
A. (xyx)*
B. x^n y x^n (n>=0)
C. xyx
D. xyx

Q2. 文法G產生的( )的全體是該文法描述的語言。 (10 分)
( B )
A. 終結符集
B. 句子
C. 句型
D. 非終結符集

Q3. 若文法G定義的語言是無限集,則文法必然是( )。 (10 分)
( D )
A. 上下文無關的
B. 二義性的
C. 無二義性的
D. 遞歸的

Q4. 文法 S→aaS|abc 定義的語言是( )。 (10 分)
( A )
A. {a^(2k-1) bc | k>0}
B. {a^k a^k bc }k>0}
C. {a^k bc | k>0}
D. {a^(2k) bc | k>0}

Q5. 文法E→E+E|EE|i的句子ii+i*i有( )棵不同的語法樹。 (10 分)
( D )
A. 7
B. 3
C. 1
D. 5

Q6. 下列符號串不可以由符號集S={a,b}上的正閉包運算產生的是( )。 (10 分)
( D )
A. ab
B. aa
C. a
D. ε

Q7. 喬姆斯基(Chomsky)把文法分爲四種類型,即0型,1型,2型,3型。其中3型文法是( ) (10 分)
( B )
A. 非限制文法
B. 正則文法
C. 上下文有關文法
D. 上下文無關文法

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

Q9. 若一個文法是遞歸的,則它所產生的語言的句子( )。 (10 分)
( A )
A. 是無窮多個
B. 是有窮多個
C. 是可枚舉的
D. 個數是常量

Q10. 給定文法A→bA|cc,則符號串①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc中,是該文法句子的是( )。 (10 分)
( D )
A. ①
B. ③④⑤
C. ②④
D. ①⑤

Q1. 詞法分析器用於識別( )。 (10 分)
( B )
A. 產生式
B. 單詞
C. 句型
D. 句子

Q2. 正則表達式R1和R2等價是指( )。 (10 分)
( D )
A. R1和R2代表不同正則集
B. R1和R2都是定義在一個字母表上的正則表達式
C. R1和R2中使用的運算符相同
D. R1和R2代表同一正則集

Q3. 同正規式(a|b)等價的正規式爲( )。 (10 分)
( D )
A. a
|b*
B. (ab)*
C. (a|b)(a|b)*
D. (a*|b*)*

Q4. 詞法分析器的加工對象是()。 (10 分)
( B )
A. 中間代碼
B. 源程序
C. 單詞
D. 元程序

Q5. 如果一個正規式所代表的集合是無窮的,則它必含有的運算是( )。 (10 分)
( B )
A. 連接運算“·”
B. 閉包運算“*”
C. 括號“(”和“)”
D. 或運算“|”
Q1. 詞法分析器的輸出結果是( )。 (5 分)
( D )
A. 單詞自身值
B. 單詞在符號表中的位置
C. 單詞的種別編碼
D. 單詞的種別編碼和自身值

Q2. 詞法分析器不能( )。 (5 分)
( D )
A. 識別出數值常量
B. 過濾源程序中的註釋
C. 掃描源程序並識別記號
D. 發現括號不匹配

Q3.
( )這樣一些語言,它們能被確定的有窮自動機識別,但不能用正則表達式表示。 (5 分)
( B )
A. 存在
B. 不存在
C. 無法判定是否存在
D. 以上答案都不對

Q4. 兩個有窮自動機等價是指它們的( )。 (5 分)
( C )
A. 狀態數相等
B. 有向弧數相等
C. 所識別的語言相等
D. 狀態數和有向弧數相等

Q5. 詞法分析器用於識別( )。 (5 分)
( C )
A. 句子
B. 產生式
C. 單詞
D. 句型

Q6. 已知文法G[S]:S→A1, A→A1|S0|0,與G等價的正規式是( )。 (10 分)
( C )
A. 0(0|1)*
B. 1*|0*1
C. 0(1|10)*1
D. 1(10|01)*0

Q7. 與(a|b)(a|b)等價的正規式是( )。 (5 分)
( C )
A. a
|b*
B. (ab)(a|b)
C. (a|b)(a|b)

D. (a|b)*

Q8. 如圖所示自動機M,請問下列哪個字符串不是M所能識別的( ) 。 (10 分)
( D )

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

Q9. 有限狀態自動機能識別( )。 (5 分)
( C )
A. 上下文無關語言
B. 上下文有關語言
C. 正規語言
D. 0 型文法定義的語言

Q10. ( )不是DFA的成分。 (5 分)
( B )
A. 有窮字母表
B. 多個初始狀態的集合
C. 多個終態的集合
D. 轉換函數

Q11. DFA M(見圖)接受的字集爲( )。 (10 分)
( D )

A. 以0開頭的二進制數組成的集合
B. 以0結尾的二進制數組成
C. 含奇數個0的二進制數組成的集合
D. 含偶數個0的二進制數組成的集合

Q12. 稱有限自動機A1和A2等價是指( )。 (5 分)
( D )
A. A1和A2都是定義在一個字母表上的有限自動
B. A1和A2狀態數和有向邊數相等
C. A1和A2狀態數或有向邊數相等
D. A1和A2所能識別的字符串集合相等

Q13. 同正規式ab等價的文法是( )。 (10 分)
( C )
A. G1:S→aS|bS|ε
B. G2:S→aSb|ε
C. G3:S→ aS|Sb|ε
D. G4:S→ abS|ε

Q14. 一個正規式只能對應一個確定的有限狀態自動機。
(5 分)
( B )
A. ✔
B. ✘

Q15. 一個正規語言可能對應多個正規文法。 (5 分)
( A )
A. ✔
B. ✘

Q16. 自動機的兩個狀態等價,需滿足( ) (5 分)
( ABCD )
A. 一致性
B. 蔓延性
C. 傳播性
D. 兼容性

Q1. 在語法分析處理中,FIRST 集合、FOLLOW 集合均是(A )。 (10 分)
A. 終結符集
B. 狀態集
C. 非終結符集
D. 字母表
Q2. 已知文法 G[S]:
S→eT|RT T→DR|ε R→dR|ε D→a|bd
求 FIRST(S)=(D)。 (10 分)
A. {e,d,a,b}
B. {e}
C. {e,d}
D. ,e,d,a,b,ε-
Q3. FIRST 集中可以含有 ε (10 分)
( B )
A. False
B. True
Q4. FOLLOW 集中可以含有 ε (10 分)
( A )
A. False
B. True
Q5. SELECT 集中可以含有 ε (10 分)
( A )
A. False
B. True
Q6. 已知文法 G[S]:
S→eT|RT T→DR|ε R→dR|ε D→a|bd
求 FOLLOW(D)=(C)。 (10 分)
A. {a,d}
B. {d,e}C. {d,#}
D. ,d,ε-
Q7. 一個字符屬於 FOLLOW(S),這個字符的含義是(D) (10 分A. S 可能推導出第一個字符
B. S 可能推導出最後一個字符
C. 在某句型中直接跟在 S 後的字符
D. 一定會有一個句型中後隨 S 的終結符
Q8. 編譯程序中的語法分析器接受以(B)爲單位的輸入,併產生有關信息供以
後各階段使用 (10 分)
A. 語句
B. 單詞
C. 產生式
D. 表達式
Q9. 考慮文法 GA+:A→A∨B|B
B→B∧C|C
C→┓C|D
D→(A)|i
該文法是 LL(1)文法 (10 分)
( A )
A. False
B. True
Q10. 構造一個不帶回溯的自頂向下語法分析器,要求文法滿足 1)不含左遞歸;
2)對每個形如 A→x1|x2|…|xn 的產生式,要求 FIRST(xi)與 FIRST(xj)的交集爲空集
(i≠j);
3)對每個形如 A→x1|x2|…|xn 的產生式,ifxi→ε, 要求 FIRST(xi)與 FOLLOW(A)
的交集爲空集; (10 分)
( D )
A. 1)B. 1)和 2)同時滿足
C. 2)
D. 1)、2)和 3)同時滿足
1.消除下列文法 G[S]的左遞歸,獲得與其等價的、無左遞歸的文法 G’[S]。
G[S]:S→Qc︱c
Q→Rb︱b
R→Sa︱a
2.設文法 G]S]: S→^ | a | (T)
T→T,S | S
⑴ 消除左遞歸;
⑵ 構造相應的 FIRST 和 FOLLOW 集合;
⑶ 構造預測分析表
3.對下面的文法 G
E➝TE'
E'➝+E|ε
T➝FT'
T'➝T|ε
F➝PF'
F'➝
F|ε
P➝(E)|a|b|Λ
(1)計算這個文法的每個非終端符的 FIRST 和 EOLLOW
(2)證明這個文法是 LL(1)的(3)構造它的預測分析表
(4)構造它的遞歸下降分析程序
4.已知文法 G[S]:S→a | ^ | (T)
T→T,S | S
(1) 給出句子(a,(a,a))的最左推導;
(2) 給出句型((T,S),a)的短語, 直接短語,句柄。
Q1. 【2008 年下】編譯程序對高級語言源程序進行翻譯時,需要在該程序的地
址空間中爲變量指定地址,這種地址成爲( A ) (10 分)
A. 邏輯地址
B. 物理地址
C. 接口地址
D. 線性地址
Q2. 【2009 下】將高級語言源程序翻譯爲機器語言程序的過程中常引入中間代
碼。以下關於中間代碼的敘述中,錯誤的是( D )。 (10 分)
A. 不同的高級程序語言可以產生同一種中間代碼
B. 使用中間代碼有利於進行與機器無關的優化處理
C. 使用中間代碼有利於提高編譯程序的可移植性
D. 中間代碼與機器語言代碼在指令結構上必須一Q3. 【2009 下】以下對於編譯系統對某高級語言進行翻譯的敘述中,錯誤的(C)。 (10 分)
A. 詞法分析將源程序看做一個線性字符序列進行分析
B. 語法分析階段可以發現程序中所有的語法錯誤
C. 語義分析階段可以發現程序中所有的語義錯誤
D. 目標生成階段的工作與目標機器的體系結構相關
Q4. 【2010 上】編譯程序對 C 語言源程序進行語義分析時,可以確定(A)。 (分)
A. 變量是否定義或聲明B. 變量的值是否正確
C. 循環語句的執行次數
D. 循環條件是否正確
Q5. 【2008 下】表達式(a-b)(c+5)的後綴表達式是(D)。 (10 分A. abc5+-
B. ab-c+5*
C. abc-5+
D. ab-c5+

Q6. 【2011 上】算術表達式採用逆波蘭表示時不用括號,可以利用(B)進行值。 (10 分)
A. 數組
B. 棧
C. 隊列
D. 散列表
Q7. 【2011 上】與逆波蘭式 ab-cd+對應的中綴表達式是(C)。 (10 分A. a-b+cd
B. (a-b)c+d
C. (a-b)
(c+d)
D. a-bc+d
Q8. 【2011 上】算術表達式 x-(y+c)8 的後綴式是(D)。 (10 分)
A. xyc8-+

B. xy-c+8

C. xyc8*±
D. xyc+8*-
Q9. 【2013 下】將高級語言翻譯爲機器語言的過程中,常引入中間代碼,其好
處是(B)。 (10 分)
A. 有利於反編譯處理
B. 有利於進行與機器無關的優化C. 儘早發現語法錯誤
D. 可以簡化語法和語義分析
Q10. 【2013 下】算術表達式“(a-b)(c+d)”的後綴式是(A)。 (10 分A. ab-cd+
B. abcd-*+
C. ab-cd+
D. ab-c+d

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章