好文档 - 专业文书写作范文服务资料分享网站

北京大学信息科学技术学院考试试卷-计算机系统导论-2016期末考试-带答案

天下 分享 时间: 加入收藏 我要投稿 点赞

装订线内 不要答题 北京大学信息科学技术学院考试试卷

考试科目:计算机系统导论 姓名: 学号: 考试时间: 2017 年 1 月 2 日 小班教师:

题号 一 二 三 四 五 六 七 八 总分 分数 阅卷人 北京大学考场纪律 1、考生进入考场后,按照监考老师安排隔位就座,将学生证放在桌面上。无学生证者不能参加考试;迟到超过15分钟不得入场。在考试开始30分钟后方可交卷出场。 所有物品(包括空白纸张、手机、或有存储、编程、查询功能的电子用品等) 2、除必要的文具和主考教师允许的工具书、参考书、计算器以外,其它不得带入座位,已经带入考场的必须放在监考人员指定的位置。 3、考试使用的试题、答卷、草稿纸由监考人员统一发放,考试结束时收回,一律不准带出考场。若有试题印制问题请向监考教师提出,不得向其他考以下以下为答题纸,共 页 生询问。提前答完试卷,应举手示意请监考人员收卷后方可离开;交卷后不得在考场内逗留或在附近高声交谈。 未交卷擅自离开考场,不得重新进入考场答卷。 考试结束时间到,考生立即停止答卷,在座位上等待监考人员收卷清点后,方可离场。 4、考生要严格遵守考场规则,在规定时间内独立完成答卷。不准交头接耳,不准偷看、夹带、抄袭或者有意让他人抄袭答题内容,不准接传答案或者 试卷等。凡有违纪作弊者,一经发现,当场取消其考试资格,并根据《北京大学本科考试工作与学术规范条例》及相关规定严肃处理。 5、考生须确认自己填写的个人信息真实、准确,并承担信息填写错误带 来的一切责任与后果。 学校倡议所有考生以北京大学学生的荣誉与诚信答卷,共同维护北京大 学的学术声誉。

以下为试题和答题纸,共 页。

1

得分 第一题 单项选择题(每小题1分,共20分) 注:选择题的回答填写在下表中。 2 3 4 题号 1 回答 题号 回答 1. C语言中的int和unsigned类型的常数进行比较时,下列表达式及描述正

确的是:(注:位宽为32位,TMIN=-2,147,483,648,TMAX=2,147,483,647) A. 0 == 0U,按有符号数进行比较 B. 2147483647U > -2147483647-1,按无符号数进行比较 C. (unsigned)-1 < -2,按无符号数进行比较

D. 2147483647 > (int)2147483648U,按有符号数进行比较 答案:D

A- 按无符号数进行比较 B- < C- >

2. 现有一个二进制浮点的表示规则,其中E为指数部分,3比特,且bias为3;

M为小数部分,5比特,采用二进制补码表示形式,且取值( ? ? |M|<1);s是浮点的符号位;该形式包含一个值为1的隐藏位。

sEM5 15 6 16 7 17 8 18 9 19 10 20 11 12 13 14

如果用该形式表示+510,s、E和M分别是: A. 0, 100, 01100 B. 0, 101, 00100 C. 0, 110, 11010 D. 0, 111, 10101

答案:D

实际上 5 可以表示为 4+1, 8-3, 16-11, 分别对应B,C,D但是前两种都不满足( ? ? |M| < 1),因此只能选D,A是迷惑选项。

2

3. 缓冲区溢出会带来程序风险,下列避免方法中错误的是: A. 在栈中存放特殊字段用于检测是否发生缓冲区溢出 B. 避免使用有风险的库函数,如gets等 C. 随机设置栈的偏移地址 D. 分配尽可能大的缓冲区数组 答案:D

分配大缓冲区无法从根本上解决溢出问题,输入足够长数据就仍然可以实现攻击。

4. 现有四级指令流水线,分别完成取指、取数、运算、传送结果4步操作。若完

成上述操作的时间依次为9ns、10ns、6ns、8ns,则流水线的操作周期应设计为 _______ ns。

