全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
已包含头文件 <string.h>,若有 char x[] = "app"; char y[] = "apple"; 则执行 int r = strcmp(x, y); 后,r ___ 0(填 >、< 或 =)。
登录后查看答案
某设备依次巡检编号为 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++; }
已声明变量 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; } ``` 程序输出:____
已声明并初始化变量 `int batch = 27; double rate = 6.26;`,执行 `printf("批次=%04d|完成率=%.1f%%", batch, rate);` 后,控制台输出为___。
阅读如下C语言程序段,写出运行后屏幕上输出的结果(填空): int x=5, y=8; if (x > 3) if (y > 9) printf("A"); else printf("B"); else printf("C"); 程序输出的结果为____。
在 C 语言中(操作数为 int 类型),表达式 20 - 7 % 3 * 4 按运算符优先级与结合性求值,结果是 ___。
在 C 语言中,设表达式 `100 / 5 * 2 - 3 << 1` 按运算符优先级与结合性求值,其结果为____。
设有定义 int a=3, b=5, c=2; 则表达式 a > b != c || a + b < c && !a 的值是____。
某集成开发环境中,当前项目已配置完成,源文件 main.c 的编辑缓冲区有未保存修改;该环境的“编译”命令只处理已保存的文件,“运行”命令启动最近一次成功编译生成的程序。若要运行修改后的代码,且编译不会报错,应依次执行:____。
某基本块中,虚拟寄存器 u、v、w、z 的活跃区间两两重叠,因此它们在干涉图中两两相邻。分配阶段仅有 3 个可用物理寄存器,冲突变量不能共用寄存器。为完成合法分配,至少需要溢出多少个虚拟寄存器?___
某参数表的语法制导定义为 P → T id ; P₁,语义规则 P₁.off = P.off + T.width;末项产生式 P → T id 的语义规则为 P.end = P.off + T.width。off 表示参数起始偏移,末项不再有后继参数,参数连续存放且不对齐。首项偏移为 16 字节,依次声明 a:int、b:real、c:char、d:int,类型宽度分别为 4、8、2、4 字节。按该属性规则,c 的起始偏移为 ____ 字节。
过程 T(p,q) 的执行体依次为 p:=23;q:=51。调用 T(w,w) 前 w=6。按值调用时形参彼此独立;按引用调用时形参直接引用实参;按值-结果调用时先按形参顺序复制实参初值,结束时再按形参顺序写回。三种方式下过程结束后 w 的值依次为 ____。
在栈式存储分配的运行时环境中,每次过程调用时,系统都会在运行栈栈顶为该次活动分配一个____;当该过程执行结束返回时,其对应的活动记录会被____出栈。若过程 A 正在执行过程中调用了过程 B,则此时运行栈中活动记录的分配顺序是:先分配____的活动记录,后分配 B 的活动记录。
给定文法 S → B C,B → p | q,C → r | s。采用语法制导定义:B → p 的规则为 B.v = 4,B → q 的规则为 B.v = 7;C → r 的规则为 C.v = 2,C → s 的规则为 C.v = 5;S → B C 的规则为 S.v = 10×B.v + C.v。对串 q s 进行语法制导翻译,根结点的 S.v = ____。
设文法 G:S→aBc,B→bB | ε。将其改造为 LL(1) 文法并用预测分析法分析:因为 FIRST(bB)={b},FOLLOW(B)=____(写出集合元素),所以当分析栈顶为 B、当前输入符号为 c 时,应选用产生式____。