全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某开发者编辑得到一个 .c 源文件后依次执行了三个命令:①调用预处理器处理 #include 与宏;②调用编译器把预处理后的代码翻译为汇编并生成目标文件;③出现错误提示“undefined reference to printf”。若修改源码消除该错误后重新处理,最终能被操作系统直接装入并执行的是由哪一阶段产生的文件?A. 预处理阶段产生的 .i 文件 B. 编译阶段产生的 .s 汇编文件 C. 汇编阶段产生的 .o 目标文件 D. 链接阶段产生的可执行文件
登录后查看答案
某 C 源文件先定义了 `void prepare(void) { }`,随后定义 `int main(void) { return 0; }`。关于 `main` 函数的作用与写法,下列说法正确的是哪一项? A. `main` 是程序的入口函数,程序从它开始执行;题中的写法符合常见标准形式 B. `prepare` 写在前面,因此程序从 `prepare` 开始执行 C. `main` 只是普通函数,程序从源文件第一行开始执行 D. 只有写成 `void main()` 才能作为程序入口
某程序循环体为:for (i=0; i<n; i++) { s = s + c*d; u = c*d + i; },其中 c、d 在整个循环执行期间值保持不变,n=200,循环体每次执行时对 c*d 求值两次。若编译器进行代码外提优化,将循环不变运算 c*d 提取到循环入口前一次性计算(循环内改用临时变量引用),则优化后整个循环中对 c*d 的求值次数由原来的多少次减少为多少次? A. 由400次减少为1次 B. 由200次减少为0次 C. 由400次减少为200次 D. 由200次减少为1次
下列关于 C 语言中 main 函数的写法与作用,正确的是( )。 A. main 函数是 C 程序的执行入口,程序从它开始执行,一个常见正确写法是 int main(void) { return 0; } B. main 函数可以省略,程序从源文件的第一行代码开始执行 C. 一个 C 程序中可以定义多个 main 函数,编译器自动选择其中一个执行 D. main 函数名大小写敏感可自由书写,如 Main、MAIN 与 main 等价
某目标机有两个寄存器 R0、R1,支持指令 LD R,m(将内存单元 m 的值装入 R)、ADD R,m(令 R←R+m)、SUB R,m(令 R←R−m)和 ST m,R(将 R 的值写入 m);指令均不改变未指定的寄存器。现需生成三地址语句 t := a − b + c,要求结果存入 t,且不得覆盖 a、b、c。以下哪段代码正确? A. LD R0,a;SUB R0,b;ADD R0,c;ST t,R0 B. LD R0,a;SUB R0,b;LD R1,c;ADD R0,R1;ST t,R0 C. LD R0,b;SUB R0,a;ADD R0,c;ST t,R0 D. LD R0,a;ADD R0,b;SUB R0,c;ST t,R0
对以下三地址码进行局部优化,采用常量折叠与公共子表达式消除。正确的优化结果是( ) t1 = 5 + 3 t2 = a * t1 t3 = a * 8 A. t1 = 5 + 3;t2 = a * 8;t3 = t2 B. t1 = 8;t2 = a * 8;t3 = t2 C. t1 = 8;t2 = a * 8;t3 = a * 8 D. t1 = 8;t2 = a * 5;t3 = t2
某语言采用栈式存储分配。过程 F 被递归调用 3 层(即 F 调用 F,F 再调用 F),每次活动记录大小相同。关于这 3 个活动记录,下列说法正确的是: A. 三次活动的活动记录共用同一块存储空间,后一次覆盖前一次 B. 三个活动记录依次压入运行栈,最新一层 F 的活动记录位于栈顶 C. 三个活动记录在栈中按调用顺序从栈顶向栈底排列 D. 最先调用的 F 的活动记录位于栈顶,最后调用的位于栈底
某编译器采用栈式分层符号表:每进入一个新作用域建新表压栈,退出时弹栈;查标识符时从栈顶向下逐层查找,取最先命中者。当前符号表栈从底到顶依次为:全局层(含 a、b)、函数 f 层(含 b、c)、块 B 层(含 c、d)。此时在块 B 中引用标识符 b,其查到的声明所属作用域及若随后退出块 B 后再引用 b,查到的声明所属作用域分别是:A. 块 B 层;函数 f 层 B. 函数 f 层;全局层 C. 函数 f 层;函数 f 层 D. 全局层;函数 f 层
设语法制导翻译方案中,产生式 E → ( E₁ ) 的语义动作为 E.place := E₁.place,E → id 的语义动作为 E.place := id.place。若产生式 S → id := E 对应输出三地址代码 S.place := E.place,则翻译输入串 x := ( y ) 时输出的三地址代码是( ) A. x := y B. x := ( y ) C. t1 := x D. x := x
执行下列程序段后,d 的值是( )。 int a=1, b=2, c=3, d; d = a << b + c & 7 ? b++ : ++c; A. 0 B. 2 C. 3 D. 4
下列关于一维数组定义与初始化的语句中,完全合法且正确的是( ) A. int n=5; int a[n]={1,2,3,4,5};(此处 n 为整型变量,数组长度用变量指定) B. int a[5]={1,2,3}; 则数组元素 a[4] 的值为 0 C. int a[5]; a={1,2,3,4,5}; D. int a[]={1,2,3,4,5}; 则该数组的长度为 6
有如下C语言程序段: int i, j, s = 0; for (i = 1; i <= 4; i++) { for (j = 1; j <= i; j++) { if (i * j % 2 == 0) continue; s += i * j; } } 执行完该程序段后,变量 s 的值是( ) A. 13 B. 25 C. 36 D. 65
有以下程序段: int i, s = 0; for (i = 1; i < 10; i *= 2) { if (i == 2) continue; s += i; } 执行该程序段后,变量 s 的值是多少? A. 13 B. 15 C. 11 D. 8
考察下列三地址代码(行号为语句编号,goto 后括号内为语句编号): (1) x=0 (2) y=1 (3) if x>n goto (10) (4) t=x+y (5) y=x (6) x=t (7) if y<n goto (3) (8) z=x+y (9) goto (12) (10) z=x-y (11) x=z (12) return x 该程序段可划分为的基本块个数,以及其流图中所有有向边的条数分别是: A. 5,6 B. 6,7 C. 6,8 D. 7,7
某学生在 Visual Studio 2019 中新建了一个「空项目」并添加了源文件 main.c,编写完代码后直接按 Ctrl+F5 运行,程序能正常输出结果。下列关于此过程中各步骤的说法正确的是: A. 按 Ctrl+F5 只会编译源文件,不会生成可执行文件 B. 编辑、编译、链接、运行四个步骤中,链接的任务是将多个目标文件与库函数组合生成可执行文件 C. 编译阶段直接生成 .exe 文件,链接阶段只负责检查语法错误 D. 源文件 main.c 经编译后直接得到可执行文件,无需链接阶段
某程序的寄存器干涉图中有 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
某堆容量为 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
某词向量模型用稠密向量表示词语,并依据词语在语料中的上下文统计规律进行学习。模型中“栗壳”与“栗色”向量较接近。以下哪项结论最严谨? A. 这证明两个词在所有语境中含义相同 B. 这表明语料中的上下文统计规律使它们的向量较接近,但不保证含义完全相同 C. 这表明模型已为“栗壳”的每种语境分别建立向量 D. 这证明向量距离只由词语字形相似性决定