全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
阅读如下C语言程序段,写出运行后屏幕上输出的结果(填空): int x=5, y=8; if (x > 3) if (y > 9) printf("A"); else printf("B"); else printf("C"); 程序输出的结果为____。
登录后查看答案
在某嵌入式项目的 C 源码中,有以下变量定义与初始化片段(假设位于函数体内):int m = 5, n = m + 2; double x = n / 2; char c = 'A' + 2; 下列关于该片段的判断,正确的是:A. n 的初值为 7,x 的初值为 3.5,c 的初值为 'C' B. n 的初值为 7,x 的初值为 3.0,c 的初值为 'C' C. n 的初值为 7,x 的初值为 3.0,c 的初值为 'A' D. 该片段不合法,因为定义 n 时不能用含变量 m 的表达式初始化
判断:在 C 语言中,设有 int a = 9, b = 4; double y = 3.5;,则表达式 y + (int)(y * b) / a 的求值过程中,y * b 按 double 运算得 14.0,经 (int) 强制转换后为 14,再与 a 做整数除法得 1,最终表达式的值为 4.5。
在符合标准的 C 语言中,设 int a = 13; float f = 2.75f; 表达式 (int)(a / 5 + f) + (double)(a % 5) / 2 的值是多少? A. 5.0 B. 5.5 C. 6.0 D. 6.5
在 C 语言中(操作数为 int 类型),表达式 20 - 7 % 3 * 4 按运算符优先级与结合性求值,结果是 ___。
符合 C11 标准的任意实现中,short int 至少保证能够表示下列哪个范围? A. −32767 至 32767 B. −32768 至 32767 C. 0 至 65535 D. −2147483647 至 2147483647
某开发者编辑得到一个 .c 源文件后依次执行了三个命令:①调用预处理器处理 #include 与宏;②调用编译器把预处理后的代码翻译为汇编并生成目标文件;③出现错误提示“undefined reference to printf”。若修改源码消除该错误后重新处理,最终能被操作系统直接装入并执行的是由哪一阶段产生的文件?A. 预处理阶段产生的 .i 文件 B. 编译阶段产生的 .s 汇编文件 C. 汇编阶段产生的 .o 目标文件 D. 链接阶段产生的可执行文件
在 C 语言中,设表达式 `100 / 5 * 2 - 3 << 1` 按运算符优先级与结合性求值,其结果为____。
设有定义 int a=3, b=5, c=2; 则表达式 a > b != c || a + b < c && !a 的值是____。
某集成开发环境中,当前项目已配置完成,源文件 main.c 的编辑缓冲区有未保存修改;该环境的“编译”命令只处理已保存的文件,“运行”命令启动最近一次成功编译生成的程序。若要运行修改后的代码,且编译不会报错,应依次执行:____。
某 C 源文件先定义了 `void prepare(void) { }`,随后定义 `int main(void) { return 0; }`。关于 `main` 函数的作用与写法,下列说法正确的是哪一项? A. `main` 是程序的入口函数,程序从它开始执行;题中的写法符合常见标准形式 B. `prepare` 写在前面,因此程序从 `prepare` 开始执行 C. `main` 只是普通函数,程序从源文件第一行开始执行 D. 只有写成 `void main()` 才能作为程序入口
判断:在 C 语言中,语句 int a = b = 3; 是合法的变量定义与初始化方式,可以在定义变量 a 的同时通过连续赋值给未定义的变量 b 赋初值。
某程序循环体为: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 等价
判断:在某集成开发环境中(如 Dev-C++ 或 Visual Studio),若源程序编译通过并成功生成可执行文件,之后对源代码进行了修改但尚未重新编译,此时直接运行的可执行文件仍然是修改前源代码对应的版本。
某目标机有两个寄存器 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
判断:在 C 语言程序的基本结构中,main 函数的定义由函数头和函数体构成;若程序只有 main 函数声明而没有函数体,仍具有可执行程序所需的完整基本结构。
判断:在 Dev-C++ 集成开发环境中,使用「编译」功能后,若源程序存在语法错误,则无法生成可执行文件,且系统会在输出窗口中提示出错的行号及错误信息。
某目标机提供 LD R,m(将内存单元 m 的值装入寄存器 R)、SUB R,S(令 R←R−S)、ADD R,S(令 R←R+S)、MUL R,S(令 R←R×S)和 ST m,R(将寄存器 R 的值写入内存单元 m),运算均覆盖目的寄存器。对三地址语句 x := (a−b)×(c+d),生成代码 LD R1,a;SUB R1,b;LD R2,c;ADD R2,d;MUL R2,R1;ST x,R1 是正确的。判断该表述。