int exchange(int *xp,int y) {
int x = *xp; *xp = y; return x; }
该代码中的变量x在对应的机器级代码中,通常是保存在[x]中,而不是存储器中。当过程体开始执行时,过程参数xp和y存储在相对于寄存器?p中地址值偏移[y]和[z]中。
x 的指定答案: y 的指定答案: z 的指定答案:
[未给定] [未给定] [未给定]
x 的正确答案: 寄存器 y 的正确答案: 8 z 的正确答案: 12
问题 49 根据以下代码,以下描述正确的是: typedef unsigned char *byte_pointer; void show_bytes(byte_pointer start, int len) { int i;
for (i = 0; i < len; i++) printf(\
得 0 分,满分 10 分
printf(\}
所选答案: 正确答案:
[未给定]
A. show_bytes函数以16进制显示起始地址start开始的len个单元内 的内容
问题 50 得 0 分,满分 10 分
已知汇编,补充完整对应的C程序(填空的各个符号之间不要加空格) b:
pushl ?p
movl %esp, ?p subl $16, %esp movl $0, -4(?p) movl $0, -8(?p) jmp .L7 .L8:
movl 12(?p), êx imull -8(?p), êx addl 8(?p), êx movl êx, -4(?p) addl $1, -8(?p) .L7:
cmpl $29, -8(?p) jle .L8
movl -4(?p), êx leave ret C源程序: int b(int x, int y) {
int i,result=0; for(i=0;[1];i++) result=[2]; return result; }
1 的指定答案: 2 的指定答案:
[未给定] [未给定]
1 的正确答案: i<30
i<=29
2 的正确答案: x+y*i
y*i+x x+i*y i*y+x
问题 51 gdb下设置观察点的命令是( )
得 0 分,满分 10 分
所选答案: [未给定]
正确答案:
D. watch
得 0 分,满分 10 分
问题 52 C语言中表达式x|0xFF的功能是()
所选答案:
[未给定] B. x
正确答案:
的最低有效字节全变1,其余各位不变
问题 53 的逻辑运算规则逐位进行计算。
得 0 分,满分 10 分
C语言中的位运算是一种数值运算,运算时将两个操作数中对应的各二进制位按照指定
所选答案: [未给定] 正确答案: 对
得 0 分,满分 10 分
问题 54 以下哪些是汇编语言的缺点? (多选)
所选答案: [未给定] 正确答案: A.
? 很容易产生 bug,难于调试;
C.
? 编写的代码非常难懂,不好维护;
D.
? 开发效率很低,时间长且单调。
问题 55 已知C语言源码如下: int a【M】【N】; int b【N】【M】;
得 0 分,满分 10 分
int fun(int i,int j) {
return a【i】【j】+b【j】【i】;
}
对应的汇编代码如下: fun:
pushl ?p movl %esp, ?p movl 8(?p), íx movl 12(?p), êx leal (íx,íx,2), ìx addl êx, ìx
leal (íx,êx,4), êx movl b(,êx,4), êx addl a(,ìx,4), êx popl ?p ret
则M=([1]),N=([2])。
1 的指定答案: 2 的指定答案:
[未给定] [未给定]
1 的正确答案: 4 2 的正确答案: 3
问题 56
所选答案:
得 0 分,满分 10 分
默认情况下管理员创建了一个普通用户,就会在( )目录下创建一个用户主目录。
[未给定]
正确答案:
A. /home
得 0 分,满分 10 分
问题 57 如下哪一个命令可以帮助你知道shell命令的用法()
所选答案:
[未给定]
正确答案:
A. man
得 0 分,满分 10 分
问题 58 无符号数x和y相减x-y=diff, 如果diff>x, 表示结果溢出。
所选答案: [未给定] 正确答案: 对
得 0 分,满分 10 分
问题 59 gdb的内存查看命令x的使用格式为: x
/nfu
是( )