A.6 B.8 C.9 D.10 答案:D(考察对流水线运行原理的理解)

5. 对于下面这段程序,哪个描述是正确的:_________ void upper(char *s) {

for(int i=0; i=’a’ && s[i]<=’z’)

s[i] +=(‘A’-‘a’);

}

A.假设s的长度为N,该程序的时间复杂度为O(NlogN) B.将“for(int i=0; i

“int len = strlen(s); for(int i=0; i

C.B选项中的修改策略不影响程序的空间局部性与时间局部性

D.B选项中的修改策略仅影响程序的空间局部性,不影响时间局部性 答案: B (考察程序性能优化与程序局部性原理)

6. 某机器内存为8位地址,cache设计参数为E=2,t=2,s=2,b=4,cache块

大小为16字节。cache为空的初始状态下,数据访问的地址序列为0->4->34 ->162->128->192->2(以字节为单位),请问一共发生多少次cache命中?答:( )

A. 0 B. 1 C. 2 D. 3 答案:B

00 00 0000 miss

3

00 00 0100 hit 00 10 0010 miss 10 10 0010 miss 10 00 0000 miss 11 00 0000 miss 01 00 0000 miss 00 00 0010 miss

7. C源文件f1.c 和 f2.c的代码分别如下所示,编译链接生成可执行文件后

执行,输出结果为( ) A. 100 B. 200

C. 201 D. 链接错误 //f2.c int var = 200; void f() { var++; } // f1.c #include static int var = 100; int main(void) { extern int var ; extern void f() ; f() ; printf(\ return 0; } 答案:A(f1.c中的extern int var, 会搜索f1.c之前定义过的全局变量, 因为之前已经已经有了var的定义,所以printf会打印该var的值100)

8. C源文件m1.c 和 m2.c的代码分别如下所示,编译链接生成可执行文件后

执行,结果最可能为 ( )

$ gcc –o a.out m2.c m1.c ; ./a.out

0x1083020 A. 0x1083018, 0x108301c B. 0x1083028, 0x1083024 C. 0x1083024, 0x1083028 D. 0x108301c, 0x1083018

// m1.c #include int a1 ; int a2 = 2 ; extern int a4 ; void hello() { printf(\//m2.c int a4 = 10 ; int main() { extern void hello() ; hello() ; return 0 ; } 4

printf(\ printf(\} 答案:D(a2和a4在.data中, a1在.bss中, 按照布局, .data地址比.bss要小, 又由于m2.c的编译先于m1.c, 故选D不选A )

9. 对于以下一段代码,可能的输出为: int count = 0; int pid = fork(); if (pid == 0){

printf(\ }

else{

printf(\ }

printf(\

A.1 2 -1 0 B.0 0 -1 1 C.1 -1 0 0 D.0 -1 1 2

答案:A(printf从后向前处理,注意fork出的子进程与父进程执行顺序不确定)

10. 下列哪一事件不会导致信号被发送到进程?

A. 新连接到达监听端口 B. 进程访问非法地址 C. 除零

D. 上述情况都不对

答案:A(考察对各种情况的理解)

11. 在C语言中实现Mark-and-Sweep算法时,可以基于以下哪个假设:(宿主

机为32位机器)

A. 所有指针指向一个块的起始地址 B. 所有指针数据都是4字节对齐

C. 只需要扫描数据类型为指针的堆中的数据空间 D. 只需要扫描所有长度为4字节的堆中的数据空间 答案:B

12. 在Core i7中,以下哪个页表项属于4级页表项,不属于1级页表项:

5

北京大学信息科学技术学院考试试卷-计算机系统导论-2016期末考试-带答案

装订线内不要答题北京大学信息科学技术学院考试试卷考试科目:计算机系统导论姓名:学号:考试时间:2017年1月2日小班教师:题号一二三四五六七八总分分数阅卷人北京大学
推荐度:
点击下载文档文档为doc格式
4yu853j3tl1cf865breu5a66i6tmib010v3
领取福利

微信扫码领取福利

微信扫码分享