编译原理:习题

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

  • 10
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值