- 相关推荐
2015阿里巴巴实习笔试
1、设栈S初始状态为空。元素a,b,c,d,e,f依次通过栈S,若出栈的顺序为c,f,e,d,b,a,则栈S的容量至少应该为______ 。
3
4
5
6
2、10个相同的糖果,分给三个人,每个人至少要得一个。有 种不同分法。
33
34
35
36
3、小数值1.5625的二进制表示是____。
101.1001
0.001
101.111
1.1001
4、某二叉树的先序遍历是12453,中序遍历是42513,那么其后续遍历是______。
45231
42351
12345
54321
5、主机甲和主机乙间已建立一个TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含300字节和500字节的有效载荷,第一个段的序列号为200,主机乙正确接收到两个段后,发送给主机甲的确认序列号是 。
500
700
800
1000
6、在N个乱序数字中查找第k大的数字,时间复杂度可以减小至 。
O(N*logN)
O(N)
O(1)
O(N^2)
7、平均速度最快的排序算法是______。
Shell排序
快速排序
冒泡排序
插入排序
8、以下指令集架构属于复杂指令集架构的是____。
ARM
MIPS
SPARC
以上皆不是
9、有两个N*N的矩阵A和B,想要在PC上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也很大,可以存下A、B和结果矩阵。那么,为了计算速度,A和B在内存中应该如何存储(按行存指先存储第一行,再第二行,直到最后一行;按列存指先存储第一列,再第二列,直到最后一列)
A按行存,B按行存。
A按行存,B按列存。
A按列存,B按行存。
A按列存,B按列存。
10、设一棵二叉树中有3个叶子节点,有8个度为1的节点,则该二叉树中总的节点数为______。
12
13
14
15
11、IP数据报头采用______字节序,在此字节序下从低地址到高地址0×1234的表示形式为______。
big_endian, 0×12 0×34 0 0
little_endian,0×34 0×12 0 0
big_endian, 0 0 0×12 0×34
little_endian,0 0 0×34 0×12
12、下列叙述中正确的是____。
循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
循环队列中元素的个数是由队头指针和队尾指针共同决定
13、将一个从大到小的数组,用以下排序方法排序成从小到大的,______最快。
插入排序
冒泡排序
快速排序
堆排序
14、在一个元素个数为N的数组里,找到升序排在N/5位置的元素的最优算法时间复杂度是______。
O(n)
O(n log n)
O(n(log n)2)
O(n 3/2)
15、 已有变量定义和函数调用语句;编程-代码
int a=25;
print_value(&a);
则下面函数的正确输出结果是______。
void print_value(int* x)
{
printf(“%x ”,++*x);
}
25
26
19
1a
16、在二进制数据中,小数点向右移一位,则数据______。
除以10
除以2
乘以2
乘以10
17、设集合A={1,2,3},A上的关系R={(1,1),(2,2),(2,3),(3,2),(3,3)},则R不具备 。
自反性
传递性
对称性
反对称性
18、下列叙述中正确的是 。
循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
循环队列中元素的个数是由队头指针和队尾指针共同决定
19、假定x=500,求下面函数的返回值______ 。
int fun(int x)
{
int countx = 0;
while (x)
{
countx++;
x = x & (x 1);
}
return countx;
}
2
3
5
6
20、有一台带一个千兆网卡的服务器A,会把接收到的消息转发给另外两台带一个千兆网卡的服务器B和C,B和C上面的一个服务进程处理一条10K字节的消息需要2毫秒。如果在B和C上面各跑80个服务进程,在不考虑CPU负载和进程切换、内存占用、传输损耗和交互损耗的情况下,B和C服务器每秒一共大约可以处理______条10K字节的消息。
50000
60000
70000
80000
21、以下措施中,有可能改进分布式系统读写(IO)性能的有____。
网络从千兆网升级为万兆网
优化调度系统,尽量做到任务与数据相近(Locality)
数据预取机制
实现异步读写机制
22、无锁化编程有哪些常见方法?______ 。
针对计数器,可以使用原子加
只有一个生产者和一个消费者,那么就可以做到免锁访问环形缓冲区(Ring Buffer)
RCU(Read-Copy-Update),新旧副本切换机制,对于旧副本可以采用延迟释放的做法
CAS(Compare-and-Swap),如无锁栈,无锁队列等待
23、程序
struct T {
char a;
int *d;
int b;
int c:16;
double e;
};
T *p;
在64位系统上以下描述正确的是 。
sizeof(p) == 8
sizeof(*p) == 32
sizeof(p->a) == 1
sizeof(p->e) == 4
24、下面所述步骤中,是创建进程所必须的步骤是_____。
由调度程序为进程分配CPU
建立一个进程控制块
为进程分配内存
为进程分配文件描述符
25、有一种用左右值表示树形结构的存储格式,其中左右值有一些相当有用的场景,但是每个节点的左右值需要遍历树形结构计算出来。一个示例:
N[1,12]
|__N[2,7]
| |__N[3,4]
| |__N[5,6]
|__N[8,11]
|__N[9,10]
请完成遍历算法给节点赋左右值。
typedef struct node_t {
int left;
int right;
int n_children;
1 children;
} NODE;
int visit(NODE * node, int value) {
node->left = value;
int i = 0;
for(i=0; in_children; i++) {
2
}
3
return value;
}
int initLR(NODE* root) {
return visit(root, 1);
}
26、我们需要在淘宝的商品中提取一批优质商品(有特色、质量好、服务好等),比如需要提取100万件,准确率要求是95%。我们有n个不同的方法可以提取这些商品,但每个方法在保持准确率满足要求的情况下都不能做到提取完整的100万件商品。因此可以把这n个方法得到的满足要求的商品集按如下方法合并起来:如果一个商品被k个方法选为优质商品,则将它的分数设为k;按照k从大到小排序选取前100万件。但实际中发现这样选出的100万件商品不符合精度要求,请解释可能的原因。还可以向哪个方向努力?
27、有个学校的15个女生一直3个一群上学。请问该如何安排才能使这些女生每周7天每天都和两个不同的同伴结伴同行呢?例如:用A到O来标识这些女孩,7天A正好和B到O这14个女孩各同行一次。而B到O每个人和都和其他14个女孩各同行一次。
28、长度为100的环形双向链表,A指针顺时针方向每次走3步,B指针逆时针方向每次走5步,每次走完判断是否相遇,初始状态B在A逆时针方向相距20,走100次,AB指针能相遇几次?
29、某招聘笔试共有120人参加,考试有6道题。1-6道分别有86人,88人,92人,76人,72人和70人答对,如果答对3道或3道以上通过笔试,问至少有多少人通过?
30、Wait()和sleep()的区别