欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    编译原理期末考试选择题汇总Word格式.docx

    • 资源ID:6424059       资源大小:236.82KB        全文页数:36页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编译原理期末考试选择题汇总Word格式.docx

    1、 B词法分析器作为子程序较好 C词法分析器分解为多个过程,由语法分析器选择使用 D词法分析器并不作为一个独立的阶段13、如果L(M1)=L(M2),则M1与M2( A ) A等价 B都是二义的 C都是无二义的 D它们的状态数相等14、文法G:SxSx|y所识别的语言是( C ) Axyx B(xyx)* cxnyxn(n0) dx*yx*15、文法G描述的语言L(G)是指( A ) A B C D16、有限状态自动机能识别( C ) A上下文无关文法 B上下文有关文法 C正规文法 D短语文法17、编译过程中扫描器的任务包括 d 。组织源程序的输入 按词法规则分割出单词,识别出其属性,并转换成属

    2、性字的形式输出 删除注解 删除空格及无用字符 行计数、列计数 发现并定位词法错误 建立符号表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、

    3、 b、 c、 d、 22、如果文法G是无二义的,则它的任何句子( A ) A最左推导和最右推导对应的语法树必定相同 B最左推导和最右推导对应的语法树可能不同 C最左推导和最右推导必定相同 D可能存在两个不同的最左推导,但它们对应的语法树相同23、由文法的开始符经0步或多步推导产生的文法符号序列是( C ) A短语 B句柄 C句型 D句子24、文法G:EE+T|T TT*P|P P(E)|i则句型P+T+i的句柄为( B ) AP+T BP CP+T+i Di25、文法G:Sb|(T) TTS|S则FIRSTVT(T)=( C ) A b,( B b,) C b,(, D b,), 26、产生正

    4、规语言的文法为( D ) A0型 B1型 C2型 D3型27、任何算符优先文法( D )优先函数。 A有一个 B没有 C有若干个 D可能有若干个28、采用自上而下分析,必须( C ) A消除左递归 B消除右递归 C消除回溯 D提取公共左因子29、素短语是指 D 的短语。至少包含一个符号 至少包含一个终结符号 至少包含一个非终结符号 除自身外不再包含其他终结符号 除自身外不再包含其他非终结符号 除自身外不再包含其他短语 除自身外不再包含其他素短语A、 B、 C、 D、30、给定文法AbAcc,下面的符号串中,为该文法句子的是 A 。cc bcbc bcbcc bccbcc bbbccA、 B、

    5、C、 D、 31、已知文法 GS: SeTRT TDR RdR Dabd则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:EE*T|T TT+i|i句子1+2*8+6按该文法G归约,其值为( B ) A23 B42 C30 D1735、如果文法是无二义的,那么规范归约是指( B ) A最左推导的逆过程 B最右推导的逆过程 C规范推导 D最左归约的逆过程36、文法G:SS+T|T P

    6、(S)|i句型P+T+i的短语有( B ) Ai,P+T BP,P+T,i,P+T+i CP+T+i DP,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、一定不 一、单项选择题(将

    7、正确答案的字母填入括号,每题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程序

    8、的执行效率高,编制效率低,可读性差5、程序设计语言常见的数据类型有:1.2.3.4(1)数值型数据 (2)逻辑数据 (3)字符数据 (4)指针类型6、下列程序设计语言中是应用式语言的是:BA、PASCAL B、LISP C、VB D、PROLOG7、任何语法结构都可以用( C )来表示。A、语法树 B、树 C、抽象语法树 D、二义文法树8、字母表是符号的有穷集合,由( C )组成词和句子。A、字符串 B、字符 C、符号 D、语言9、下列符号是终结符的是( A)。A、c B、A C、S D、10、语法树用( C )关系说明了句子中以操作符为核心的操作顺序,同时也说明了每一个操作符的操作对象。A、

    9、上下 B、先后 C、层次 D、关联11、循环语句的语法树为( D )A、 B、 C、 D、12、表达式中间代码的生成可采用( B )。A、三地址代码 B、四元式 C、三元式 D、间接三元式13、下列文法中,赋值语句的文法是( C )。A、 B、 C、 D、EE op E 14、词法分析的任务是( A )A、识别单词 B、分析句子的含义 C、识别句子 D、生成目标代码15、常用的中间代码形式中不含( D )A、三元式 B、四元式 C、 逆波兰式 D、语法树16、代码优化的目的是( C )A、节省时间 B、节省空间 C、节省时间和空间 D、把编译程序进行等价转换17、代码生成阶段的主要任务是( C

    10、 )A、把高级语言翻译成汇编语言 B、把高级语言翻译成机器语言 C、把中间代码变换成依赖具体机器的目标代码 D、把汇编语言翻译成机器语言18、词法分析器的输入是( B )A、单词符号串 B、源程序 C、语法单位 D、目标程序19、中间代码的生成所遵循的是( C )A、语法规则 B、词法规则 C、语义规则 D、等价变换规则20、编译程序是对( D )A、汇编程序的翻译 B、高级语言程序的解释并执行 C、机器语言的执行 D、高级语言的翻译21、语法分析应遵循( C )A、语义规则 B、语法规则 C、构词规则 D、等价变换规则 22、编译程序各阶段的工作都涉及到( B )A、语法分析 B、表格管理、

    11、出错处理 C、语义分析 D、词法分析23、编译程序工作时,通常有( 1.2.3.4 )阶段。(1)词法分析 (2)语法分析 (3)中间代码生成 (4)语义检查 (5)目标代码生成24、由文法的开始符经0步或多步推导产生的文法符号序列是 C 。 A、短语 B、句柄 C、句型 D、句子25、产生正规语言的文法为 D 。A、0型 B、1型 C、 2型 D、3型26、对无二义性文法来说,一棵语法树往往代表了 D 。(1) 多种推导过程 (2) 多种最左推导过程 (3)一种最左推导过程(4)仅一种推导过程 (5)一种最左推导过程A、 B、(1)(3)(5) C、 D27、如果文法G存在一个句子,满足下列

    12、条件 之一时,则称该文法是二义文法。BCDa. 该句子的最左推导与最右推导相同 b. 该句子有两个不同的最左推导c. 该句子有两棵不同的最右推导 d. 该句子有两棵不同的语法树 e.该句子的语法树只有一个28、优化可生成( D )的目标代码。A、运行时间较短 B、占用存储空间较小 C、运行时间短且占用内存空间大 D、运行时间短且存储空间小29、构造编译程序应掌握( D )A、源程序 B、目标程序 C、编译方法 D、以上三项都是30、赋值语句x=a+b*c-d的逆波兰式为( B)A、xab+c*d-= B、xabc*+d-= C、xabcd*+-= D、x=abc*+d-31、词法分析器的输出结

    13、果是( C )A、单词的种别编码 B、单词在符号表中的位置 C、单词的种别编码和自身值 D、单词自身值编译原理期末试题(一)一、是非题(请在括号内,正确的划,错误的划)(每个2分,共20分)1编译程序是对高级语言程序的解释执行。( )2一个有限状态自动机中,有且仅有一个唯一的终态。)3一个算符优先文法可能不存在算符优先函数与之对应。 ( )4语法分析时必须先消除文法中的左递归 。 (5LR分析法在自左至右扫描输入串时就能发现错误,但不能准确地指出出错地点。 ()6逆波兰表示法表示表达式时无须使用括号。7静态数组的存储空间可以在编译时确定。8进行代码优化时应着重考虑循环的代码优化,这对提高目标代

    14、码的效率将起更大作用。9两个正规集相等的必要条件是他们对应的正规式等价。10一个语义子程序描述了一个文法所对应的翻译工作。二、选择题(请在前括号内选择最确切的一项作为答案划一个勾,多划按错论)(每个4分,共40分)1词法分析器的输出结果是_。A( ) 单词的种别编码 B( ) 单词在符号表中的位置 C( ) 单词的种别编码和自身值 D( ) 单词自身值2 正规式 M 1 和 M 2 等价是指_。 A( ) M1和M2的状态数相等 B( ) M1和M2的有向边条数相等C( ) M1和M2所识别的语言集相等 D( ) M1和M2状态数和有向边条数相等 3 文法G:SxSx|y所识别的语言是_。A(

    15、 ) xyx B( ) (xyx)* C( ) xnyxn(n0) D( ) x*yx* 4如果文法G是无二义的,则它的任何句子_。A( )最左推导和最右推导对应的语法树必定相同 B( ) 最左推导和最右推导对应的语法树可能不同 C( ) 最左推导和最右推导必定相同 D( )可能存在两个不同的最左推导,但它们对应的语法树相同 5构造编译程序应掌握_。A( )源程序B( ) 目标语言 C( ) 编译方法 D( ) 以上三项都是 6四元式之间的联系是通过_实现的。A( ) 指示器 B( ) 临时变量 C( ) 符号表 D( ) 程序变量 7表达式(AB)(CD)的逆波兰表示为_。A. ( ) AB

    16、CD B( ) ABCD C( ) ABCD D( ) ABCD 8. 优化可生成_的目标代码。A( ) 运行时间较短 B( ) 占用存储空间较小C( ) 运行时间短但占用内存空间大 D( ) 运行时间短且占用存储空间小9下列_优化方法不是针对循环优化进行的。A. ( ) 强度削弱 B( ) 删除归纳变量 C( ) 删除多余运算 D( ) 代码外提10编译程序使用_区别标识符的作用域。A. ( ) 说明标识符的过程或函数名B( ) 说明标识符的过程或函数的静态层次C( ) 说明标识符的过程或函数的动态层次 D. ( ) 标识符的行号编译原理期末试题(二)1、描述由正规式b*(abb*)*(a|

    17、 )定义的语言,并画出接受该语言的最简DFA。2、证明文法E E + id | id是SLR(1)文法。 5、下面C语言程序经非优化编译后,若运行时输入2,则结果是 area=12.566360, addr=-1073743076经优化编译后,若运行时输入2,则结果是 area=12.566360, addr=-1073743068请解释为什么输出结果有区别。main() float s, pi, r; pi=3.14159; scanf(%f, &r); printf(area=%f, addr=%dn, s=pi*r*r, &6、描述由正规式b*a(bb*a) *b*定义的语言,并画出接受

    18、该语言的最简DFA。7、下面的文法产生代表正二进制数的0和1的串集: B B 0 | B 1 | 1 下面的翻译方案计算这种正二进制数的十进制值: B B1 0 B.val := B1.val 2 | B1 1 B.val := B1.val 2 +1 | 1 B.val := 1 请消除该基础文法的左递归,再重写一个翻译方案,它仍然计算这种正二进制数的十进制值。8、 在C语言中,如果变量i和j都是long类型,请写出表达式&i和表达式&i-&j的类型表达式。为帮助你回答问题,下面给出一个程序作为提示,它运行时输出1。 main() long i, j; printf(“%dn”, &j);

    19、9、一个C语言的函数如下: func(i) long i; long j; j = i 1; func(j);下面左右两边的汇编代码是两个不同版本GCC编译器为该函数产生的代码。左边的代码在调用func之前将参数压栈,调用结束后将参数退栈。右边代码对参数传递的处理方式没有实质区别。请叙述右边代码对参数传递的处理方式并推测它带来的优点。 func: | func: pushl %ebp | pushl %ebp movl %esp, %ebp | movl %esp, %ebp subl $4, %esp | subl $8, %esp movl 8(%ebp), %edx | movl 8(%

    20、ebp), %eax decl %edx | decl %eax movl %edx, -4(%ebp) | movl %eax, -4(%ebp) movl -4(%ebp), %eax | movl -4(%ebp), %eax pushl %eax | movl %eax, (%esp) call func | call func addl $4, %esp | leave leave | ret ret |编译原理试卷八答案start1ab21、由正规式b*(abb*)*(a| )定义的语言是字母表a, b上不含子串aa的所有串的集合。最简DFA如下:2、先给出接受该文法活前缀的DFA

    21、如下:I0和I3都只有移进项目,肯定不会引起冲突;I2和I4都无移进项目并仅含一个归约项目,也肯定不会引起冲突;在I1中,E的后继符号只有$,同第2个项目的展望符号“+”不一样,因此I1也肯定不会引起冲突。由此可以断定该文法是SLR(1)的。3、语法制导定义如下。S id := E S.type := if (id.type = bool and E.type = bool) or (id.type = int and E.type = int)then type_ok else type_error E E1 and E2 E.type := if E1.type = bool and E2

    22、.type = bool then bool else type_error E E1 + E2 E.type := if E1.type = int and E2.type = int then int else type_error E E1 = E2 E.type := if E1.type = int and E2.type = int then bool else type_error E id E.type := lookup(id.entry) 4、对于函数f1,局部变量x声明的作用域是整个函数体,导致在函数体中不可能访问形式参数x。由于这是一个合法的C语言函数,因此编译器给出警

    23、告错误。对于函数f2,由于局部变量x的作用域只是函数体的一部分,不会出现上述问题,因而编译器不报错。5、使用非优化编译时,变量s, pi, r在局部数据区都分配4个字节的空间。使用优化编译时,由于复写传播,pi*r*r 变成3.14159*r*r,pi=3.14159成为无用赋值而删去,函数中不再有pi的引用,因此不必为pi分配空间。类似地,s=3.14159*r*r也是一个无用赋值(表达式要计算,但赋值是无用的),也不必为s分配空间。这样,和非优化情况相比,局部数据区少了8个字节, 因此r的地址向高地址方向移动了8个字节。6、正规式b*a(bb*a) *b*体现的特点是,每个a的左边都有若干

    24、b,除非a是第一个字母。该正规式定义的语言是:至少含一个a,但不含子串aa的所有a和b的串集。7、 消除左递归后的文法: B 1 B B 0 B | 1 B | 相应的翻译方案如下: B 1 B.i := 1 BB.val := B.val 0 B1.i :.i 2 B1 B.val :1.val | 1 B.i 2 +1 B | B.i8、表达式&i的类型表达式是pointer(long),表达式&j的类型表达式是long。按照C语言的规定,指向同一个类型的两个指针可以相加减,它们值的差是它们之间的元素个数。9、左边的编译器版本:一般只为局部变量分配空间。调用函数前,用若干次pushl指令将参数压栈,返回后用addl $n, %esp一次将所有参数退栈(常数n根据调用前做了多少次pushl来决定)。 右边的编译器版本:除了为局部变量分配空间外,同时还为本函数中出现的函数调用的参数分配空间,并且参数所用空间靠近栈顶。调用函数前,用movl指令将参数移入栈顶,调用结束后无需参数退栈指令。 优点是每次函数调用结束后不需要执行addl


    注意事项

    本文(编译原理期末考试选择题汇总Word格式.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开