计算机组成答案 下载本文

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 ,其中u的取值不可以

是( )