时间:2013.05.05
地点:北大三教
(好多记不清了,记录下几道以飨后人)
(1-14为选择题)
1 sata硬盘的读取速度();18xDVD的读取速度();千兆网的读取速度();(还有一个记不清了)
2 操作系统相关的:任务的 cpu时间 和 I/O时间,调度可以节省多少时间?
5 2个线程调度下程序,a是全局变量,初始值为0,++,--认为是原子操作,不可能的输出是:
void f()
{
if(a<=0)
a++;
else
a--;
}
print(a);
A 01B10C22D12(选项记不太清了)
6 unix系统的进程间通信方式。
7 一个变量使用的频率很高,应该把它声明为什么类型()
A static B auto C register
14 A,B数星星,A先开始,两人交替数,每人数k个星星,20 =< k <= 30,谁最后数谁赢,下列几个是星星的总数,哪几
个可以保证A肯定赢?
A 2019 B C DE(记不清了,几千到1w的数)
15 原地排序一个数组(简单,我就写了一个冒泡排序)
16 任务调度的一个问题:先来先服务和最短任务优先,计算周转时间。
17 求苦逼程序员的上班迟到的期望值。(纯数学,简单)
18 战场上n个战士,每个战士了解一部分战况,每个人知道的都不一样,两个人交流一次,两个人就可以了解对方知道的
信息。设计一个最优算法,交流次数最少实现每个战士都了解战场上的所有战况。(给出时间复杂度,不必代码实现)
19 一个房间有 n-1个 群众和一个明星。群众之间的认识情况不明,群众都认识明星,明星不认识任何一个群众。假如你
是机器人R2D2,你可以询问一个人是否认识另一个人。设计一个算法可以找出该明星,并进行算法复杂度分析。
20 n个仓库成环状,每个仓库的货物不一样多,现在需要搬运货物使得每个仓库的货物一样多,要求货物只能在相邻的
仓库之间搬动,涉及一种成本最低(搬运货物最少)的一种方法,写出算法(文字描述)及代码实现。
-------------------解答--------------------------------------
1 理论速度:sata(150MB/s),sata2(300MB/s),sata3(600MB/s)
18x(2.5MB/s),1x(150KB/s)
千兆网(1Gbps)
7 C
14 (东郭)【1,30】+50*n,n = 0,1,2.。。。。。