编译原理期末复习题(选择)

一、选择题

1.将编译程序分成若干个“遍”是为了 B  

A.提高程序的执行效率

B.使程序的结构更加清晰

C.利用有限的机器内存并提高机器的执行效率

D.利用有限的机器内存但降低了机器的执行效率

2.构造编译程序应掌握 D  

A.源程序       B.目标语言     C.编译方法     D.以上三项都是

3.变量应当 C  

A.持有左值                                          B.持有右值

C.既持有左值又持有右值                    D.既不持有左值也不持有右值

4.编译程序绝大多数时间花在 D 上。 

A.出错处理         B.词法分析      C.目标代码生成      D.管理表格

5.词法分析器的输出结果是 C  

A.单词的种别编码                              B.单词在符号表中的位置

C.单词的种别编码和自身值               D.单词自身值

6.正规式M1和M2等价是指 C )

A. M1和M2的状态数相等                              B. M1和M2的有向弧条数相等。

C. M1和M2所识别的语言集相等                   D. M1和M2状态数和有向弧条数相等

7.中间代码生成时所依据的是 C )

A.语法规则    B.词法规则    C.语义规则    D.等价变换规则

8.后缀式ab+cd+/可用表达式 B )来表示。 

A、a+b/c+d     B、(a+b)/(c+d)    C、a+b/(c+d)     D、a+b+c/d

9.程序所需的数据空间在程序运行前就可确定,称为 C )管理技术。 

A.动态存储    B.栈式存储    C.静态存储     D.堆式存储

10.堆式动态分配申请和释放存储空间遵守 D )原则。 

A.先请先放    B.先请后放    C.后请先放     D.任意

11 词法分析器不能( D )

A. 识别出数值常量                    B. 过滤源程序中的注释

C. 扫描源程序并识别记号         D. 发现括号不匹配

12 ( B )这样一些语言,它们能被确定的有穷自动机识别,但不能用正则表达式表示。

A. 存在     B. 不存在     C. 无法判定是否存在        D. 以上答案都不对

13 两个有穷自动机等价是指它们的( C )

A. 状态数相等   B. 有向弧数相等   C. 所识别的语言相等   D. 状态数和有向弧数相等

14 词法分析器用于识别( C )

A. 句子     B. 产生式      C. 单词      D. 句型

15 与(a|b)*(a|b)等价的正规式是( C )

16 正则表达式 R1和R2等价是指( C )

A. R1和R2都是定义在一个字母表上的正则表达式

B. R1和R2使用的运算符相同

C. R1和R2代表同一正则集

D. R1和R2代表不同正则集

17 如图所示自动机M,请问下列哪个字符串不是M所能识别的( D )

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

18 有限状态自动机能识别( C )

A. 上下文无关语言    B. 上下文有关语言    C. 正规语言    D. 0型文法定义的语言

19 ( B )不是DFA的成分

A. 有穷字母表     B. 多个初始状态的集合    C. 多个终态的集合    D. 转换函数

20 DFA M(见图)接受的字集为( D )

A. 以0开头的二进制数组成的集合

B. 以0结尾的二进制数组成的集合

C. 含奇数个0的二进制数组成的集合

D. 含偶数个0的二进制数组成的集合

21 有穷自动机M1和M2等价是指( C )

A. M1和M2的状态数相等

B. M1和M2的有向边条数相等

C. M1和M2所识别的语言集相等

D. M1和M2状态数和有向边条数相等

22 同正规式(a|b)+等价的正规式是( A )

23 称有限自动机 A1和A2等价是指( D )

A. A1和A2都是定义在一个字母表上的有限自动机

B. A1和A2状态数和有向边数相等

C. A1和A2状态数或有向边数相等

D. A1和A2所能识别的字符串集合相等

24 两个DFA等价是指( D )

A. 这两个DFA的状态数相同

B. 这两个DFA的状态数和有向弧条数都相等

C. 这两个DFA的有向弧条数相等

D. 这两个DFA接受的语言相同

25 同正规式(a|b)*等价的正规式为( D )

26 词法分析器的加工对象是( C )

A. 中间代码       B. 单词        C. 源程序       D. 元程序

27 同正规式a*b*等价的文法是( C )

A. G1:S→aS|bS|ε         B. G2:S→aSb|ε

C. G3:S→ aS|Sb|ε        D. G4:S→ abS|ε

28 如果文法G是无二义的,则它的任何句子α(  A  )

A. 最左推导和最右推导对应的语法树必定相同

B. 最左推导和最右推导对应的语法树可能不同

C. 最左推导和最右推导必定相同

D. 可能存在两个不同的最左推导,但它们对应的语法树相同

29采用自上而下分析,不必( C )

A. 消除回溯             B. 消除左递归            C. 消除右递归             D. 提取公共左因子

30 识别上下文无关语言的自动机是( A )

A. 下推自动机           B. NFA            C. DFA              D. 图灵机

