全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
已包含头文件 <string.h>,定义 char s[] = "map"; 后,strlen(s) 的返回值是 4,因为字符串末尾的空字符也计入长度。判断该说法是否正确。
登录后查看答案
某设备依次巡检编号为 2、4、6 的三组端口,每组端口编号从 1 到该组编号。程序对端口编号之和能被 3 整除的组合记录一次: int r, c, total = 0; for (r = 2; r <= 6; r += 2) { c = 1; while (c <= r) { if ((r + c) % 3 == 0) total++; c++; } } 程序结束后,记录次数 total 为 ____。
执行以下程序段后,变量 c 的值为____。int s = 7, c = 0; while (s != 1) { if (s % 2 == 0) { s = s / 2; } else { s = 3 * s + 1; } c++; }
阅读以下 C 语言循环片段: for (int i = 1; i <= 6; i++) { if (i == 2) continue; if (i == 5) break; printf("%d ", i); } 程序输出是什么? A. 1 3 4 B. 1 3 4 6 C. 1 2 3 4 D. 1 3 4 5
阅读以下程序段,判断最终输出的字符。 ```c int battery = 20, reserve = 6; if (battery >= 20) { if (reserve > 6) printf("X"); else printf("Y"); } else if (battery > 15) { printf("Z"); } else { printf("W"); } ``` A. X B. Y C. Z D. W
判断下列说法的正误:在C语言的switch语句中,default分支的位置是任意的,但如果default分支不在switch结构的末尾且其中没有break语句,程序执行完default分支后会继续顺序执行其后各case分支中的语句,直到遇到break或switch结构结束。
已声明变量 int m; double y; char ch;,并按如下顺序从键盘输入数据(␣表示一个空格,↵表示回车): 12␣4.5↵ Z↵ 然后执行语句: scanf("%d%lf", &m, &y); scanf(" %c", &ch); printf("%d,%.1f,%c", m, y, ch); 程序输出结果为 ____。
采用如下语法制导翻译方案:F→id 时输出 PUSH id;F→(E) 时不输出指令;T→T₁*F 时在子项指令之后输出 MUL;T→F 时不输出指令;E→E₁+T 时在子项指令之后输出 ADD;E→T 时不输出指令。按从左到右的顺序翻译表达式 x*(y+z),所得指令序列为____。
阅读以下 C 程序,执行后输出____。 #include <stdio.h> #include <string.h> int main(void) { char s[20] = "ab12cd"; char t[20] = "34ef56"; strncpy(s + 2, t + 2, 2); strcat(s, t); printf("%d", (int)(strstr(s, "ef56") - s)); return 0; }
有如下C语言函数定义:void swap(int *a, int *b) { int t = *a; *a = *b; *b = t; }。在主函数中有 int x = 3, y = 8;,若调用 swap(&x, &y),则调用结束后 x 的值为____,y 的值为____。
阅读以下程序,填写程序运行时输出的三个整数,按输出顺序用空格分隔。 ```c #include <stdio.h> int global = 2; void work(int n) { int local = 3; { int n = 5; local += n; } global += local; n += global; printf("%d ", n); } int main(void) { int n = 10; work(n); printf("%d %d", global, n); return 0; } ``` 程序输出:____
设有如下C程序片段: int x = 5; int f() { int x = 1; x = x + 1; return x; } int g() { x = x + 2; return x; } 主函数中依次执行:printf("%d", f()); printf("%d", g()); printf("%d", x); 三条语句的输出依次为: A. 2 7 7 B. 2 7 5 C. 2 9 5 D. 6 8 5
已包含头文件 <string.h>。对于任意两个以空字符结尾的字符串 s1 和 s2,调用 strcmp(s1, s2) 时,返回值被标准保证只能是 -1、0 或 1。判断该说法是否正确。
判断下列说法的正误:设有定义 int a[2][3] = {{1,2,3},{4,5,6}};,则表达式 a[1][2] 与 a[0][a[0][0]] 引用的是同一个数组元素。此外,若将该定义改写为 int a[2][3] = {1,2,3,4,5,6};,则 a[1][2] 的值会发生改变。
某运行时采用标记-清扫式垃圾回收,堆容量为 300 个单位,地址从 0 到 299。对象按地址递增连续分配:A 占 [0,39],B 占 [40,69],C 占 [70,119],D 占 [120,159],E 占 [160,199],F 占 [200,239],G 占 [240,299]。根集合仅含 A、E;引用关系为 A→B,B→C,E→F。回收后,不可达对象所占区域成为空闲块,相邻空闲块合并,空闲块按地址递增组成空闲链表,采用首次适应分配。现请求分配一个大小为 45 个单位的新对象,其起始地址是? A. 120 B. 160 C. 240 D. 分配失败
执行 for (i=2; i<=8; i+=3) 时,循环体执行 2 次;每次执行完循环体后,先判断 i<=8,再执行 i+=3。判断该表述是否正确。
判断:在 C 语言中,else 总与最近尚未匹配的 if 配对。下列代码中的 else 与外层 if 配对,因此程序会输出 Y。 int a = 0, b = 1; if (a == 1) if (b == 1) printf("X"); else printf("Y");
已定义 int a; float x; char c;,键盘依次输入:42␣3.14y(空格分隔,y 紧跟其后,无空格),执行语句 scanf("%d %f %c", &a, &x, &c); 后,变量 c 中存储的字符是什么? A. 空格字符 B. y C. 3 D. 未定义
已声明并初始化变量 `int batch = 27; double rate = 6.26;`,执行 `printf("批次=%04d|完成率=%.1f%%", batch, rate);` 后,控制台输出为___。
判断:在C语言中,若变量已声明为 float x; 则语句 scanf("%lf", &x); 能正确读入一个实数并存入 x。