2015-8-29阿里校园招聘研发工程师笔试题

时间:2022-10-01 18:51:46

前言:原题来自于网络:http://www.cnblogs.com/nausicaa/p/3946694.html。本人根据自己理解对题目进行解答,由于水平有限,题目有不会做、做错的地方,欢迎大家留言讨论,本博客会持续更新,谢谢关注!


1. 某团队有2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的至少有()人
A. 3 B. 4 C. 5 D. 8 E. 15 F. 20

2. 某团队负责人接到一个紧急项目,他要考虑在代号为ABCDEF这6个团队成员中的部分人员参加项目开发工作。人选必须满足一下各点:
AB两人中至少一个人参加
AD不能都去
AEF三人中要派两人
BC两人都去或都不去
CD两人中有一人参加
若D不参加,E也不参加
那么最后()参加紧急项目开发。
A. ECEF B. AF C. ECF D. F E. ABCF F. ECDEF

3. 对立双方争夺一个价值为1的商品, 双方可以采纳的策略可以分为鸽子策略和鹰策略。如果双方都是鸽子策略,那么双方各有1/2的几率获得该物品;如果双方均为鹰策略,那么双方各有1/2的概率取胜,胜方获得价值为1的物品,付出价值为1的代价,负方付出价值为1的代价;如果一个为鸽子策略,一方为鹰策略,那么鹰策略获得价值为1的物品。在争夺结果出来之前,没人知道对方是鸽子策略还是鹰策略。当选择鸽子策略的人的比例是某一个值时,选择鸽子策略和选择鹰策略的预期收益是相同的。那么该值是:

A. 0.2 B. 0.4 C. 0.5 D. 0.7 E. 0.8 F. 以上都不对

4. 在小端机器中,如果

union X{
    int x;
    char y[4];
};

如果:

X a;

a.x=0x11223344; //16进制

则:

A. a.y[0]=11

B. a.y[1]=11

C. a.y[2]=11

D. a.y[3]=11

E. a.y[0]=22

F. a.y[3]=22

5. 在以下操作中,数组比线性表速度更快的是()

A. 原地逆序

B. 头部插入

C. 返回中间节点

D. 返回头部节点

E. 选择随机节点

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

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

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

A. 15.25 B. 16.25 C. 16.75 D. 17.25 E. 17.75 F. 18.25

8. 在一个双向循环链表中,指针p所指向的节点(非尾节点)之后插入指针s所指向的节点,其修改指针的操作是()

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;

9. 下列选项中,()是一个典型的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

10. 已知一个二叉树的前序遍历结果是(ACDEFHGB), 中序遍历结果是(DECAHFBG), 请问后序遍历结果是()

A. HGFEDCBA

B. EDCHBGFA

C. BGFHEDCA

D. EDCBGHFA

E. BEGHDFCA

F. BGHFEDCA

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

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

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

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

13. 在动态内存分配(C语言的malloc,C++的new),得到的存储区在内存中的()

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

14. “村长”带着4对父子参加“爸爸去哪儿”第三季第二站某村庄的拍摄。村里为了保护小孩不被拐走有个千年的规矩,那就是吃饭的时候小孩左右只能是其他小孩或者自己的父母。那么4对父子在圆桌上共有几种坐法。(旋转一下,每个人面的的方向变更后算是一种新的坐法)()

A. 144 B.240 C. 288 D.480 E. 576 F. 960

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

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

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

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

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

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

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

16. 下列C代码中,不属于未定义行为的有()

A. int i=0;i=(i++);

B. char *p="hello"; p[1]='E';

C. char *p="hello"; char ch=*p++;

D. int i=0;printf("%d %d\n", i++, i—);

E. 都是未定义行为

F. 都不是未定义行为

17. 带头节点的单链表head为空的判断条件是()

A. head==null

B. head->next==null;

C. head->next==head;

D. head!=null;

E. *head==null;

F. *(head->next)==null;

18. 甲乙两路发车间隔均为10分钟的公交车发车时刻分钟数个位分别为1和9,那么对于一个随机到达的乘客,ta乘坐甲车的概率为

A. 0.1 B.0.2 C. 0.3 D. 0.4 E. 0.5 F. 0.9

19. 20. 都忘记了

简答题

1. 给定一个query和一个text,均由小写字母组成。要求在text中找出以同样顺序连续出现在query中最长连续字母序列的长度。例如,query为“acbac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字符序列,因此,返回结果应该为其长度3。请注意程序效率。

2. 写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵树中相差最大的两个节点间的差的绝对值。请注意程序效率。

3. Java中wait方法和sleep方法有什么区别。


其它:

21. 棋盘上共有2020个格子,从1开始顺序编号。棋子初始放在第1格,通过扔骰子决定前进格子数,扔出x点就前进x格。骰子有6面,分别对应1至6;质量均匀。当棋子到达2014或超过2014,游戏结束。那么,棋子刚好到达2014的概率与______最接近。
A. 2/3
B. 1/2
C. 1/3
D. 2/7
E. 1/6
F. 1/7  

22.有两个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)

23.下列方法中,______不可以用来程序调优 ?

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

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

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

D. 使用迭代替代递归

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

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

24.用6块1×2的完整瓷砖,铺满2×6的地面,一共有______种不同的铺法(不允许将瓷砖划分成小块)

A.13

B.15

C.22

D.24

E.25

F.26

25.H同学每天乘公交上学,早上睡过头或遇到堵车都会迟到;H早上睡过头概率为0.2,路上遇到堵车概率为0.5;若某天早上H迟到了,那么以下推测正确的有______。

A.今天H早上睡过头了

B.今天H早上睡过头的概率为0.2

C.今天H早上睡过头的概率大于0.2

D.今天H早上遇到堵车了

E.今天H早上遇到堵车的概率为0.5

F.今天H早上遇到堵车的概率小于0.5

26.下列描述中,唯一错误的是______。

A. 本题有五个选项是正确的

B. B正确

C. D正确

D. DEF都正确

E. ABC中有一个错误

F. 如果ABCDE都正确,那么F也正确

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

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

28.程序出错在什么阶段______?

int main ( void )

{

http : //www.taobao.com

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

}

A 预处理阶段出错
B.编译阶段出错
C.汇编阶段出错
D.链接阶段出错
E.运行阶段出错
F.程序运行正常

29.int main() { fork() || fork();} 共创建几个进程?

A. 1

B. 2

C. 3

D. 4

E. 5

30.一个函数定义的返回值是float,它不能在return语句中返回的值的类型是?

A. char  

B. int   

C. float   

D.long   

E. double  

F.以上皆可以

31.计算三个稠密矩阵A、B、C的乘积ABC,假定三个矩阵的尺寸分别为m*n,n*p,p*q,且m<n<p<q,以下计算顺序效率最高的是()

A (AB)C 

B A(BC) 

C (AC)B

D (BC)A 

E (CA)B 

F 以上效率相同