31 ( D )文法不是LL(1)的。

A. 递归            B. 右递归            C. 2型               D. 含有公共左因子的

32 在自上而下的语法分析中,应从( C )开始分析。

A. 句型            B. 句子              C. 文法开始符号              D. 句柄

33 一个文法G,若( C ),则称它是LL(1)文法。

A.G中不含左递归                                                     B. G无二义性   

C. G的LL(1)分析表中不含多重定义的条目          D. G中产生式不含左公因子

34 语法分析器的输入是( A )

A. Token序列            B. 源程序             C. 目标程序              D. 符号表

35 在语法分析处理中,FIRST集合、FOLLOW集合均是( B )

A. 非终结符集           B. 终结符集            C. 字母表              D. 状态集

36 在编译过程中,如果遇到错误应该( B )

A. 把错误理解成局部的错误

B. 对错误在局部范围内进行纠正,继续向下分析

C. 当发现错误时,跳过错误所在的语法单位继续分析下去

D. 当发现错误时立即停止编译,待用户改正错误后再继续编译

37 已知文法G[S]:S→eT|RT T→DR|ε R→dR|ε D→a|bd求FIRST(S)=( D )

A. {e }      B. {e,d,a,b}      C. {e,d }       D. {e,d,a,b,ε}

38 已知文法G[S]:S→eT|RT T→DR|ε R→dR|ε D→a|bd求FOLLOW(D)=( C )

A. {d,e}     B. {d,ε}     C. {d,#}    D. {a,d}      E. 错

39 若a为终结符,则A→α·aβ为( B )项目。

A. 归约      B. 移进       C. 接受      D. 待约

40一个句型中的( A )称为该句型的句柄。

A. 最左直接短语      B. 最右直接短语      C. 终结符       D. 非终结符

41 在自底向上的语法分析方法中,分析的关键是( A )

A. 寻找句柄      B. 寻找句型      C. 消除递归      D. 选择候选式

42 在自顶向下的语法分析方法中,分析的关键是( D )

A. 寻找句柄      B. 寻找句型      C. 消除递归      D. 选择候选式

43 下列动作中,不是自下而上分析动作的是( B )

A. 移进        B. 展开      C. 接受        D. 报错

44下列动作中,不是自上而下分析动作的是( C )

A. 匹配        B. 展开      C. 移进        D. 报错

45 LR分析表中的转移表(goto)是以( B )作为列标题的。

A. 终结符     B. 非终结符    C. 终结符或非终结符     D. 表示状态的整型数

46 LR分析表中的动作表(action)是以( D )作为列标题的。

A. 终结符     B. 非终结符    C. 终结符或非终结符     D. 终结符和结束符#

47下列项目中为可归约项目的是( B )

A. E′→· E            B. L→·            C. L→-· L               D. F→L*· F

48 LR分析器的核心部分是一张分析表,该表由( D )组成。

A. ACTION表    B. GOTO表    C. 预测分析表    D. ACTION表和GOTO表

49 设 G 是一个给定的文法, S 是文法的开始符号,如果 S->x( 其中 x∈(N|T)*),则称 x 是文法 G 的一个 A ) 

A.候选式      B.句型       C.单词        D.产生式

50.中间代码主要包括 C )                                               

A.三元式,四元式                               B.后缀式,三地址码

C.后缀式,三地址码,树,图             D.树,图

51.连接名字的声明和名字的引用的桥梁是 B )                       

A.中间代码          B.符号表             C.作用域           D.语法树

52.活动之间的通信方式有两种,一种是子程序调用,还有一种是 C )

A.递归调用             B.嵌套调用            C.消息传递            D.参数传递

53.代码生成器的输入 B )                                      

A.记号流          B.中间代码和符号表信息          C.语法树和分析树           D.三地址码

54.代码优化的方法中不包含 C )                                   

A.窥孔优化            B.强度削弱            C.构造流图           D.基本块优化

55一段顺序执行的代码称为一个 A )                               

A. 基本块             B. 流图              C. 循环             D.下次引用信息

56.在一个基本内部进行优化称为 D )                             

A.窥孔优化           B.全局优化           C.消除死代码           D.基本块优化

57.以下属于语义分析的基本方法的是 A )                               

A.语法制导翻译            B.自上而下分析            C.自下而上分析            D.递归下降分析

58.下述关于顺序执行的程序的活动树上各节点之间的关系错误的说法是 B )

A.同一层次的活生存期不交            B.任何一时刻只有一个活动处于生存期

C.任何时刻,处于生存期的活动构成一条从根节点到某节点的路径

D.路径上各节点的生存期是嵌套的

59.在一个基本块内,为变量分配寄存器还是内存的依据是 C )        

A.变量的作用域和活跃信息            B.变量的生存期和下次引用信息

C.变量的下次引用信息和活跃信息    D.变量的类型和下次引用信息

60.目标代码的形式是 D )                                         

