全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
判断:设 p、q 为命题变元。命题“若 p→q 的真值为真,且 q→p 的真值为真,则 p↔q 的真值必为真”是否正确?
登录后查看答案
判断下列说法是否正确:设有宏定义 #define SQ(x) x*x,则宏调用 SQ(a+b) 经预处理展开后为 a+b*a+b;若将宏定义改为 #define SQ(x) ((x)*(x)),则展开后为 ((a+b)*((a+b))),可避免因参数未加括号引起的结合性问题。
判断:命题公式 ¬(p∨q) 与 ¬p∧¬q 等价。
某项目要求 GCC 将单个源文件编译并汇编为目标文件,但不进行链接。有人据此断言:应使用 -S 选项,因为它会生成目标文件并停止链接。判断该断言是否正确。
判断:预处理指令 #include "defs.h" 用于将指定头文件的内容引入当前源文件进行预处理。
判断:在 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。
设 `int a[6] = {16, 23, 29, 41, 58, 73}; int *p = &a[1];` 依次执行 `p += 2;` 后,表达式 `*(p - 1)` 的值为 41。判断该表述是否正确。
判断:若已定义 int a[10]; 且 int *p = a;,则 p+3 指向数组元素 a[3],即 *(p+3) 与 a[3] 等价。
判断下列说法是否正确:执行语句 printf("%5.2f", 3.14159); 后,屏幕上输出的内容是 3.14(不含引号,小数点占一位)。
判断:在 C 语言中,一个函数定义的局部变量可以被其他函数通过变量名直接访问。
判断:在 C 语言中,定义 int score[4] = {72, 85}; 后,未显式初始化的其余数组元素会自动初始化为 0。
判断:在 C 语言中,#include <mydefs.h> 不合法,因为尖括号形式只能用于标准库头文件。
判断:在 C 语言中,以 "r" 方式打开一个已存在的文本文件后,系统自动将文件位置指针置于文件开头;若此时连续执行两次 fseek(fp, 0L, SEEK_CUR),随后调用 ftell(fp) 的返回值一定为 0。
已定义并初始化结构体数组:struct Cell { int v; }; struct Cell a[4] = {{3}, {6}, {9}, {12}}; 随后依次执行 a[1].v = a[0].v + a[3].v; a[2].v = a[1].v - a[0].v; 判断:执行后 a[2].v 的值为 9。
判断:在 C 语言中,声明 `struct Parcel { int serial; char zone; } parcel;` 只定义了结构体类型,没有定义名为 `parcel` 的结构体变量。
已知 `int b[5] = {7, 14, 21, 28, 35}; int *q = &b[1];`,判断:表达式 `*(q + 2)` 访问的是数组元素 `b[3]`。
判断:在 C 语言中,若函数定义为 int h(void) { return 7; },则在调用处写 int a = h(); 后,变量 a 得到的值为 7,即 return 后面的表达式的值就是该函数调用的返回值。