全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
关于 C 语言共用体类型的特点,下列说法正确的是: A. 各成员依次占用不同的存储空间 B. 各成员共享同一段存储空间 C. 共用体中只能定义一个成员 D. 共用体成员不能具有相同类型
登录后查看答案
有如下 C 语言函数: void relay(int *p, int *q) { *p = *p - 2; *q = *p + *q; } 执行 int x = 9; relay(&x, &x); 后,x 的值是多少? A. 7 B. 9 C. 14 D. 16
设有定义 int a[7] = {3, 6, 9, 12, 15, 18, 21}; 且已执行 int *p = a + 6;。若此后依次执行两次 *p-- 取值操作(即先读取 *p 的值再使 p 减 1,共两次),则第二次读取到的值是( ) A. 18 B. 15 C. 12 D. 21
设 int a = 10; int *p = &a; 下列说法正确的是( ) A. p 中存放的是变量 a 的地址,p 是指向变量 a 的指针变量 B. p 中存放的是变量 a 的值 10 C. p 与 a 是同一个变量 D. *p 中存放的是变量 a 的地址
下列关于递归函数基本概念的说法中,正确的是: A. 递归函数是指在函数体内直接或间接调用自身的函数,必须有使递归终止的条件 B. 只要函数体内出现调用自身的语句,程序就一定能正常终止 C. 递归调用是指一个函数调用另一个函数,与调用自身无关 D. 递归函数不允许有参数,否则无法实现递归
需要定义一个一维 int 数组,数组长度由初始化列表确定,且初始化后元素依次为 8、0、0、5、0。下列哪条语句符合要求? A. int a[] = {8, 0, 0, 5, 0}; B. int a[5] = {8, 0, 0, 5, 0}; C. int a[] = {8, 0, 5, 0}; D. int a[] = {8, 0, 0, 5, 0, 0};
阅读代码: int status(void) { return 12; } 执行 int code = status(); 后,变量 code 的值是多少? A. 0 B. 12 C. status D. 未定义
令 φ=(p→q)∧(q→r),ψ=p→r。以下哪项正确? A. φ逻辑蕴含ψ,且φ→ψ为重言式 B. ψ逻辑蕴含φ,且ψ→φ为重言式 C. φ与ψ逻辑等价 D. φ不逻辑蕴含ψ,且存在赋值使φ真而ψ假
用真值表判断,下列哪一命题与 ¬(p∧q) 等价? A. ¬p∨¬q B. ¬p∧¬q C. p∨q D. p∧¬q
在 GCC 的常见选项中,若要让编译器仅完成预处理,并将宏展开、文件包含处理后的文本输出到标准输出,应使用哪个选项? A. -E B. -S C. -c D. -o
已知文件指针 fp 由 fopen("data.txt", "w") 成功打开,整型变量 n 的值为 12。若要将 n 按十进制整数格式写入文件,以下哪条语句正确? A. fprintf(fp, "%d", n); B. fscanf(fp, "%d", n); C. fprintf("%d", fp, n); D. fscanf(fp, "%d", &n);
若要直接定义一个标签名为 Item、含有 int 类型成员 id 和 char 类型成员 mark 的结构体类型,且不同时定义结构体变量,应选择哪项? A. struct Item { int id; char mark; }; B. struct Item ( int id; char mark; ); C. struct Item { int id, char mark; }; D. struct Item { int id; char mark; } item;
设 int b[8] = {5, 12, 9, 30, 47, 23, 16, 8}; 已执行 int *q = b + 5; 之后,下列表达式中与 b[1] 取值相同的是( ) A. *(q - 4) B. *(q - 3) C. *q - 4 D. *(q + 4)
在 C 语言中,已有定义:int m = 7; 下列语句中,能正确将指针变量 p 定义为指向整型变量 m 并完成初始化赋值的是( ) A. int *p = m; B. int *p = &m; C. int p = *m; D. int *p = *m;
关于 C 语言 do-while 循环,下列说法正确的是( ) A. do-while 循环体至少执行一次 B. do-while 循环体一定执行零次 C. do-while 循环先判断条件再执行循环体 D. do-while 循环不能用 break 语句
已声明并赋值 `int n = 7; double v = 8.5;`。若要使 `printf` 输出恰为 `7 /0008.50/%`(`7` 后有4个空格),应选哪条语句? A. `printf("%-5d/%07.2f/%%", n, v);` B. `printf("%5d/%07.2f/%%", n, v);` C. `printf("%-5d/%06.2f/%%", n, v);` D. `printf("%-5d/%07.1f/%%", n, v);`
以下代码用于判断整数 x 的符号,若 x 为正数输出 P,否则输出 N。横线处应填入哪条语句? ```c if (x ___ 0) printf("P"); else printf("N"); ``` A. `>` B. `<` C. `==` D. `!=`
某符合 C11 的实现中,CHAR_BIT 的值为 12。仅依据标准规定,unsigned char 的完整取值范围是哪一项? A. 0 至 4095 B. 0 至 4096 C. −2047 至 2047 D. 0 至 65535
在符合 C11 标准的实现中,以下哪项是 unsigned char 必定能够表示的取值? A. −1 B. 0 C. −128 D. 1/2
一个 C 源文件要变成可执行程序需经历若干阶段。设某源文件中包含预处理指令 #define N 5 以及对库函数的调用。下列说法正确的是: A. 预处理阶段只把 #define 行删除,库函数调用在编译阶段才开始被解析 B. 编译阶段把源文件直接翻译为可执行文件,链接阶段再为其补充库函数代码 C. 预处理阶段处理 #define 并将结果交给编译阶段翻译为目标文件,链接阶段把该目标文件与库函数目标代码组合为可执行文件 D. 链接阶段先处理 #define,之后编译阶段才调用库函数,最后汇编阶段生成可执行文件