阿里巴巴集团秋季校招笔试题和面试题答案(二)

编辑:李老师高考志愿助手

  第二部分 不定向选项(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;

中国点击率最高的一篇文章 !