如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
编译原理基础题一、选择题1、在使用高级语言编程时,首先可通过编译程序发现源程序的全部()错误和部分语义错误。A、语法B、语义C、语用D、运行2、编译过程中,语法分析器的任务是()。(1)分析单词是怎样构成的;(2)分析单词串是如何构成语句和说明的;(3)分析语句和说明是如何构成程序的;(4)分析程序的结构A、(2)(3)B、(2)(3)(4)C、(1)(2)(3)D、(1)(2)(3)(4)3.生成能被5整除的正整数的文法G[Z]是_____。A.G[Z]:Z→AC,A→BA|B,B→0|1|2|…|9,C→0|5B.G[Z]:Z→AC,A→BA|ε,B→0|1|2|…|9,C→0|5C.G[Z]:Z→DA0|A5,A→BA|ε,B→0|D,D→1|2|…|9D.G[Z]:Z→AC|C,A→BA|B,B→0|1|2|…|9,C→0|54、编译程序中的语法分析器接受以()为单位的输入,并产生有关信息供以后各阶段使用。A、表达式B、产生式C、单词D、语句5、算符优先分析法每次都是对()进行归约。A、直接短语B、句柄C、素短语D、最左素短语6、过程调用时,参数的传递方法通常有()。(1)传值;(2)传地址;(3)传结果;(4)传名A、(1)(2)B、(1)(2)(3)C、(1)(2)(4)D、(1)(2)(3)(4)7、在编译方法中,动态存储分配的含义是()。A、在运行阶段对源程序中的量进行分配B、在编译阶段对源程序中的量进行分配C、在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要改变D、以上都不对8、a:=a+b*c↑(d/e)/f的逆波兰记号表示是()。A、aabc*+↑de/f/:=B、aabcde↑/*f/:=C、aabcde/↑*f/+:=D、以上都不对。9.算符文法是指的文法。①没有形如U→...VW...的规则(U,V,WVN)②VT中任意两个符号之间至多存在一种算符优先关系③没有相同右部的规则④没有形如U→ε的规则A.①B.①和②C.①、②和③D.①、②、③和④10、编译程序绝大多数时间花在上。a.出错处理b.词法分析c.目标代码生成d.管理表格11.下述语句类中,___________在编译阶段通常不产生可执行代码。A.变量说明语句B.流程控制语句C.输入输出语句D.赋值语句12、词法分析器的输入是。a.单词符号串b.源程序c.语法单位d.目标程序13.在编译程序采用的优化方法中,是在循环语句范围内进行的。①合并已知常量②删除多余运算③删除归纳变量④运算强度削弱⑤代码外提A.①④B.①⑤C.①④⑤D.③④⑤14.程序的基本块是指______。A.不含无条件转移语句的程序段B.不含条件转移语句的程序段C.不含停机的语句程序段D.仅含有一个入口语句和一个出口语句的顺序程序段15、文法G描述的语言L(G)是指。a.L(G)={α|Seq\o(\s\up3(+),\s\do1(⇒))α,α∈VT*}b.L(G)={α|Seq\o(\s\up3(*),\s\do1(⇒))α,α∈VT*}c.L(G)={α|Seq\o(\s\up3(*),\s\do1(⇒))α,α∈(VT∪VN*)}d.L(G)={α|Seq\o(\s\up3(+),\s\do1(⇒))α,α∈(VT∪VN*)}16、如果文法G是无二义的,则它的任何句子α。a.最左推导和最右推导对应的语法树必定相同b.最左推导和最右推导对应的语法树可能不同c.最左推导和最右推导必定相同d.可能存在两个不同的最左推导,但它们对应的语法树相同17、文法G:E→E+T|TT→T*P|PP→(E)|I则句型P+T+i的句柄和最左素短语为。a.P+T和ib.P和P+Tc.i和P+T+id.P和T18、产生正规语言的文法为。a.0型b.1型c.2型d.3型19、有文法G:E→E*T|TT→T+i|i句子1+2*8+6按该文法G归约,其值为。a.23B.42c.30d.1720、若a为终结符,则A→α·aβ为项目a.归约b.移进c.接受d.待约21、就文法的描述能力来说,有。a.SLR(1)⊂LR(0)b.LR(1)⊂LR(0)c.SLR(1)⊂LR(1)d.无二义文法⊂LR(1)22、一个指明了在分析过程中的某时刻所能看到产生式多大一部分。a.活前缀b.前缀c.项目d.项目集23、四元式之间的联系是通过实现的。a.指示器b.临时变量c.符号表