全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
已包含头文件 <string.h>。定义 char s[] = "rhythm!"; 执行 size_t n = strcspn(s, "aeiou"); 后,n 的值为 ____。
登录后查看答案
判断:定义函数 void set(int a[4]),并以 int v[4] 调用时,形参 a 按 int * 处理;调用会把数组 v 的全部元素复制到独立的形参数组中,因此函数内修改 a[0] 不会改变 v[0]。
设有语法制导翻译方案:E→E₁−E₂ 时生成新临时变量 t 并输出 t:=E₁.place−E₂.place,令 E.place=t;E→T 时令 E.place=T.place;T→T₁/F 时生成新临时变量 t 并输出 t:=T₁.place/F.place,令 T.place=t;T→F 时令 T.place=F.place;F→(E) 时令 F.place=E.place;F→id 时令 F.place=id。按该方案对表达式 x−y/(u+v) 自左向右进行语法制导翻译,生成的三地址代码中最后一条四元式是( ) A. t3:=x−t2 B. t3:=x−y C. t1:=u+v D. t2:=y/t1
有以下程序: #include <stdio.h> void mod(int a, int *b) { a = a * 2; *b = a + 10; b = &a; *b = 7; } int main() { int x = 3, y = 4; mod(x, &y); printf("%d,%d", x, y); return 0; } 程序运行后的输出结果是( ) A. 3,7 B. 3,16 C. 6,7 D. 6,16
判断:已声明 int a[3][4] = {{5, 1, 9, 2}, {6, 0, 8, 3}, {7, 4, 10, 11}};,若使用嵌套循环 for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) printf("%d ", a[i][j]); } 遍历该数组,可以完整且不越界地输出全部 12 个元素。
设命题 p、q、r、s 满足前提:(1) p∨q;(2) p→r;(3) r→s;(4) ¬s。仅使用命题逻辑推理规则,最终可确定 q 的真值为____。
在 GCC 中,命令 `gcc -Wall -E demo.c -o demo.i` 会只执行预处理并将结果写入 `demo.i`;其中 `-Wall` 会开启编译器的全部警告,因此无须再加 `-Wextra`。判断该表述是否正确。
#include <stdio.h> void f(int x, int *y) { x = *y + 1; *y = x + 1; } int main() { int a = 2, b = 5; f(b, &a); printf("%d %d", a, b); return 0; } 程序输出是: A. 4 5 B. 5 4 C. 3 6 D. 4 6
使用 GCC 编译时,希望启用一组常见警告,但不要求启用通常由 -Wextra 补充的警告。应在命令中加入选项 ____。
某源文件包含以下条件编译代码,且 TRACE、RELEASE 均已定义: #if defined(TRACE) int mode = 1; #elif defined(RELEASE) int mode = 2; #else int mode = 3; #endif 预处理后,哪项声明会被保留? A. 仅 int mode = 1; B. 仅 int mode = 2; C. 仅 int mode = 3; D. int mode = 1; 和 int mode = 2; 均保留
阅读代码:#define LIMIT 8 #define COPY LIMIT int value = COPY; 预处理后,变量定义中的初始化表达式为 ____。
在 C 语言中,文件指针变量本身存储的是地址值。设程序中有如下声明与语句: FILE *fp, *gq; fp = fopen("data.txt", "r"); gq = fp; 若 fopen 调用成功,且执行 gq = fp; 后不再对 fp、gq 重新赋值,则表达式 (fp == gq) 的值为 ____(填 0 或 1)。
关于 C 语言条件编译的格式与作用,以下说法正确的是哪一项? A. 用 #if、#else、#endif 等指令按条件决定哪些源代码参与编译 B. 用 #if、#else、#endif 等指令在程序运行时决定执行哪条语句 C. 用 #if、#else、#endif 等指令定义函数的参数类型 D. 用 #if、#else、#endif 等指令自动创建被包含的头文件
某二进制文件已成功以 "rb" 模式打开,且文件长度足够,初始文件位置不作限定。程序依次成功执行 fseek(fp, 7L, SEEK_SET) 和 fseek(fp, -3L, SEEK_CUR),随后调用 long p = ftell(fp);。变量 p 的值为____。
判断:在 C 语言中,fp 是指向 FILE 类型的指针,执行 fp = fopen("data.txt", "r"); 后,fp 的值就是文件 data.txt 中当前读写位置上的那个字符,若打开失败则 fp 等于 EOF。
在 C 语言程序中,已定义 struct Student stu; 并用 FILE *fp = fopen("data.txt", "rb"); 打开文件。若要通过 fp 完成读写操作,下列关于文件指针的说法正确的是:A. fp 是指向 struct Student 类型的指针,存放一条学生记录的地址 B. fp 是指向 FILE 类型的指针,指向系统为该文件维护的文件信息区,读写函数须通过它引用文件 C. fp 本身就是文件在磁盘上的存储地址,读写时直接按该地址访问磁盘 D. 一个文件指针 fp 在关闭前可以重新指向另一个已打开文件,但不能再次赋值改变指向
判断题:在 C 语言中,使用 fopen 函数以 "r" 方式打开一个不存在的文件时,fopen 会自动创建该文件并返回其指针。
判断:语句 struct Student { char name[20]; int age; struct Student next; }; 能正确定义一个可用的结构体类型。
某班 6 名学生的信息用结构体数组 s 存储,每个元素含成员 name、score、age。已知各元素的 score 依次为 78、92、85、92、67、92,age 依次为 20、19、21、19、22、19。执行以下代码后,变量 cnt 的值为 ____。 int cnt = 0; for (int i = 0; i < 6; i++) { int j = 0; for (int k = 0; k < i; k++) if (s[k].score == s[i].score && s[k].age == s[i].age) { j = 1; break; } if (!j && s[i].score > 80) cnt++; }
设有如下定义:union Data { int i; char c[4]; float f; }; union Data d; 在 32 位系统中,下列关于该共用体的叙述正确的是 A. 变量 d 的所有成员共用同一段起始地址相同的存储空间,d 占用的存储单元数是其最大成员 float 所需的 4 字节 B. 变量 d 占用成员所需空间之和,即 int、char[4]、float 共 12 字节 C. 变量 d 的三个成员各自占用独立的存储空间,修改 d.i 不影响 d.c D. 变量 d 的存储空间由编译器动态分配,每次只能同时保存所有成员的值