(一) 单选题1. 为了管理过程在一次执行中所需要的信息,使用一个连续的存储区来管理,这个区(块) 叫做一个()。
(A)结构体记录(B) 数组记录(C) 管理信息记录(D) 活动记录参考答案:(D)2. 考虑下面的程序:… procedure p(x, y, z); begin x:=x+y; z:=z*z; end beginA:=2; B:=A*2; P(A, B, B); Print A, B end. 若参数传递的方式采用传地址时,程序执行后输出 A, B的值是()。
(A)A=4,B=14(B) A=4,B=16(C) A=6,B=14(D) A=6,B=16参考答案:(D)3. 在运行存储空间的划分中有一个单独的区域叫做堆,留给存放()。
(A)局部数据(B) 静态数据(C) 全局数据(D) 动态数据参考答案:(D)4. 所谓得结果就是每个形式参数对应两个单元,第一个单元存放实参的地址,第二个单元存放实参的值。
在过程体中对形参的任何引用或赋值都被处理成对第二个形式单元的(),但在过程工作完成返回之前必须把第二个单元的内容存放到第一个单元所指的那个实参单元之中。
(A)间接访问(B) 指针访问(C) 直接访问(D) 间接的间接访问参考答案:(C)5. 一个过程相应的DISPLAY表的内容为()。
(A)现行活动记录地址(B) 现行活动记录地址和所有外层最新活动记录的地址传递规则(C) 所有外层最新活动记录的地址(D) 以上都不对参考答案:(B)6. 以下程序 (1) J:=1 (2) A:=0 (3) R:=I-1 (4) C:=B+J (5) A:=C*A (6) if J=20 goto(9) (7) J:=J+1 (8) goto (3) (9) 可划出()个基本块。
(A)4(B) 3(C) 2(D) 5参考答案:(A)7. 通过DISPLAY表访问非局部变量和比沿着静态链访问非局部变量()。
(A)速度要慢(B) 容易(C) 速度要快(D) 不容易参考答案:(C)8. 对于数据空间的存贮分配,FORTRAN采用()策略。
(A)动态存贮分配(B) 栈式存贮分配(C) 堆式存贮分配(D) 静态存贮分配参考答案:(D)9. 每条指令的执行代价定义为()。
(A)指令访问主存次数(B) 指令访问主存次数加1(C) 指令访问主存次数加2(D) 指令访问主存次数加3参考答案:(B)10. 如果在一个基本块中,四元式i对A定值,四元式j要引用A值,而从i到j之间没有A的其它定值,则称j是四元式i的变量A的()。
(A)待用信息(B) 已用信息(C) 使用信息(D) 必用信息参考答案:(A)11. 在基本块范围的优化称为()。
(A)循环优化(B) 全局优化(C) 局部优化(D) 基本块优化参考答案:(C)12. 变量和形参运行时在栈上的绝对地址是()。
(A)栈顶地址+相对地址(B) 栈顶地址+相对地址(C) 活动记录基地址+相对地址(D) 栈底地址+相对地址参考答案:(C)13. 常用的两种动态存贮分配办法是()。
(A)栈式和堆式动态分配(B) 栈式和队列式动态分配(C) 链式和堆式动态分配(D) 队列式和堆式动态分配参考答案:(A)14. 所谓传名就是在进入调用段之前不对实在参数预先进行计值,而是过程中每当使用到相应的形参时才对它实行计值。
因此,在实现时通常都把实参处理成()。
(A)子程序(B) 变量(C) 指针(D) 常量参考答案:(A)15. 考虑下面的程序:… procedure p(x, y, z); begin y:=y+z; z:=y*z+x end; begina:=2; b:=3; p(a+b, b, a); print a end. 若参数传递的方式采用传名时,程序执行后输出 a的值是。
(A)16(B) 17(C) 18(D) 19参考答案:(B)16. 记录过程的各外层过程的最新活动记录的起始地址的表称为()。
(A)静态表(B) 起始地址表(C) 活动记录表(D) DISPLAY表参考答案:(D)17. 每个过程的活动记录的体积在编译时()。
(A)静态确定(B) 动态确定(C) 不能确定(D) 不能计算参考答案:(A)18. 根据优化所涉及的程序范围,可将优化分成为()级别。
(A)4(B) 3(C) 2(D) 5参考答案:(B)19. 对程序进行各种等价变换,使得从变换后的程序出发,生成更有效的目标代码称为()。
(A)变换(B) 优化(C) 编译(D) 解释参考答案:(B)20. 使用指针指向直接外层的最新活动记录的地址,从而形成一条链,称为()。
(A)动态链(B) 已用信息(C) 静态链(D) 必用信息参考答案:(C)(二) 多选题1. 活动记录一般包含内容有()。
(A)临时单元、内情向量、局部变量、形式单元(B) 动态链(C) 静态链(D) 返回地址参考答案:(ABCD)2. 求基本块入口语句是()。
(A)循环的第一个语句(B) 程序的第一个语句(C) 条件转移或无条件转移转移到的语句(D) 紧跟在条件转移语句后面的语句参考答案:(BCD)3. 常用的两种动态存贮分配办法有()。
(A)链式动态分配(B) 堆式动态分配(C) 队列式动态分配(D) 栈式动态分配参考答案:(BD)4. 一个过程相应的DISPLAY表的内容有()。
(A)所有活动记录地址(B) 所有外层活动记录的地址(C) 现行活动记录地址(D) 所有外层最新活动记录的地址参考答案:(CD)5. 对于静态链,C和PASCAL语言()。
(A)需要(B) 不需要(C) 可以不使用,但要用其他方法打通代替(D) 无关参考答案:(AC)6. 根据优化所涉及的程序范围,可将优化分成为()。
(A)基本块优化(B) 局部优化(C) 循环优化(D) 全局优化参考答案:(BCD)7. FORTRAN语言使用静态分配策略。
FORTRAN语言()。
(A)不允许过程递归(B) 每个数据名所需存储空间都是常量(C) 允许过程递归(D) 所有数据名的性质是完全确定的参考答案:(ABD)8. 对代码进行等价变换必须遵循一定的原则是()。
(A)等价原则(B) 一致原则(C) 有效原则(D) 合算原则参考答案:(ACD)9. 编译程序为了组织存储空间,必须考虑的问题有()。
(A)过程是否允许递归(B) 过程是否允许引用非局部名称(C) 过程调用时如何传递参数(D) 存储空间可否动态分配参考答案:(ABCD)10. 代码生成要考虑的主要问题有()。
(A)减少目标中代码访问访问主存单元的次数(B) 发现语法错误(C) 使生成的目标代码较短(D) 检查程序一致性参考答案:(AC)11. 优化技术有()。
(A)删除公共子表达式、无用代码、归纳变量(B) 复写传播(C) 强度削弱(D) 代码外提参考答案:(ABCD)12. 在允许过程嵌套程序语言,一个过程可以引用包围它的任一外层过程所定义的标识符,对非局部量的引用(存取)方法有()。
(A)静态链(B) 动态链(C) DISPLAY表(D) 指针链参考答案:(AC)13. 采用简单的栈式存储分配的语言()。
(A)过程定义不允许嵌套(B) 允许过程的递归调用(C) 过程定义允许嵌套(D) 不允许过程的递归调用参考答案:(AB)14. 常用的参数传递方式有()。
(A)传地址(B) 传值(C) 传名(D) 传过程参考答案:(ABC)15. 目标代码一般有以下()形式。
(A)能够立即执行的机器语言代码(B) C语言代码(C) 待装配的机器语言模块(D) 汇编语言代码参考答案:(ACD)16. 假设过程R的外层为Q,Q的外层为P,则过程R运行时DISPLAY表的内容有()。
(A)R的现行活动记录地址(B) Q的最新活动记录的地址(C) P的最新活动记录的地址(D) 程序的活动记录地址参考答案:(ABC)17. 形成DISPLAY 的方法是()。
(A)程序的基地址(B)当过程层次为n,DISPLAY表为n+1个值(C) 一个过程被调用时,从调用过程的DISPLAY表中自下向上抄录n个SP值,再加上层的SP值。
(D)全局DISPLAY地址参考答案:(BCD)18. 代码化化()。
(A)只能在中间代码进行(B) 可以在中间代码进行(C) 只能在目标代码上进行(D) 可以在目标代码上进行参考答案:(BD)19. 在一个基本块内,可以进行删除公共子表达式和删除无用赋值两种优化,还可以实现下面的变换技术有()。
(A)合并已知量(B) 临时变量改名(C) 交换语句的位置(D) 代数变换参考答案:(ABCD)20. 对于下面程序 program main(input, output); procedure p(x, y, z); beginy:=y+1; z:=z+x; end begin a:=2; b:=3; p(a+b, a, a); print a end 参数传递采用方式,程序执行后输出 a的正确值是()。
(A)传值:2(B) 传地址:6(C) 得结果:7(D) 传名:9参考答案:(ACD)(三) 判断题1. 使用静态链访问非局部变量比DISPLAY表速度快。
( )(A)对(B) 错参考答案:(B)2. 每个过程的活动记录的体积在编译时可静态确定。
()(A)对(B) 错参考答案:(A)3. 静态链指向静态直接外层最新活动记录的地址的指针,用来访问局部数据。
( )(A)对(B) 错参考答案:(B)4. 一个过程的活动指的是该过程的一次执行。
( )(A)对(B) 错参考答案:(A)5. 为了生成更有效的目标代码,要考虑基本块中中间代码序列。
( )(A)对(B) 错参考答案:(A)6. 每条指令的执行代价=每条指令访问主存单元次数。
( )(A)对(B) 错参考答案:(B)7. 每个基本块只有一个入口和一个出口。
( )(A)对(B) 错参考答案:(A)8. 动态链是指向调用该过程前的最新活动记录的地址的指针。
( )(A)对(B) 错参考答案:(A)9. 目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。
( )(A)对(B) 错参考答案:(A)10. DISPLAY表不是跟踪每个外层过程的最新活动记录的位置的方法。
( )(A)对(B) 错参考答案:(B)11. FORTRAN语言采用栈式动态分配策略。
( )(A)对(B) 错参考答案:(B)12. 用运算时间短的运算符替换运算时间长的运算符,这种变换称为强度削弱。
( )(A)对(B) 错参考答案:(A)13. 每个基本块可用一个DAG表示。
()(A)对(B) 错参考答案:(A)14. 代码化化可以在中间代码和目标代码上进行优化。