北京大学信息科学技术学院考试试卷
考试科目: 计算机系统导论 姓名: 学号:
考试时间: 2016 年 1 月 4 日 小班教师:
第一题 单项选择题 (每小题 分,共 分)
1 20
注:请将选择题答案填写在下表中
题号 1 2 3 4 5 6 7 8 9 10
答案
题号 11 12 13 14 15 16 17 18 19 20
答案
1. 下面哪条指令不会引起esp 的变化?
A . movl %esp, %ebp
B. pushl %ebp
C. call printf
D. subl $20, %esp
2. 单精度浮点数27.5 实际存储在内存中的十六进制数值为:
A . 0x41ee0000
B. 0x425c0000
C. 0x41dc0000
D. 0x025c0000
参考信息:单精度浮点数阶码8位,尾数23 位
3. 下面哪条指令不是X86正确的寻址方式
A . movl $34, (%eax)
B. movl (%eax), %eax
C. movl $23, 10(%edx, %eax)
D. movl (%eax), 8(%ebx)
4. 以下关于静态库链接的描述中,正确的是:
A . 链接时,链接器会拷贝静态库中的所有目标模块。
B. 使用库的时候必须把它们放在命令行的结尾处。
1
C. 如果库不是相互独立的,那么它们必须排序。
D. 每个库在命令行只须出现一次即可。
5. 在foo.c 文件中包含如下代码:
int foo (void) {
int error printf("You ran into a problem !\n");
return error;
}
经过编译和链接之后,字符串"You ran into a problem !\n"会出现在
哪个段中?
A . .bss
B. .data
C. .rodata
D. .text
6. 一段程序中阻塞了SIGCHLD 和SIGUSR1信号。接下来,向它按顺序发送
, , 信号,当程序取消阻塞继续执行时,将处理
SIGCHLD SIGUSR1 SIGCHLD
这三个信号中的哪几个?
A . 都不处理
B. 处理一次SIGCHLD
C. 处理一次SIGCHLD,一次SIGUSR1
D. 处理所有三个信号
7. 学完本课程后,几位同学聚在一起讨论有关异常的话题,请问你认为他们中谁
学习的结果有错误?
A . 发生异常和异常处理意味着控制流的突变。
B. 与异常相关的处理是由硬件和操作系统共同完成的。
C. 异常是由于计算机系统发生了不可恢复的错误导致的。
D. 异常的发生可能是异步的,也可能是同步的。
8. 下列说法正确的是:
. 信号既不能被捕获,也不能被忽略
A SIGTSTP
B.存在信号的默认处理行为是进程停止直到被SIGCONT 信号重启
C.系统调用不能被中断,因为那是操作系统的工作
D.子进程能给父进程发送信号,但不能发送给兄弟进程
2
9. 在系统调用成功的情况下,下面哪个输出是可能的?
int main () {
int pid