A.三地址码和机器指令         B.汇编指令           C.机器指令             D.汇编指令和机器指令

原文地址:https://blog.csdn.net/weixin_54217081

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


jquery.validate使用攻略(表单校验) 目录 jquery.validate使用攻略1 第一章 jquery.validate使用攻略1 第二章 jQuery.validate.js API7 Custom selectors7 Utilities8 Validato
/\s+/g和/\s/g的区别 正则表达式/\s+/g和/\s/g,目的均是找出目标字符串中的所有空白字符,但两者到底有什么区别呢? 我们先来看下面一个例子: let name = 'ye wen jun';let ans = name.replace(/\s/g, '&#3
自整理几个jquery.Validate验证正则: 1. 只能输入数字和字母 /^[0-9a-zA-Z]*$/g jQuery.validator.addMethod("letters", function (value, element) { return this.optio
this.optional(element)的用法 this.optional(element)是jquery.validator.js表单验证框架中的一个函数,用于表单控件的值不为空时才触发验证。 简单来说,就是当表单控件值为空的时候不会进行表单校验,此函数会返回true,表示校验通过,当表单控件
jQuery.validate 表单动态验证 实际上jQuery.validate提供了动态校验的方法。而动态拼JSON串的方式是不支持动态校验的。牺牲jQuery.validate的性能优化可以实现(jQuery.validate的性能优化见图1.2 jQuery.validate源码 )。 也可
自定义验证之这能输入数字(包括小数 负数 ) <script type="text/javascript"> function onlyNumber(obj){ //得到第一个字符是否为负号 var t = obj.value.charAt(0); //先把非数字的都
// 引入了外部的验证规则 import { validateAccountNumber } from "@/utils/validate"; validator.js /*是否合法IP地址*/ export function validateIP(rule, value,cal
VUE开发--表单验证(六十三) 一、常用验证方式 vue 中表单字段验证的写法和方式有多种,常用的验证方式有3种: data 中验证 表单内容: <!-- 表单 --> <el-form ref="rulesForm" :rules="formRul
正则表达式 座机的: 例子: 座机有效写法: 0316-8418331 (010)-67433539 (010)67433539 010-67433539 (0316)-8418331 (0316)8418331 正则表达式写法 0\d{2,3}-\d{7,8}|\(?0\d{2,3}[)-]?\d
var reg = /^0\.[1-9]{0,2}$/;var linka = 0.1;console.log (reg.test (linka)); 0到1两位小数正则 ^(0\.(0[1-9]|[1-9]{1,2}|[1-9]0)$)|^1$ 不含0、0.0、0.00 // 验证是否是[1-10
input最大长度限制问题 <input type="text" maxlength="5" /> //可以 <input type="number" maxlength="5" /> //没有效
js输入验证是否为空、是否为null、是否都是空格 目录 1.截头去尾 trim 2.截头去尾 会去掉开始和结束的空格,类似于trim 3.会去掉所有的空格,包括开始,结束,中间 1.截头去尾 trim str=str.trim(); // 强烈推荐 最常用、最实用 or $.trim(str);
正则表达式语法大全 字符串.match(正则):返回符合的字符串,若不满足返回null 字符串.search(正则):返回搜索到的位置,若非一个字符,则返回第一个字母的下标,若不匹配则返回-1 字符串.replace(正则,新的字符串):找到符合正则的内容并替换 正则.test(字符串):在字符串中
正整数正则表达式正数的正则表达式(包括0,小数保留两位): ^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+\d)|0)$正数的正则表达式(不包括0,小数保留两位): ^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+
JS 正则验证 test() /*用途:检查输入手机号码是否正确输入:s:字符串返回:如果通过验证返回true,否则返回false /function checkMobile(s){var regu =/[1][3][0-9]{9}$/;var re = new RegExp(regu);if (r
请输入保留两位小数的销售价的正则: /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/ 1.只能输入英文 <input type="text" onkeyup="value
判断价格的正则表达式 价格的正则表达式 /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/; 1 解析:价格符合两种格式 ^ [1-9]\d*(.\d{1,2})?$ : 1-9 开头,后跟是 0-9,可以跟小数点,但小数点后要带上 1-2 位小数,类似 2,2
文章浏览阅读106次。这篇文章主要介绍了最实用的正则表达式整理,比如校验邮箱的正则,号码相关,数字相关等等,本文给大家列举的比较多,需要的朋友可以参考下。_/^(?:[1-9]d*)$/ 手机号
文章浏览阅读1.2k次。4、匹配中的==、an==、== an9、i9 == "9i"和99p==请注意下面这部分的作用,它在匹配中间内容的时候排除了说明:当html字符串如下时,可以匹配到两处,表示匹配的字符串不包含and且不包含空白字符。说明:在上面的正则表达式中,_gvim正则表达式匹配不包含某个字符串
文章浏览阅读897次。【代码】正则表达式匹配a标签的href。_auto.js 正则匹配herf