找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1092|回复: 0

地大23春编译原理-模拟测试答案

[复制链接]
发表于 2023-2-1 11:46:07 | 显示全部楼层 |阅读模式
《编译原理》模拟题
一.单选题
1.()是两类程序语言处理程序.
A.高级语言程序和低级语言程序
B.解释程序和编译程序
C.编译程序和操作系统
D.系统程序和应用程序
[答案]:B2.解释程序处理语言时,大多数采用的是()方法.
A.源程序命令被逐个直接解释执行
B.先将源程序转化为中间代码,再解释执行
C.先将源程序解释转化为目标程序,再执行
D.以上方法都可以
[答案]:A3.()是一种典型的解释型语言.
A.BASIC
B.C
C.FORTRAN
D.PASCAL
[答案]:A4.与编译系统相比,解释系统().
A.比较简单,可移植性好,执行速度快
B.比较复杂,可移植性好,执行速度快
C.比较简单,可移植性差,执行速度慢
D.比较简单,可移植性好,执行速度慢
[答案]5.编译程序是一种().
A.汇编程序
B.翻译程序
C.解释程序
D.目标程序
[答案]:B6.编译程序是对().
A.汇编程序的翻译
B.高级语言程序的解释执行
C.机器语言的执行
D.高级语言的翻译
[答案]7.用高级语言编写的程序经编译后产生的程序叫().
A.源程序
B.目标程序
C.连接程序
D.解释程序
[答案]:B8.将编译程序分成若干个“遍”是为了().
A.提高程序的执行效率
B.使程序的结构更加清晰
C.利用有限的机器内存并提高机器的执行效率
D.利用有限的机器内存但降低了机器的执行效率
[答案]:B9.构造编译程序应掌握().
A.源程序
B.目标语言
C.编译方法
D.以上三项都是
[答案]10.通常一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括().
A.模拟执行器
B.解释器
C.表格处理和出错处理
D.符号执行器
[答案]:C11.编译程序绝大多数时间花在()上.
A.出错处理
B.词法分析
C.目标代码生成
D.管理表格
[答案]12.程序的基本块是指().
A.一个子程序
B.一个仅有一个入口和一个出口的语句
C.一个没有嵌套的程序段
D.一组顺序执行的程序段,仅有一个入口和一个出口
[答案]13.变量应当().
A.持有左值
B.持有右值
C.既持有左值又持有右值
D.既不持有左值也不持有右值
[答案]:C14.数组的内情向量中肯定不含有数组的()的信息.
A.维数
B.类型
C.维上下界
D.各维的界差
[答案]:A15.一个上下文无关文法G包括四个组成部分:一组终结符,一组非终结符,一个开始符号,以及一组().
A.字符串
B.产生式
C.非开始符号
D.文法
[答案]:B16.一个文法所描述的语言是().
A.唯一的
B.不唯一的
C.可能唯一,也可能不唯一
D.都不对
[答案]:A17.文法G产生的()的全体是该文法描述的语言.
A.句型
B.终结符集
C.非终结符集
D.句子
[答案]:D18.若文法G定义的语言是无限集,则文法必然是().
A.递归的
B.前后文无关的
C.二义性的
D.无二义性的
[答案]:A19.文法分为四种类型,即0型,1型,2型,3型.其中2型文法是().
A.短语文法
B.正则文法
C.上下文有关文法
D.上下文无关文法
[答案]:C20.四种形式语言文法中,1型文法又称为()文法.
A.短语文法
B.正则文法
C.上下文有关文法
D.上下文无关文法
[答案]:D21.正规式M1和M2等价是指().
A.M1和M2的状态数相等
B.Ml和M2的有向弧条数相等
C.M1和M2所识别的语言集相等
D.Ml和M2状态数和有向弧条数相等
[答案]:C22.词法分析器的输出结果是().
A.单词的种别编码
B.单词在符号表中的位置
C.单词的种别编码和自身值
D.单词自身值
[答案]:C23.词法分析器用于识别().
A.字符串
B.语句
C.单词
D.标识符
[答案]:C24.扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即().
A.字符
B.单词
C.句子
D.句型
[答案]:B25.一个句型中称为句柄的是该句型的最左().
A.非终结符号
B.短语
C.句子
D.直接短语
[答案]:D26.下推自动机识别的语言是().
A.0型语言
B.1型语言
C.2型语言
D.3型语言
[答案]:C27.如果文法G是无二义的,则它的任何句子α().
A.最左推导和最右推导对应的语法树必定相同
B.最左推导和最右推导对应的语法树可能不同
C.最左推导和最右推导必定相同
D.可能存在两个不同的最左推导,但它们对应的语法树相同
[答案]:A28.采用自上而下分析,必须().
A.消除左递归
B.消除右递归
C.消除回溯
D.提取公共左因子
[答案]:C29.在规范归约中,用()来刻画可归约串.
A.直接短语
B.句柄
C.最左素短语
D.素短语
[答案]:B30.若a为终结符,则A->α·aβ为()项目.
A.归约
B.移进
C.接受
D.待约
[答案]:B31.高级语言编译程序常用的语法分析方法中,递归下降分析法属于()分析方法.
A.自左向右
B.自顶向下
C.自底向上
D.自右向左
[答案]:B32.在通常的语法分析方法中,()特别适用于表达式的分析.
A.算符优先分析法
B.LR分析法
C.递归下降分析法
D.LL(1)分析法
[答案]:A33.语法分析器则可以发现源程序中的().
A.语义错误
B.语法和语义错误
C.错误并校正
D.语法错误
[答案]:D34.后缀式ab+cd+/可用表达式()来表示.
A.a+b/c+d
B.(a+b)/(c+d)
C.a+b/(c+d)
D.a+b+c/d
[答案]:B35.中间代码生成时所依据的是().
A.语法规则
B.词法规则
C.语义规则
D.等价变换规则
[答案]:C36.()和代码优化部分不是每个编译程序都必需的.
A.语法分析
B.中间代码生成
C.词法分析
D.目标代码生成
[答案]:B37.常用的中间代码形式不含().
A.三元式
B.四元式
C.逆波兰式
D.语法树
[答案]:D38.代码优化的目的是().
A.节省时间
B.节省空间
C.节省时间和空间把编译程序进行等价交换
[答案]:C39.优化可生成()的目标代码.
A.运行时间较短
B.占用存储空间较小
C.运行时间短但占用内存空间大
D.运行时间短且占用存储空间小
[答案]:D40.下列()优化方法不是针对循环优化进行的.
A.强度削弱
B.删除归纳变量
C.删除多余运算
D.代码外提
[答案]:C41.基本块内的优化为().
A.代码外提,删除归纳变量
B.删除多余运算,删除无用赋值
C.强度削弱,代码外提
D.循环展开,循环合并
[答案]:B42.代码生成阶段的主要任务是().
A.把高级语言翻译成汇编语言
B.把高级语言翻译成机器语言
C.把中间代码变换成依赖具体机器的目标代码
D.把汇编语言翻译成机器语言
[答案]:C43.在目标代码生成阶段,符号表用于().
A.目标代码生成
B.语义检查
C.语法检查
D.地址分配
[答案]:D44.程序所需的数据空间在程序运行前就可确定,称为()管理技术.
A.动态存储
B.栈式存储
C.静态存储
D.堆式存储
[答案]:C45.堆式动态分配申请和释放存储空间遵守()原则.
A.先请先放
B.先请后放
C.后请先放
D.任意
[答案]:D46.编译程序使用()区别标识符的作用域.
A.说明标识符的过程或函数名
B.说明标识符的过程或函数的静态层次
C.说明标识符的过程或函数的动态层次
D.标识符的行号
[答案]:B47.生成能被5整除的正整数的文法G[Z]是().
A.G(Z):Z→AC,A→BA|B,B→0|1|2|…|9,C→0|5
B.G(Z):Z→AC,A→BA|ε,B→0|1|2|…|9,C→0|5
C.G(Z):Z→AC|5,A→BA|B,B→0|1|2|…|9,C→0|5
D.G(Z):Z→AC|C,A→BA|B,B→0|1|2|…|9,C→0|5
[答案]:C48.符号串ab1b2是给定文法G[A]:A→aB,B→bB|b的句子,该句子的句柄是().
A.b1
B.b2
C.c
D..b1b2
[答案]:B49.一般程序设计语言的定义都涉及()三个方面.
①语法 ②语义 ③语用 ④程序基本符号的确定
A.①,②和③
B.①,②和④
C.①,③和④
D.②,③和④
[答案]:B50.下述语句类中,()在编译阶段通常不产生可执行代码.
A.赋值语句
B.流程控制语句
C.说明语句
D.输入输出语句
[答案]:C51.算符文法是指()的文法.
①没有形如U→...VW...的规则(U,V,WVN)
②VT中任意两个符号之间至多存在一种算符优先关系
③没有相同右部的规则
④没有形如U→ε的规则
A.①
B.①和②
C.①,②和③
D.①,②,③和④
[答案]:A52.已知文法G[E]:E→ABC,A→1|2|3|4|5|6|7|8|9,B→BA|B0|ε,C→0|2|4|6|8,对符号串128,它的最左推导是().
A.ETABCTAB8TABA8TAB28TA28T128
B.ETABCTABACTAACT1ACT12CT128
C.ETABCT1BCT1BACT1ACT12CT128
D.ETABCT1BCT1BACT1ACT1A8T128
[答案]:C53.程序的基本块是指().
A.不含无条件转移语句的程序段
B.不含条件转移语句的程序段
C.不含停机的语句程序段
D.仅含有一个入口语句和一个出口语句的顺序程序段
[答案]:D54.在编译程序采用的优化方法中,()是在循环语句范围内进行的.
①合并已知常量 ②删除多余运算 ③删除归纳变量 ④强度削弱 ⑤代码外提
A.①④
B.①⑤
C.①④⑤
D.③④⑤
[答案]:D55.设有文法G[I]:I→I1|I0|Ia|Ic|a|b|c,下列符号串中是该文法的句子的有().
①ab0 ②a0c01 ③aaa ④bc10
A.①
B.②③④
C.③④
D.①②③④
[答案]:B56.LR(0)分析法中,语法分析栈中存放的状态是识别规范句型()的DFA状态.
A.前缀
B.活前缀
C.LR(0)项目
D.句柄
[答案]:B57.常用()来识别一个正规集
A.无穷自动机
B.图灵机
C.下推自动机
D.有穷自动机
[答案]:D58.文法所描述的语言是()的集合.
A.文法的字汇表V中符号组成的符号串
B.文法的字汇表V中终结符号组成的符号串
C.由文法开始符推导的符号串
D.由文法开始符推导的终结符号串
[答案]:D59.LL(1)文法中第一个L表示().
A.最左推导
B.最左归约
C.从左到右识别输入串
D.规范归约
[答案]:C60.编译程序前三个阶段完成的工作是()
A.词法分析,语法分析和代码优化代码生成,代码优化和词法分析
B.词法分析,语法分析,语义分析和中间代码生成
C.词法分析,语法分析和代码优化
[答案]:C二.判断题
1.逆波兰表示法表示表达式时无须使用括号.
[答案]:T2.静态数组的存储空间可以在编译时确定.
[答案]:F3.进行代码优化时应着重考虑循环的代码优化,这对提高目标代码的效率将起更大作用.
[答案]:F4.树形表示和四元式不便于优化,而三元式和间接三元式则便于优化.
[答案]:F5.计算机高级语言翻译成低级语言只有解释一种方式.
[答案]:F6.用高级语言书写的源程序都必须通过编译,产生目标代码后才能投入运行.
[答案]:F7.在编译中进行语法检查的目的是为了发现程序中所有错误.
[答案]:F8.甲机上的某编译程序在乙机上能直接使用的必要条件是甲机和乙机的操作系统功能完全相同.
[答案]:T9.编译程序与具体的机器有关,与具体的语言无关.
[答案]:F10.编译程序是对高级语言程序的解释执行.
[答案]:F11.程序语言的语言处理程序是一种应用软件.
[答案]:F12.在程序中标识符的出现仅为使用性的.
[答案]:F13.仅考虑一个基本块,不能确定一个赋值是否真是无用的.
[答案]:T14.符号表中的信息栏中登记了每个名字的属性和特征等有关信息,如类型,种属,所占单元大小,地址等等.
[答案]:F15.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态.
[答案]:T16.一个有限状态自动机中,有且仅有一个唯一的终态.
[答案]:F17.产生式是用于定义词法成分的一种书写规则.
[答案]:F18.若一个句型中出现了某产生式的右部,则此右部一定是该句型的句柄.
[答案]:F19.一个句型的句柄一定是文法某产生式的右部.
[答案]:T20.词法分析作为单独的一遍来处理较好.
[答案]:F21.正则文法其产生式为A->a,A->Bb,A,B∈VN,a,b∈VT.
[答案]:F22.正规文法产生的语言都可以用上下文无关文法来描述.
[答案]:F23.设r和s分别是正规式,则有L(r|s)=L(r)L(s).
[答案]:F24.确定的自动机以及不确定的自动机都能正确地识别正规集.
[答案]:T25.每个文法都能改写为LL(1)文法.
[答案]:T26.一个LL(l)文法一定是无二义的.
[答案]:F27.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的.
[答案]:T28.语法分析时必须先消除文法中的左递归.
[答案]:F29.综合属性是用于“自上而下”传递信息.
[答案]:F30.规范归约和规范推导是互逆的两个过程.
[答案]:F31.递归下降法允许任一非终极符是直接左递归的.
[答案]:T32.递归下降分析法是自顶向上分析方法.
[答案]:T33.算符优先关系表不一定存在对应的优先函数.
[答案]:F34.一个算符优先文法可能不存在算符优先函数与之对应.
[答案]:T35.自底而上语法分析方法的主要问题是候选式的选择.
[答案]:F36.LR法是自顶向下语法分析方法.
[答案]:F37.LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点.
[答案]:T38.构造LR分析器的任务就是产生LR分析表.
[答案]:T39.LR分析技术无法适用二义文法.
[答案]:F40.简单优先文法允许任意两个产生式具有相同右部.
[答案]:F41.程序中的表达式语句在语义翻译时不需要回填技术.
[答案]:T42.削减运算强度破坏了临时变量在一基本块内仅被定义一次的特性.
[答案]:T43.在中间代码优化中循环上的优化主要有不变表达式外提和削减运算强度.
[答案]:F44.对中间代码的优化依赖于具体的计算机.
[答案]:F45.数组元素的地址计算与数组的存储方式有关.
[答案]:F46.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题.
[答案]:F47.逆波兰法表示的表达式亦称前缀式.
[答案]:T三.填空题
1.编译方式与解释方式的根本区别在于###.
[答案]:是否生成目标代码2.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为###.
[答案]:编译程序3.对编译程序而言,输入数据是###,输出结果是目标程序.
[答案]:源程序4.编译程序的工作过程一般划分为5个阶段:词法分析,###,语义分析与中间代码生成,代码优化及目标代码生成.
[答案]:语法分析5.一个名字的属性包括###和作用域.
[答案]:类型6.设G是一个给定的文法,S是文法的开始符号,如果S->x(其中x∈VT*),则称x是文法的一个###.
[答案]:句子7.扫描器的任务是从源程序中识别出一个个###.
[答案]:单词符号8.规范规约是最###规约.
[答案]:左9.词法分析基于###文法进行,即识别的单词是该类文法的句子.
[答案]:正则10.文法符号的属性有综合属性和###.
[答案]:继承属性11.语法分析器的输入是###,其输出是语法单位.
[答案]:单词符号串12.语法分析的有效工具是###.
[答案]:语法树13.语法分析最常用的两类方法是###和自下而上分析法.
[答案]:自上而下14.分析句型时,应用算符优先分析技术时,每步被直接归约的是###.
[答案]:最左素短语15.应用LR分析技术时,每步被直接归约的是###.
[答案]:句柄16.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行###,试图推导出文法的句子,使之与给定的输入串匹配.
[答案]:直接推导17.自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地向上进行###,力求归约到文法的开始符号.
[答案]:直接归约18.自上而下分析法采用###,归约,错误处理,接受等四种操作.
[答案]:移进19.一个LR分析器包括两部分:一个总控程序和###.
[答案]:一张分析表20.递归下降法不允许任一非终极符是直接###递归的.
[答案]:左21.对于文法的每个产生式都配备了一组属性的计算规则,称为###.
[答案]:语义规则22.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是###.
[答案]:二义性文法23.预测分析程序是使用一张分析表和一个###进行联合控制的.
[答案]:符号栈四.问答题
1.简述编译程序各组成部分的主要功能.
[答案]:词法分析器:输入源程序,进行词法分析,输出单词符号.语法分析器:在词法分析的基础上,根据语言的语法规则(文法规则)把单词符号串分解成各类语法单位,并判断输入串是否构成语法上正确的“程序”.中间代码生成器:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码,比如说四元式.优化:对中间代码进行优化处理.目标代码生成器:把中间代码翻译成目标语言程序.表格管理模块保存一系列的表格,登记源程序的各类信息和编译各阶段的进展情况.编译程序各阶段所产生的中间结果都记录在表格中,所需信息多数都需从表格中获取,整个编译过程都在不断地和表格打交道.出错处理程序对出现在源程序中的错误进行处理.此外,编译的各阶段都可能出现错误,出错处理程序对发现的错误都及时进行处理.2.文法G[S]为:S->Ac|aBA->abB->bc写出L(G[S])的全部元素.
[答案]:S=>Ac=>abcS=>aB=>abc所以L(G[S])={abc}3.什么是句子?什么是语言?
[答案]:设G是一个给定的文法,S是文法的开始符号,如果Sx(其中x∈VT*),则称x是文法的一个句子.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为(G)={x│Sx,x∈VT*}.4.一字母表∑={a,b},试写出∑;上所有以a为首的字组成的正规集相对应的正规式.
[答案]:正规式a(a|b)*附件是答案,转载注明 无忧答案网

QQ|手机版|小黑屋|网站地图|无忧答案网 ( 冀ICP备18010495号-1 )

GMT+8, 2024-5-4 10:05

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表