全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
有如下程序段: FILE *fp = fopen("data.txt", "w"); fputc('A', fp); fputc(fgetc(stdin), fp); fputc('C', fp); fclose(fp); 若运行时从键盘输入字符 B 并回车,则文件 data.txt 中依次写入的字符是( ) A. ACB B. ABC C. BCA D. CBA
登录后查看答案
已声明 FILE *fp;现需以只读方式打开文件 report.txt,并在使用后关闭该文件。补全语句:fp = ____; ____;
已包含 <stdio.h>,并声明 FILE *report。函数 attach 在被调用时接收 report 的地址,并需要通过形参修改 report 本身所保存的文件指针值。为使调用 attach(&report) 合法,函数定义中的形参声明应填:void attach(____)
已包含 <stdio.h>,且声明了变量 stream。下列声明中,哪一项使 stream 的类型为“指向 FILE 类型的指针”? A. FILE stream B. FILE *stream C. FILE **stream D. int *stream
在 C 语言中,若要定义一个标签名为 Book 的结构体类型,其中包含一个 char 数组类型成员 title[30] 和一个 float 类型成员 price,且定义末尾不声明任何结构体变量,则空缺处应填:struct Book ____;
在 C99 中,已定义 `struct rover { char code[8]; int channel; double voltage; };`。若要在定义变量 `r` 时将 `code` 初始化为 `"AX7"`、`channel` 初始化为 3、`voltage` 初始化为 2.5,哪条语句正确? A. `struct rover r = {"AX7", 3, 2.5};` B. `struct rover r = {3, "AX7", 2.5};` C. `struct rover r; r = {"AX7", 3, 2.5};` D. `struct rover r = {"AX7", 2.5, 3};`
判断:在 C 语言中,FILE 是系统在头文件 stdio.h 中用 typedef 定义的结构体类型名,因此声明文件指针变量必须写 FILE *fp; 形式;若写成 file *fp;(小写 f)或把 fp 声明为 int 类型再用 fopen 赋值,程序都能正常通过编译并正确读写文件。
在 C 语言中,若二进制文件已成功打开且当前文件位置有效,调用 fseek(fp, 3L, SEEK_CUR) 成功后,文件位置将相对于调用前的位置向后移动 3 个字节。判断该说法是否正确。
判断:在 C 语言中,结构体成员不能是本结构体类型的指针,因此语句 struct Node { int data; struct Node *next; }; 是非法的,无法通过编译。
设有定义:struct Record { int score; }; struct Record a = {4}, b = {6}; struct Record *p = &a; 执行 p->score = 9; p = &b; 后,判断:表达式 p->score 的值为 9。
关于 C 语言共用体类型的特点,下列说法正确的是: A. 各成员依次占用不同的存储空间 B. 各成员共享同一段存储空间 C. 共用体中只能定义一个成员 D. 共用体成员不能具有相同类型
设 `int a[6] = {16, 23, 29, 41, 58, 73}; int *p = &a[1];` 依次执行 `p += 2;` 后,表达式 `*(p - 1)` 的值为 41。判断该表述是否正确。
阅读以下 C 程序片段: int k = 25; int *p = &k; *p = *p - 12; printf("%d", k); 程序运行后输出结果是___。
判断:若已定义 int a[10]; 且 int *p = a;,则 p+3 指向数组元素 a[3],即 *(p+3) 与 a[3] 等价。
有如下 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 的地址
函数 R 的定义中包含对自身的调用;设一次调用 R 后,其执行过程会再次调用 R,直至满足某个终止条件。判断:仅凭函数定义中存在对自身的调用,能否认定 R 是递归函数?填“能”或“不能”:____
设 int a[7] = {18, 31, 46, 53, 67, 82, 95}; int *p = &a[2]; 依次执行语句 *(p+2) = *(p-1) + *(p+1); p = p+2; 此时表达式 *p 的值为____。
已定义整型变量 `int pressure = 23;`。现需在定义指针变量 `watch` 的同时完成初始化,使 `watch` 保存变量 `pressure` 的地址。请填写完整语句:____