全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某程序的寄存器干涉图中有 5 个变量 p、q、r、s、t,相邻(冲突)关系为:p 与 q、p 与 r、q 与 r、r 与 s、s 与 t 相邻,其余变量对均不相邻。图着色寄存器分配采用“简化(simplify)”策略:每轮从图中移除一个度数小于可用寄存器数 k=3 且当前度数最小的节点。按此策略,第一轮应移除的变量是( )。 A. p B. r C. s D. t
登录后查看答案
设子类型关系满足:Cat <: Animal <: Living。函数类型写作 D -> R。在类型检查中,函数子类型规则为:D1 -> R1 是 D2 -> R2 的子类型,当且仅当 D2 <: D1 且 R1 <: R2。现有函数 h 的类型为 Animal -> Cat,变量 k 声明为 Cat -> Animal。判断:根据该规则,h 不能赋值给 k,因为函数返回类型必须按逆变处理。
某语言采用值-结果传递:调用时按形参顺序分别复制实参初值,过程结束时再按形参顺序将形参值写回对应实参。过程 R(a,b) 的执行体依次为 a:=17;b:=29。初始 z=3,调用 R(z,z)。判断:调用结束后 z=29。
某堆容量为 120 个单位,按地址递增依次分配对象 P、Q、R、S、T、U,大小分别为 20、15、25、20、20、20 个单位;根集合仅含 P,引用关系为 P→R、R→T,其他对象无引用。系统执行标记-压缩回收,将存活对象按原地址顺序压至堆低地址端。回收后,堆中最大连续空闲区的大小是多少? A. 35 个单位 B. 45 个单位 C. 55 个单位 D. 75 个单位
某语言中定义过程 Q(m, n):执行体为 n := n + m; m := n × 2。主程序中变量 u=3,v=4,调用 Q(u, v)。若采用传值方式,调用结束后 v 的值为 4;若采用传引用方式,调用结束后 v 的值为 14;若采用传值-结果方式(回写顺序为:先回写 m,后回写 n),调用结束后 v 的值为多少? A. 4 B. 7 C. 14 D. 18
设算符优先文法 G:E→E+T | T,T→T*F | F,F→(E) | i。在算符优先分析中,素短语是指至少含一个终结符、且不再包含更小素短语的短语。现考虑文法 G 的句型 (i+i)*i,该句型的最左素短语是( )。 A. 最左边的 i B. (i+i) C. (i+i)*i D. 最右边的 i
给定文法及综合属性 post:E → E₁ + T,E.post = E₁.post · T.post · +;E → T,E.post = T.post;T → T₁ * F,T.post = T₁.post · F.post · *;T → F,T.post = F.post;F → id,F.post = id.lexeme;F → ( E ),F.post = E.post。其中“·”表示以空格分隔的后缀序列连接,运算符作为末尾独立记号。对输入串 a+(b*c+d)*e,按语法制导翻译得到的 post 为 ____。
某系统对字串“计算生物学”进行分词,在句子“他选修了计算生物学课程”中,利用上下文信息,该字串应切分为____(用“/”分隔各词)。而若某人的名字在词表中查不到,无法正确切分,这属于中文分词的另一类难点,即____问题(填“切分歧义”或“未登录词”之一)。
判断题:设某 DFA 的所有状态都是从初态可达的(即不存在不可达状态),则该 DFA 一定是最小化的 DFA。
判断:某编译器在语法分析阶段完成了语法树的构建,并据此进行了类型检查;随后直接由语法树生成目标代码。因此可以断定:该编译器中类型检查属于语法分析阶段的功能,而目标代码生成之前必须经过独立的中间代码生成阶段,缺一不可。
某词向量模型用稠密向量表示词语,并依据词语在语料中的上下文统计规律进行学习。模型中“栗壳”与“栗色”向量较接近。以下哪项结论最严谨? A. 这证明两个词在所有语境中含义相同 B. 这表明语料中的上下文统计规律使它们的向量较接近,但不保证含义完全相同 C. 这表明模型已为“栗壳”的每种语境分别建立向量 D. 这证明向量距离只由词语字形相似性决定
对某个含有 n(8≤n≤15)个元素的有序顺序表进行折半查找,mid=(low+high)/2 向下取整。已知该查找成功时所需的关键字比较次数最少为 3 次、最多为 4 次,则 n 的最大可能值为( ) A. 12 B. 13 C. 14 D. 15
某程序在寄存器分配阶段可用物理寄存器数为 3。其干涉图中变量 v 的度数为 4,即 v 与另外 4 个变量相邻。有观点认为:既然 v 的度数 4 大于可用寄存器数 3,则 v 必须溢出到内存。判断该观点正误。
在整数运算中,除数为0会使程序陷入异常。循环 `for (i=0; i<n; i++) { y = 10/x; }` 中,假设 `n` 可为0、`x` 在循环内不变且 `x=0`。有人认为 `10/x` 是循环不变表达式,因此可安全地移到循环前计算。判断该说法是否正确。
某三地址代码序列如下(goto 后括号内为语句编号): (1) i=0 (2) t1=4*i (3) t2=a[t1] (4) if t2<10 goto (8) (5) goto (9) (6) i=i+1 (7) goto (2) (8) t3=b+c (9) x=0 按基本块划分规则构造流图(首语句为 (1)),则该流图中基本块的个数与有向边的条数分别为( ) A. 6 个基本块,7 条有向边 B. 6 个基本块,6 条有向边 C. 5 个基本块,6 条有向边 D. 6 个基本块,5 条有向边
某程序的活跃变量冲突关系恰为 a 与 b、b 与 c、c 与 d、d 与 e、e 与 a 冲突,其他变量对均不冲突。分配寄存器时,冲突变量不得使用同一寄存器,且不允许溢出到内存。完成分配至少需要 ____ 个寄存器。
在采用栈式存储管理的语言实现中,过程 Q 的某个局部数组的大小需待运行时才能确定。关于 Q 被激活时其活动记录的分配方式,下列说法正确的是: A. 编译时无法确定活动记录总大小,故 Q 不能采用栈式分配,只能改用堆分配 B. 可变大小的数组安排在活动记录中固定长度部分的顶端之上,其首地址由运行时算出后存入活动记录,编译时为各变量分配的相对地址对固定部分仍然有效 C. 可变数组必须连同整个活动记录一起在编译时按最大可能尺寸预留空间,否则栈会溢出 D. 可变数组应存放在 Q 活动记录的控制链与返回地址之间,以保证调用者能直接访问
过程 P(a,b) 的执行体依次为 a:=7;b:=9。调用 P(x,x) 时,初始 x=5。分别采用传值、传引用、传值-结果方式;传值-结果的回写顺序规定为先 a 后 b。调用结束后,按上述方式顺序,x 的值依次为____。
某程序采用栈式分配,每次过程调用都压入一个独立活动记录,过程返回时弹出其活动记录。main 的活动记录为 24 字节,过程 F、G、H 的活动记录分别为 16、12、8 字节。执行过程中,main 调用 F,F 调用 G,G 再递归调用 F,新调用的 F 随即调用 H。此时栈中活动记录占用的总空间是多少? A. 60 字节 B. 68 字节 C. 76 字节 D. 84 字节
采用标记-清扫式垃圾回收。堆中有对象 A、B、C;根集合仅包含对 A 的引用,A 引用 B,B 与 C 均不引用其他对象。一次回收后,被判定为不可达并回收的对象是 ___。