全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某语言中定义过程 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 均不引用其他对象。一次回收后,被判定为不可达并回收的对象是 ___。
按以下语法制导定义生成三地址代码:E→E₁+T:E.place 为新临时变量,输出 E₁.place、T.place 与 E.place 的加法指令;E→T:E.place=T.place;T→T₁*F:T.place 为新临时变量,输出 T₁.place、F.place 与 T.place 的乘法指令;T→F:T.place=F.place;F→(E):F.place=E.place;F→id:F.place 为该标识符。临时变量按生成顺序命名为 t₁、t₂……。翻译 a+(b*c) 时,最后一条三地址指令的完整文本是____。
某语言中,a 的类型为 int,b 的类型为 bool,c 的类型为 real。类型检查规则:int 可隐式转换为 real,real 不可隐式转换为 int;逻辑运算符“且”要求两个操作数均为 bool 类型;条件表达式 if(E) x else y 要求 E 为 bool 类型,且 x、y 类型一致。设有声明 int x; real y;,则语句 if(a 且 c) x else y 通过类型检查。
判断题:某编译程序在处理嵌套分程序结构时,将符号表组织为栈式结构,每进入一个内层分程序就建立一张新表并压栈,退出时弹栈。已知在当前分程序中查找标识符时,若本层查不到,则沿栈向更外层的表继续查找。有同学据此认为:既然退出分程序时该层表已弹栈销毁,那么在内层分程序中允许引用外层声明的同名标识符,等价于允许在内层重新声明该标识符并修改其属性,因为查找总会命中内层新声明的那个。该观点是否正确?
给定文法 S → a A b,A → x A y | #。采用语法制导定义:产生式 S → a A b 的语义规则为 S.val = A.val;产生式 A → x A₁ y 的语义规则为 A.val = A₁.val || "xy";产生式 A → # 的语义规则为 A.val = "#",其中 || 表示字符串连接。对输入串 axx#yyb,自底向上归约时,根结点 S.val 为 ____。