编译原理期末考试选择题汇总
- 格式:doc
- 大小:563.43 KB
- 文档页数:29
编译原理期末考试试题及答案一、选择题(每题2分,共20分)1. 编译器的前端主要负责以下哪项工作?A. 代码优化B. 目标代码生成C. 词法分析和语法分析D. 运行时支持2. 词法分析器的主要任务是什么?A. 识别语法结构B. 识别词法单元C. 构建语法树D. 代码优化3. 语法分析中,使用哪种方法可以避免回溯?A. 递归下降分析B. LR分析C. LL分析D. 自顶向下分析4. 下列哪个选项不是中间代码的形式?A. 三地址代码B. 四元组C. 抽象语法树D. 汇编语言5. 代码优化的目标不包括以下哪项?A. 提高代码执行速度B. 减少程序占用的内存C. 增加程序的可读性D. 减少程序的执行时间二、简答题(每题10分,共30分)1. 简述编译器的主要组成部分及其功能。
2. 解释什么是语法制导翻译,并举例说明其在编译过程中的应用。
3. 描述静态作用域规则和动态作用域规则的区别。
三、计算题(每题15分,共30分)1. 给定一个简单的算术表达式 `3 + (4 * 5) - 2`,请使用逆波兰表示法表示,并说明其转换过程。
2. 假设有一个简单的文法如下:```S -> A BA -> a A | εB -> b B | ε```请写出使用该文法生成字符串 "ab" 的所有派生树。
四、论述题(每题20分,共20分)1. 论述编译器中代码优化的重要性,并举例说明常见的优化技术。
参考答案一、选择题1. C2. B3. B4. D5. C二、简答题1. 编译器的主要组成部分包括前端、中端和后端。
前端负责词法分析和语法分析,中端进行语义分析和中间代码生成,后端则负责代码优化和目标代码生成。
2. 语法制导翻译是一种基于文法规则的翻译技术,它将源程序的语法结构映射到相应的语义操作上。
例如,在编译过程中,语法制导翻译可以用于将源代码中的条件语句转换为中间代码中的跳转指令。
3. 静态作用域规则是指变量的作用域在编译时确定,而动态作用域规则是指变量的作用域在运行时确定。
编译原理试题及答案一、选择题1. 编译器的主要功能是什么?A. 程序设计B. 程序翻译C. 程序调试D. 数据处理答案:B2. 下列哪一项不是编译器的前端处理过程?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,词法分析器的主要作用是什么?A. 识别程序中的关键字和标识符B. 将源代码转换为中间代码C. 检查程序的语法结构D. 确定程序的运行环境答案:A4. 语法分析通常采用哪种方法?A. 自顶向下分析B. 自底向上分析C. 正则表达式匹配D. 直接解释执行答案:B5. 语义分析的主要任务是什么?A. 检查程序的语法结构B. 检查程序的类型安全C. 识别程序中的变量和常量D. 将源代码转换为机器代码答案:B二、简答题1. 简述编译器的工作原理。
答案:编译器的工作原理主要包括以下几个步骤:词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。
词法分析器将源代码分解成一系列的词素;语法分析器根据语法规则检查词素序列是否合法;语义分析器检查程序的语义正确性;中间代码生成器将源代码转换为中间代码;代码优化器对中间代码进行优化;最后,目标代码生成器将优化后的中间代码转换为目标机器代码。
2. 什么是词法分析器,它在编译过程中的作用是什么?答案:词法分析器是编译器前端的一个组成部分,负责将源代码分解成一个个的词素(tokens),如关键字、标识符、常量、运算符等。
它在编译过程中的作用是为语法分析器提供输入,是编译过程的基础。
三、论述题1. 论述编译器中的代码优化技术及其重要性。
答案:代码优化是编译过程中的一个重要环节,它旨在提高程序的执行效率,减少资源消耗。
常见的代码优化技术包括:常量折叠、死代码消除、公共子表达式消除、循环不变代码外提、数组边界检查消除等。
代码优化的重要性在于,它可以显著提高程序的运行速度和性能,同时降低程序对内存和处理器资源的需求。
四、计算题1. 给定一个简单的四则运算表达式,请写出其对应的逆波兰表达式。
一、单项选择题1、将编译程序分成若干个“遍”是为了( B )A.提高程序的执行效率B. 使程序的结构更加清晰C.利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率2、不可能是目标代码的是( D )A.汇编指令代码 B.可重定位指令代码C.绝对指令代码 D.中间代码3、词法分析器的输入是( B )A.单词符号串 B.源程序C.语法单位 D.目标程序4、编译程序中的语法分析器接受以 c 为单位的输入,并产生有关信息供以后各阶段使用。
可选项有:a、表达式 b、产生式 c、单词 d、语句5、高级语言编译程序常用的语法分析方法中,递归下降分析法属于 b 分析方法。
可选项有:a、自左至右 b、自顶向下 c、自底向上 d、自右向左6、已知文法G[E]:E→TE’ E’ →+TE’∣ε T→FT’T’ →*FT’∣ε F→(E)∣id求:FOLLOW(F)=(1) d , FIRST(T’)=(2) b可选项有: a、{*,+} b、{*,ε} c、{+,#,)}d、{*,+,#,)}e、{#,)}f、{*,+,#,id}7、中间代码生成时所遵循的是( C )A.语法规则 B.词法规则C.语义规则 D.等价变换规则8、编译程序是对( D )A.汇编程序的翻译 B.高级语言程序的解释执行C.机器语言的执行 D.高级语言的翻译9、词法分析应遵循( C )A.语义规则 B.语法规则C.构词规则 D.等价变换规则10、词法分析器的输出结果是( C )A.单词的种别编码 B.单词在符号表中的位置C.单词的种别编码和属性值 D.单词属性值11、正规式M1和M2等价是指( C )A.M1和M2的状态数相等 B.M1和M2的有向弧条数相等C .M1和M2所识别的语言集相等D .M1和M2状态数和有向弧条数相等12、词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,( A )A .词法分析器应作为独立的一遍B .词法分析器作为子程序较好C .词法分析器分解为多个过程,由语法分析器选择使用 .D .词法分析器并不作为一个独立的阶段13、如果L(M1)=L(M2),则M1与M2( A )A .等价B .都是二义的C .都是无二义的D .它们的状态数相等14、文法G :S →xSx|y 所识别的语言是( C )A .xyxB .(xyx)* c .x n yx n (n ≥0) d .x *yx *15、文法G 描述的语言L(G)是指( A )A .⎭⎬⎫⎩⎨⎧∈⇒=+*,|)(T V S G L αααB .⎭⎬⎫⎩⎨⎧⋃∈⇒=+*)(,|)(N T V V S G L ααα C .⎭⎬⎫⎩⎨⎧∈⇒=**,|)(T V S G L ααα D .⎭⎬⎫⎩⎨⎧⋃∈⇒=**)(,|)(N T V V S G L ααα 16、有限状态自动机能识别( C )A .上下文无关文法B .上下文有关文法C .正规文法D .短语文法17、编译过程中扫描器的任务包括 d 。
编译原理复习题及答案一、选择题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、高级语言程序的解释执行11.(A) 是一种典型的解释型语言。
A .BASICB .CC.FORTRAN D.PASCAL12.把汇编语言程序翻译成机器可执行的目标程序的工作是由(B) 完成的。
A. 编译器B. 汇编器C. 解释器D. 预处理器13.用高级语言编写的程序经编译后产生的程序叫(B) A .源程序B .目标程序C.连接程序 D .解释程序14.(C) 不是编译程序的组成部分。
A. 词法分析程序B. 代码生成程序C.设备管理程序D. 语法分析程序15.通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优目标代码生成等六个部分,还应包括(C)A .模拟执行器B .解释器C.表格处理和出错处理D .符号执行器16.编译程序绝大多数时间花在(D) A .出错处理B.词法分析C.目标代码生成D.表格管理17.源程序是句子的集A. 线性表(B) 可以较好地反映句子的结构。
《编译原理》期末试题(一)二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1.词法分析器的输出结果是___c__。
A.( ) 单词的种别编码B.( ) 单词在符号表中的位置C.( ) 单词的种别编码和自身值D.( ) 单词自身值2.正规式M 1 和M 2 等价是指_____。
A.( ) M1和M2的状态数相等B.( ) M1和M2的有向边条数相等C.( ) M1和M2所识别的语言集相等D.( ) M1和M2状态数和有向边条数相等3.文法G:S→xSx|y所识别的语言是__c___。
A.( ) xyx B.( ) (xyx)*C.( ) xnyxn(n≥0) D.( ) x*yx*4.如果文法G是无二义的,则它的任何句子α_____。
A.( )最左推导和最右推导对应的语法树必定相同B.( ) 最左推导和最右推导对应的语法树可能不同C.( ) 最左推导和最右推导必定相同D.( )可能存在两个不同的最左推导,但它们对应的语法树相同5.构造编译程序应掌握______。
A.( )源程序B.( ) 目标语言C.( ) 编译方法D.( ) 以上三项都是6.四元式之间的联系是通过_____实现的。
A.( ) 指示器B.( ) 临时变量C.( ) 符号表D.( ) 程序变量7.表达式(┐A∨B)∧(C∨D)的逆波兰表示为_____。
A. ( ) ┐AB∨∧CD∨B.( ) A┐B∨CD ∨∧C.( ) AB∨┐CD∨∧D.( ) A┐B∨∧CD∨8. 优化可生成_____的目标代码。
A.( ) 运行时间较短 B.( ) 占用存储空间较小C.( ) 运行时间短但占用内存空间大D.( ) 运行时间短且占用存储空间小9.下列______优化方法不是针对循环优化进行的。
A. ( ) 强度削弱B.( ) 删除归纳变量C.( ) 删除多余运算D.( ) 代码外提10.编译程序使用_____区别标识符的作用域。
编译原理考试题及答案一、选择题(每题2分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码解释C. 代码翻译D. 代码调试答案:C2. 编译过程中的语法分析阶段主要解决什么问题?A. 词法问题B. 语法问题C. 语义问题D. 代码生成问题答案:B3. 在编译原理中,哪些技术用于处理程序中的递归结构?A. 正则表达式B. 有限自动机C. 上下文无关文法D. 属性文法答案:C4. 编译器的哪个部分负责将中间代码转换为目标代码?A. 词法分析器B. 语法分析器C. 语义分析器D. 代码生成器答案:D5. 编译器中的词法分析器主要使用哪种数据结构来存储输入的源代码?A. 栈B. 队列C. 链表D. 哈希表答案:C6. 在编译原理中,哪个概念用于描述程序语言的语法结构?A. 语法树B. 抽象语法树C. 控制流图D. 数据流图答案:B7. 编译器的哪个阶段负责检查变量是否被正确声明和使用?A. 词法分析B. 语法分析C. 语义分析D. 代码优化答案:C8. 编译器在哪个阶段会进行代码优化?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D9. 在编译原理中,哪些技术用于生成有效的目标代码?A. 语法分析B. 语义分析C. 代码优化D. 目标代码生成答案:D10. 编译器的哪个部分负责将源代码中的注释和空白字符去除?A. 词法分析器B. 语法分析器C. 语义分析器D. 代码生成器答案:A二、填空题(每题2分,共20分)1. 编译器的前端包括词法分析、语法分析和______。
答案:语义分析2. 编译器的后端包括中间代码生成、______和目标代码生成。
答案:代码优化3. 编译原理中的______用于描述词法单元。
答案:词法规则4. 编译原理中的______用于描述程序语言的语法结构。
答案:上下文无关文法5. 编译原理中的______用于描述程序语言的语义。
答案:属性文法6. 编译原理中的______用于描述程序控制流。
编译原理考试题及答案汇总一、选择1.将编译程序分成若干个“遍”是为了_B__。
A . 提高程序的执行效率B.使程序的结构更加清晰C. 利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率2.正规式 MI 和 M2 等价是指__C__。
A . MI 和 M2 的状态数相等 B.Ml 和 M2 的有向弧条数相等。
C .M1 和 M2 所识别的语言集相等 D. Ml 和 M2 状态数和有向弧条数相等3.中间代码生成时所依据的是 _C_。
A.语法规则 B.词法规则 C.语义规则 D.等价变换规则4.后缀式 ab+cd+/可用表达式__B_来表示。
A. a+b/c+d B.(a+b)/(c+d) C. a+b/(c+d) D. a+b+c/d6.一个编译程序中,不仅包含词法分析,_A____,中间代码生成,代码优化,目标代码生成等五个部分。
A.( ) 语法分析 B.( )文法分析 C.( )语言分析 D.( )解释分析7.词法分析器用于识别__C___。
A.( ) 字符串 B.( )语句 C.( )单词 D.( )标识符8.语法分析器则可以发现源程序中的___D__。
A.( ) 语义错误 B.( ) 语法和语义错误C.( ) 错误并校正 D.( ) 语法错误9.下面关于解释程序的描述正确的是__B___。
(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于 COBOL 和 FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A.( ) (1)(2) B.( ) (1) C.( ) (1)(2)(3) D.( ) (2)(3)10.解释程序处理语言时 , 大多数采用的是__B___方法。
A.( ) 源程序命令被逐个直接解释执行B.( ) 先将源程序转化为中间代码 , 再解释执行C.( ) 先将源程序解释转化为目标程序 , 再执行D.( ) 以上方法都可以11.编译过程中 , 语法分析器的任务就是__B___。
编译原理考试题及答案一、选择题(每题5分,共20分)1. 编译器的主要功能是什么?A. 代码优化B. 代码翻译C. 代码调试D. 代码运行答案:B2. 下列哪个选项不属于编译器的前端部分?A. 词法分析B. 语法分析C. 语义分析D. 代码生成答案:D3. 在编译原理中,文法的产生式通常表示为:A. A -> αB. A -> βC. A -> γD. A -> δ答案:A4. 下列哪个算法用于构建语法分析树?A. LL(1)分析B. LR(1)分析C. SLR(1)分析D. LALR(1)分析答案:A二、填空题(每空5分,共20分)1. 编译器的前端通常包括词法分析、语法分析和________。
答案:语义分析2. 编译器的后端主要负责________和目标代码生成。
答案:代码优化3. 编译器中的词法分析器通常使用________算法来识别单词。
答案:有限自动机4. 语法分析中,________分析是一种自顶向下的分析方法。
答案:递归下降三、简答题(每题10分,共30分)1. 简述编译器的作用。
答案:编译器的主要作用是将高级语言编写的源代码转换成计算机能够理解的低级语言或机器代码,以便执行。
2. 解释一下什么是语法制导翻译。
答案:语法制导翻译是一种翻译技术,它利用源语言的语法信息来指导翻译过程,使得翻译过程能够更好地理解源代码的语义。
3. 什么是词法分析器?答案:词法分析器是编译器前端的一部分,它的任务是将源代码文本分解成一系列的标记(tokens),这些标记是源代码的最小有意义的单位。
四、计算题(每题10分,共30分)1. 给定一个简单的文法G(E):E → E + T | TT → T * F | FF → (E) | id请计算文法的非终结符号E的FIRST集和FOLLOW集。
答案:E的FIRST集为{(, id},FOLLOW集为{), +, $}。
2. 假设编译器在进行语法分析时,遇到一个语法错误的代码片段,请简述编译器如何处理这种情况。
第 0 页共 16 页一.填空题(每空2分,共20分) 1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静态存储分配方案和动态存储分配方案,而后者又分为(1)和(2)。
2. 规范规约是最(3)规约。
3. 编译程序的工作过程一般划分为5个阶段:词法分析、(4)、语义分析与中间代码生成,代码优化及(5)。
另外还有(6)和出错处理。
4.表达式x+y*z/(a+b)的后缀式为(7)。
5.文法符号的属性有综合属性和(8)。
6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组a[1..15,1..20]某个元素a[i ,j]的地址计算公式为(9)。
7.局部优化是局限于一个(10)范围内的一种优化。
二.选择题(1-6为单选题,7-8为多选题,每问2分,共20分)1. 一个上下文无关文法G 包括四个组成部分:一组终结符,一组非终结符,一个(),以及一组()。
A .字符串B .产生式C .开始符号D .文法2.程序的基本块是指()。
A .一个子程序B .一个仅有一个入口和一个出口的语句C .一个没有嵌套的程序段D .一组顺序执行的程序段,仅有一个入口和一个出口 3. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法。
A .自左向右 B .自顶向下 C .自底向上 D .自右向左 4.在通常的语法分析方法中,()特别适用于表达式的分析。
A .算符优先分析法 B . LR 分析法 C .递归下降分析法 D . LL (1)分析法 5.经过编译所得到的目标程序是()。
A .四元式序列B .间接三元式序列C .二元式序列D .机器语言程序或汇编语言程序 6.一个文法所描述的语言是();描述一个语言的文法是()。
A .唯一的 B .不唯一的 C .可能唯一,也可能不唯一7.如果在文法G 中存在一个句子,当其满足下列条件()之一时,则称该文法是二义文法。
《编译原理》期末试题(五)一、单项选择题(共10小题,每小题2分,共20分)1.语言是A.句子的集合B.产生式的集合C.符号串的集合D.句型的集合2.编译程序前三个阶段完成的工作是A.词法分析、语法分析和代码优化B.代码生成、代码优化和词法分析C.词法分析、语法分析、语义分析和中间代码生成D.词法分析、语法分析和代码优化3.一个句型中称为句柄的是该句型的最左A.非终结符号B.短语C.句子D.直接短语4.下推自动机识别的语言是A.0型语言B.1型语言C.2型语言D.3型语言5.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即A.字符B.单词C.句子D.句型6.对应Chomsky四种文法的四种语言之间的关系是A.L0⊂L1⊂L2⊂L3 B.L3⊂L2⊂L1⊂L0C.L3=L2⊂L1⊂L0D.L0⊂L1⊂L2=L37.词法分析的任务是A.识别单词B.分析句子的含义C.识别句子D.生成目标代码8.常用的中间代码形式不含A.三元式B.四元式C.逆波兰式D.语法树9.代码优化的目的是A.节省时间B.节省空间C.节省时间和空间D.把编译程序进行等价交换10.代码生成阶段的主要任务是A.把高级语言翻译成汇编语言B.把高级语言翻译成机器语言C.把中间代码变换成依赖具体机器的目标代码D.把汇编语言翻译成机器语言二、填空题(本大题共5小题,每小题2分,共10分)1.编译程序首先要识别出源程序中每个(单词),然后再分析每个(句子)并翻译其意义。
2.编译器常用的语法分析方法有(自底向上)和(自顶向下)两种。
3.通常把编译过程分为分析前端与综合后端两大阶段。
词法、语法和语义分析是对源程序的(分析),中间代码生成、代码优化与目标代码的生成则是对源程序的(综合)。
4.程序设计语言的发展带来了日渐多变的运行时存储管理方案,主要分为两大类,即(静态存储分配)方案和(动态存储分配)方案。
5.对编译程序而言,输入数据是(源程序),输出结果是(目标程序)。
一、单项选择题1、将编译程序分成若干个“遍”是为了( B )A.提高程序的执行效率B. 使程序的结构更加清晰C.利用有限的机器内存并提高机器的执行效率D.利用有限的机器内存但降低了机器的执行效率2、不可能是目标代码的是( D )A.汇编指令代码 B.可重定位指令代码C.绝对指令代码 D.中间代码3、词法分析器的输入是( B )A.单词符号串 B.源程序C.语法单位 D.目标程序4、编译程序中的语法分析器接受以 c 为单位的输入,并产生有关信息供以后各阶段使用。
可选项有:a、表达式 b、产生式 c、单词 d、语句5、高级语言编译程序常用的语法分析方法中,递归下降分析法属于 b 分析方法。
可选项有:a、自左至右 b、自顶向下 c、自底向上 d、自右向左6、已知文法G[E]:E→TE’ E’ →+TE’∣ε T→FT’T’ →*FT’∣ε F→(E)∣id求:FOLLOW(F)=(1) d , FIRST(T’)=(2) b可选项有: a、{*,+} b、{*,ε} c、{+,#,)}d、{*,+,#,)}e、{#,)}f、{*,+,#,id}7、中间代码生成时所遵循的是( C )A.语法规则 B.词法规则C.语义规则 D.等价变换规则8、编译程序是对( D )A.汇编程序的翻译 B.高级语言程序的解释执行C.机器语言的执行 D.高级语言的翻译9、词法分析应遵循( C )A.语义规则 B.语法规则C.构词规则 D.等价变换规则10、词法分析器的输出结果是( C )A.单词的种别编码 B.单词在符号表中的位置C.单词的种别编码和属性值 D.单词属性值11、正规式M1和M2等价是指( C )A.M1和M2的状态数相等 B.M1和M2的有向弧条数相等C .M1和M2所识别的语言集相等D .M1和M2状态数和有向弧条数相等12、词法分析器作为独立的阶段使整个编译程序结构更加简洁、明确,因此,( A )A .词法分析器应作为独立的一遍B .词法分析器作为子程序较好C .词法分析器分解为多个过程,由语法分析器选择使用 .D .词法分析器并不作为一个独立的阶段13、如果L(M1)=L(M2),则M1与M2( A )A .等价B .都是二义的C .都是无二义的D .它们的状态数相等14、文法G :S →xSx|y 所识别的语言是( C )A .xyxB .(xyx)* c .x n yx n (n ≥0) d .x *yx *15、文法G 描述的语言L(G)是指( A )A .⎭⎬⎫⎩⎨⎧∈⇒=+*,|)(T V S G L αααB .⎭⎬⎫⎩⎨⎧⋃∈⇒=+*)(,|)(N T V V S G L ααα C .⎭⎬⎫⎩⎨⎧∈⇒=**,|)(T V S G L ααα D .⎭⎬⎫⎩⎨⎧⋃∈⇒=**)(,|)(N T V V S G L ααα 16、有限状态自动机能识别( C )A .上下文无关文法B .上下文有关文法C .正规文法D .短语文法17、编译过程中扫描器的任务包括 d 。
①组织源程序的输入 ②按词法规则分割出单词,识别出其属性,并转换成属性字的形式输出 ③删除注解 ④删除空格及无用字符 ⑤行计数、列计数 ⑥发现并定位词法错误 ⑦建立符号表可选项有:a 、②③④⑦ b、②③④⑥⑦ c、①②③④⑥⑦ d、①②③④⑤⑥⑦18、正则式的“∣”读作(1) b ,“·”读作(2) c ,“*”读作(3) d 。
可选项有:a 、并且 b 、或者 c 、连接 d 、闭包19 、 b 这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。
可选项有:a 、存在 b 、不存在 c 、无法判定是否存在20、编译过程中,语法分析的任务是 c 。
①分析单词是怎样构成的 ②分析单词是如何构成语句和说明的③分析语句和说明是如何构成程序的 ④分析程序的结构可选项有:a 、②和③ b、④ c、②③④ d、①②③④21、语法分析的常用方法有 b 。
①自顶向下 ②自底向上 ③自左向右 ④自右向左可选项有:a 、①②③④ b、①② c、③④ d、①②③22、如果文法G是无二义的,则它的任何句子( A )A.最左推导和最右推导对应的语法树必定相同B.最左推导和最右推导对应的语法树可能不同C.最左推导和最右推导必定相同D.可能存在两个不同的最左推导,但它们对应的语法树相同23、由文法的开始符经0步或多步推导产生的文法符号序列是( C )A.短语 B.句柄 C.句型 D.句子24、文法G:E→E+T|TT→T*P|PP→(E)|i则句型P+T+i的句柄为( B )A.P+T B.P C.P+T+i D.i25、文法G:S→b|∧|(T)T→T∨S|S则FIRSTVT(T)=( C )A.{ b,∧,( } B.{ b,∧,) }C.{ b,∧,(,∨ } D.{ b,∧,),∨ }26、产生正规语言的文法为( D )A.0型 B.1型 C.2型 D.3型27、任何算符优先文法( D )优先函数。
A.有一个 B.没有 C.有若干个 D.可能有若干个28、采用自上而下分析,必须( C )A.消除左递归 B.消除右递归C.消除回溯 D.提取公共左因子29、素短语是指 D 的短语。
①至少包含一个符号②至少包含一个终结符号③至少包含一个非终结符号④除自身外不再包含其他终结符号⑤除自身外不再包含其他非终结符号⑥除自身外不再包含其他短语⑦除自身外不再包含其他素短语可选项有:A、①④B、①⑤C、②④D、②⑦30、给定文法A→bA∣cc,下面的符号串中,为该文法句子的是 A 。
①cc ②bcbc ③bcbcc ④bccbcc ⑤bbbcc可选项有:A、①B、①③④⑤C、①④D、①④⑤31、已知文法 G[S]:S→eT∣RT T→DR∣ε R→dR∣ε D→a∣bd则FOLLOW(T)= D 。
可选项有:A、{d}B、{a,b}C、{a,b,#}D、{#}E、{d,#}32、正则式中的“*”读作 D 。
可选项有:A、并且B、或者C、连接D、闭包33、在规范归约中,用( B )来刻画可归约串。
A.直接短语 B.句柄 C.最左素短语 D.素短语34、有文法G:E→E*T|TT→T+i|i句子1+2*8+6按该文法G归约,其值为( B )A.23 B.42 C.30 D.1735、如果文法是无二义的,那么规范归约是指( B )A.最左推导的逆过程 B.最右推导的逆过程C.规范推导 D.最左归约的逆过程36、文法G:S→S+T|TT→T*P|PP→(S)|i句型P+T+i的短语有( B )A.i,P+T B.P,P+T,i,P+T+i C.P+T+i D.P,P+T,i37、高级语言编译程序常用的语法分析方法中,递归下降分析法属于 b 分析方法。
可选项有:A、自左至右B、自顶向下C、自底向上D、自右向左38、一般程序设计语言的定义都涉及 A 三个方面。
①语法②语义③语用④程序基本符号的确定可选项有:A、①②③B、①②④C、①③④D、②③④39、编译过程中,语法分析器的任务是 B 。
①分析单词是怎样构成的②分析单词串是如何构成语句和说明的③分析语句和说明是如何构成程序的④分析程序的结构可选项有:A、②③B、②③④C、①②③D、①②③④40、编译程序生成的目标程序 B 是机器语言的程序。
可选项有:A、一定B、不一定C、无法判断D、一定不一、单项选择题(将正确答案的字母填入括号,每题1.5分,共30分)1、一般程序设计语言的定义都涉及到( 1.2.3)3个方面。
(1)语法(2)语义(3)语用(4)程序基本符号的确定2、程序语言一般分为( 1 )和( 2 )。
(1)高级语言;(2)低级语言;(3)专用程序语言;(4)通用程序语言3、面向机器语言指的是( B )。
A.用于解决机器硬件设计问题的语言B.特定计算机系统所固有的语言C.各种计算机系统都通用的语言D.只能在一台计算机上使用的语言4.面向机器语言的特点是( D )。
A.程序的执行效率低,编制效率低,可读性差B.程序的执行效率高,编制效率高,可读性强C.程序的执行效率低,编制效率高,可读性强D.程序的执行效率高,编制效率低,可读性差5、程序设计语言常见的数据类型有:1.2.3.4(1)数值型数据(2)逻辑数据(3)字符数据(4)指针类型6、下列程序设计语言中是应用式语言的是:BA、PASCALB、LISPC、VBD、PROLOG7、任何语法结构都可以用( C )来表示。
A、语法树B、树C、抽象语法树D、二义文法树8、字母表是符号的有穷集合,由( C )组成词和句子。
A、字符串B、字符C、符号D、语言9、下列符号是终结符的是( A)。
A、cB、AC、SD、β10、语法树用( C )关系说明了句子中以操作符为核心的操作顺序,同时也说明了每一个操作符的操作对象。
A 、上下B 、先后C 、层次D 、关联11、循环语句的语法树为( D )A 、B 、C 、D 、12、表达式中间代码的生成可采用( B )。
A 、三地址代码B 、四元式C 、三元式D 、间接三元式13、下列文法中,赋值语句的文法是( C )。
A 、B 、C 、D 、E →E op E14、词法分析的任务是( A )A 、识别单词B 、分析句子的含义C 、识别句子D 、生成目标代码15、常用的中间代码形式中不含( D )A 、三元式B 、四元式C 、 逆波兰式D 、语法树16、代码优化的目的是( C )A 、节省时间B 、节省空间C 、节省时间和空间D 、把编译程序进行等价转换17、代码生成阶段的主要任务是( C )A 、把高级语言翻译成汇编语言B 、把高级语言翻译成机器语言C 、把中间代码变换成依赖具体机器的目标代码D 、把汇编语言翻译成机器语言18、词法分析器的输入是( B )A 、单词符号串B 、源程序C 、语法单位D 、目标程序19、中间代码的生成所遵循的是( C )A 、语法规则B 、词法规则C 、语义规则D 、等价变换规则20、编译程序是对( D )A 、汇编程序的翻译B 、高级语言程序的解释并执行C 、机器语言的执行D 、高级语言的翻译while ()S E S →if () if () else S E S E S S|→=S id E →21、语法分析应遵循( C )A、语义规则B、语法规则C、构词规则D、等价变换规则22、编译程序各阶段的工作都涉及到( B )A、语法分析B、表格管理、出错处理C、语义分析D、词法分析23、编译程序工作时,通常有( 1.2.3.4 )阶段。
(1)词法分析(2)语法分析(3)中间代码生成(4)语义检查(5)目标代码生成24、由文法的开始符经0步或多步推导产生的文法符号序列是 C 。