阿里巴巴集团秋季校招笔试题和面试题答案(二)
第二部分 不定向选项(4题,每题5分。每题有1-5个正确选项,完全正确计5分,漏选计2分,不选计0分,多选、错选计-2分)
21. 要提高多线程程序的效率,对锁的控制策略非常重要。一种策略是在锁的个数不太多、控制结构不太复杂的情况下,尽可能降低加锁的粒度;另一种策略是在合适的条件下取消用锁。以下情况中不可能取消锁的是 。
A. 多线程写一个共同的数据结构,且写操作是原子操作
B. 多线程写一个共同的数据结构,且写操作不是原子操作
C. 多线程读一个共同的数据结构,且读操作不是原子操作
D. 一个线程写,多个线程读一个共同的数据结构,写操作是原子操作,读操作不是原子操作
E. 一个线程写、多个线程读一个共同的数据结构,写操作不是原子操作,读操作是原子操作
22. 一颗非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树可能是 。
A. 所有的结点均无右孩子
B. 只有一个叶子结点
C. 是一颗二叉树索树
D. 所有的结点均无左孩子
23. 以下数字在表示为double(8字节的双精度浮点数)时存在舍入误差的有 。
A. B. 10的30次方 C. 0.1 D. 0.5 E. 100
24. 给定如下C程序:
typedef struct node_s{
int item;
struct node_s* next;
}node_t;
void reverse_list(node_t* head)
{
node_t* n=head;
head=NULL;
while(n){
}
return head;
}
以下哪项能实现该函数的功能
A. node_t* m=head; head=n; head->next=m; n=n->next;
B. node_t* m=n; n=n->next; m->next=head; head=m;
C. node_t* m=n->next; n->next=head; n=m; head=n;
D. head=n->next; head->next=n; n=n->next;