2015年阿里巴巴秋季校招在线笔试题---研发类分析集锦

这一次阿里的笔试统一采取在线的形式,前面是20道选择题,后面是3道大题,选择题是采取随机的方式,大题研发,测试都是各自固定的

1.选择题部分


考的很少,一道中序,前序已知,求对应的后续

题目1:已知一棵二叉树的前序遍历结果是ACDEFHGB,中序遍历结果DECAHFBG,求对应的后序遍历结果(B

A.HGFEDCBA  B.EDCHBGFA C.BGFHEDCA D.EDCBGHFA E.BEGHDFCA F.BGHFEDCA

本题属于基本的二叉树的题目,很简单,送分题


链表

考了好几道题,所以链表复习的时候要着重掌握

题目1:在一个双向链表中,指针p所指向的结点(非尾节点)之后插入指针s指向的结点,其修改指针的操作是(D

A. p->next=s; s-prev=p; p->next->prev=s; s->next=p->next;

B. p->next->prev=s; p->next=s; s->prev=p; s->next=p->next;

C. p->next->prev=s; s->prev=p; p->next=s; s->next=p->next;

D. s->prev=p; s->next=p->next; p->next->prev=s; p->next=s;

E. s->next=p->next; s->prev=p; p->next=s; p->next->prev=s;

正常的画图来解决,不需要解决尾节点的特殊情况,操作顺序不唯一,有个基本策略

题目2:带头节点的单链表head为空的判断条件是(B

A. head==null   B. head->next==null;   C. head->next==head;  D. head!=null; E.*head==null;  F. *(head->next)==null;

基本题,不多讲

题目3:下列操作,数组比线性表速度更快的是(E

A. 原地逆序 B.头部插入 C.返回中间节点 D.返回头部节点 E.选择随机结点

个人不清楚C的正确与否


排序查找

题目1:个数为50k的数列,需进行从小到大排序,数列特征基本逆序(多数数字从大到小,个别数字乱序),以下哪种排序算法在事先 不了解数列特征的情况下能大概率最优(不考虑空间限制)(E

A. 冒泡排序 B. 改进冒泡排序 C. 选择排序 D. 快速排序  E.堆排序  F.插入排序

个数比较多,不考虑常规的排序,快排是均匀分布的比较快,所以选择E


计算机网络

题目1:下列选项中,(A)是一个典型的TCP客户端(主动建立连接,主动关闭连接)

A. SYNC_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAIT

B. SYNC_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->CLOSE_WAIT

C. SYNC_SENT->SYNC_RCVD->ESTABLISHED->FIN_WAIT1->FIN_WAIT2

D. SYNC_RCVD->ESTABLISHED->CLOSE_WAIT->TIME_WAIT->LAST->ACK

E. SYNC_RCVD->ESTABLISHED->CLOSE_WAIT->TIME_WAIT->FIN_WAIT1

F. SYNC_SEND->ESTABLISHED->FIN_WAIT1->TIME_WAIT->CLOSE_WAIT

参考链接:http://blog.csdn.net/tall913/article/details/7952531


操作系统,系统结果

题目1:若干个等待访问磁盘者依次要访问的磁道为19,43,40,4,79,11,76 当前磁头位于40号柱面,若用最短寻道时间优先调度算法,则访问序列为(B)

A. 19 , 43 , 30 , 4 , 79 , 11 , 76

B. 40 , 43 , 19 , 11 , 4 , 76 , 79

C. 40 , 43 , 76 , 79 , 19 , 11 , 4

D. 40 , 43 , 76 , 79 , 4 , 11 , 19

E. 40 , 43 , 76 , 79 , 11 , 4 , 19

F. 40 , 19 , 11 , 4 , 79 , 76 , 43

基本知识考察,不再赘述

题目2:下列方法中,(D)不可以用来程序调优 ?

A. 改善数据访问方式以提升缓存命中率

B. 使用多线程的方式提高I/O密集型操作的效率

C. 利用数据库连接池替代直接的数据库访问

D. 使用迭代替代递归

E. 合并多个远程调用批量发送

F. 共享冗余数据提高访问效率

采用排除法,其他选项都可以明显提升效率

题目3:有4个进程A、B、C、D,设它们依次进入就绪队列,因相差实际很短可视为同时到达。4个进程按轮转法分别运行11,7,2和4个时间单位,设时间片为1。四个进程的平均周转时间为(B

A. 15.25  B. 16.25  C. 16.75

D. 17.25  E. 17.75  F. 18.25

进程轮转法的考察,如果是时间最短,或者先来先服务的的计算法又不一样了

题目4:Linux系统某个可执行文件属于root并且有setid, 当一个普通用户mike运行这个程序时,产生的进程的有效用户和实际用户分别是(A

A. root mike B. root root C. mike root D. mike mike E. deamon mike F. mike deamon

不了解,据说鸟哥私房菜里面有讲

了解常用的默认用户,linux用户的概念

题目5:每台物理计算机可以虚拟出20台虚拟机,假定一台虚拟机发生故障当且仅当它所宿主的物理机发生故障。通过5台物理机虚拟出的100台虚拟机,那么关于这100台虚拟机的故障的说法正确的是(C

A. 单台虚拟机的故障率高于单台物理机的故障率

B. 这100台虚拟机发生故障是彼此独立的

C. 这100台虚拟机单位时间内出现故障的个数高于100台物理机单位时间内出现故障的个数

D. 无法判断这100台虚拟机和100台物理机哪个更可靠

E. 如果随机选出5台虚拟机组成集群,那么这个集群的可靠性和5台物理机的可靠性相同

F. 可能有一段时间只有1台虚拟机发生故障

本题选择C主要是因为题干的假定,这样就保证了物理机当掉,20台虚拟机当掉


程序问题

题目1:一个函数定义的返回值是float,它不能在return语句中返回的值的类型是(F)?

A. char  B. int   C. float   D.long   E. double  F.以上皆可以

没有注意这个问题

题目2:int main() {

      fork() || fork();

   }

共创建几个进程(C)?

A. 1B. 2 C. 3 D. 4E. 5

解析暂时不清楚,我再查查

题目3:程序出错在什么阶段(F)?

int main ( void )

{

  http : //www.taobao.com

  cout << "welcome to taobao" << endl ;

}

A 预处理阶段出错 B.编译阶段出错

C.汇编阶段出错 D.链接阶段出错

E.运行阶段出错 F.程序运行正常

编程运行正常,费解

题目4:有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值( )?

A. C=(int32)(A+B),D=(int32)(A-B)

B. C=(int32)(A+B),D=(int32)((A-B)>>1)

C. C=(int32)(A+B),D=B

D. C=(int32)(A+B),D=(int32)(A+2*B)

E. C=(int32)(A*B),D=(int32)(A/B)

这道题不懂,搜索一下

题目5:在动态内存分配(C语言的malloc,C++的new),得到的存储区在内存中的(B

A. 静态区 B.堆(heap) C. 栈(stack) D. 堆栈 E. 内核内存 F. 不确定

堆和栈的区别,基本常识


智力题(概率题,逻辑推理)

这次考试智力题的数目非常多

题目1:一个博物馆以每分钟20人的速度进入,平均每人待20分钟,问博物馆至少需要容纳(D)人

A. 100 B. 200 C. 300 D. 400 E. 500

原文地址:https://www.cnblogs.com/MuscleBJL/p/3955575.html