全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
判断:条件编译可按如下格式组织:#if 条件……#elif 条件……#else……#endif;其中条件在程序运行时求值,运行时仅执行满足条件的代码分支。
登录后查看答案
判断:某工程中 file1.c 和 file2.c 都通过 #include "common.h" 引入同一头文件,并分别编译、链接成同一个可执行程序。有同学认为,由于同一份头文件内容被两个源文件各引入一次,预处理后头文件中的声明会被重复展开,因此这种做法必然导致链接时出现重定义错误。
某程序中先定义 `#define TAG(x) <x>`,随后又定义 `#define WRAP(y) TAG(y)`。忽略宏替换后尖括号的语法含义,仅考察预处理替换:`WRAP(node)` 展开后得到什么? A. <node> B. TAG(node) C. <y> D. WRAP(node)
使用 GCC 编译时,命令 `gcc -Iinclude main.c` 中的 `-Iinclude` 用于将 `include` 目录加入头文件搜索路径。判断该表述是否正确。
使用 GCC 编译 C 程序时,选项 -g 的常见作用是什么? A. 生成便于调试的调试信息 B. 指定生成文件的名称 C. 搜索头文件的目录 D. 定义预处理宏
设有定义:struct Node { int data; struct Node *next; }; struct Node a = {1, NULL}, b = {2, NULL}, *p = &a; 若执行语句 p->next = &b; p = p->next; 后,表达式 p->data 的值是( ) A. 1 B. 2 C. NULL D. 表达式不合法
已声明 FILE *fp。要以追加方式打开文本文件 “log.txt”,确认打开成功后关闭文件,以下哪段代码正确? A. fp = fopen("log.txt", "a"); if (fp != NULL) fclose(fp); B. fp = fopen("log.txt", "a"); fclose(fp); C. fp = fopen("log.txt", "r"); if (fp != NULL) fclose(fp); D. fp = fopen("log.txt", "w"); if (fp == NULL) fclose(fp);
已包含 <stdio.h>,并有声明 FILE *fp; FILE **pp = &fp;。下列表达式中,哪一个的类型是 FILE,而不是指针类型? A. fp B. *pp C. &fp D. **pp
已有如下完整定义与声明: struct Book { char title[20]; int pages; }; struct Book b[4] = {{"C", 300}, {"Java", 450}, {"Go", 280}, {"Rust", 410}}; 下列表达式中,与 b[3].pages 值相同的是( )。 A. (b+2)->pages B. (*(b+2)).pages C. (b+3)->pages D. b[2].pages
判断:对一个已成功打开且支持随机访问的二进制文件,若调用 fseek(fp, 5L, SEEK_SET) 成功,则文件位置被设为相对于文件开头偏移 5 个字节处;该调用会清除文件的 EOF 标志和错误标志。
已声明 FILE *fp,现需以只读文本方式打开已存在的文件 notes.txt,并在使用后关闭该文件。补全语句:fp = ____; ____;
设有如下定义与代码:struct Rec { int tag; int val; }; struct Rec r[3] = {{1,10},{0,20},{1,30}}; 执行语句 for(i=0;i<3;i++) if(r[i].tag==1) r[i].val = r[2].val; 后,r[0].val、r[1].val、r[2].val 的值依次为____、____、____。
关于 C 语言共用体类型的存储特点,下列说法正确的是: A. 每个成员都有彼此独立的存储区域 B. 不同成员的存储区域彼此重叠 C. 成员必须具有相同的数据类型 D. 成员只能是整型
在 C 语言中,定义标签名为 Sensor、包含成员 unsigned int code 和 double value,且不同时声明结构体变量的结构体类型:____ Sensor { unsigned int code; double value; };
某记录对象在任一时刻只需保存“状态编号”或“状态字符”中的一种;设计约束还规定,两成员必须共用同一段存储空间。满足这些要求的类型应为____。
已定义 `struct Point { int x; int y; };`,并声明 `struct Point p[5];`。判断:`p[2]` 是一个结构体数组元素,可通过 `p[2].x` 访问该元素的成员 `x`。
设有声明 `int a[8]; int *p = &a[5];`。判断:表达式 `*(p - 2)` 访问的是数组元素 `a[4]`。
若有定义 int a[6] = {4, 0, 7};,则数组元素 a[2] 与 a[5] 的值之和为____。
在递归函数的基本概念中,函数通过调用自身处理问题;为使递归调用能够结束,函数定义中必须设置____。
设 A、B、C 为非空集合,函数 f: A→B,g: B→C。判断命题「若复合函数 g∘f: A→C 是满射,则 f 是满射」是否正确。