求职指南网 > 笔试试题 >

阿里巴巴实习生招聘笔试题

时间: 小龙 笔试试题

1:

有整形数组A有n个数;那A逆序:例如A={1,2,3,4}经过代码处理后变为A={4,3,2,1};要求代码简介(<20行)不使用库函数。使用加减乘除赋值和逻辑控制语言实现。

写出代码。

void revense(int _a,int n) {

for(int i=0; i

{

a[i]=a[i]+a[n-i-1];

a[n-i-1]=a[i]-a[n-i-1];

a[i]=a[i]-a[n-i-1];

}

}

2:

计算期望:某个工程师忘记设闹铃的概率为0.2,上班堵车概率为0.5。他的迟到概率:

忘设闹铃并堵车    1.0    忘设闹铃不堵车    0.9    设闹铃堵车    0.8    设闹铃不堵车    0    

求他60天的迟到天数的期望。

0.51

3:

周转时间

4:

有n个战士其中n>4他们手中都有不同的情报,假设每个人通过交流能过得双方所有的情报。设计一个算法使得用最少的交流次数使得

所有的战士都获得全部的情报,给出算法并给出最小交流次数?

等各位补充答案

5:

有个聚会有N人参加,其中N-1个是群众。1个是明星。其中所有群众都认识明星,明星不认识任何群众,群众之前是否认识不知道。

假设有个机器人能问问题A是否认识B?时间复杂度为O(1),那么设计一个算法用最小的复杂度找出明星。(不写代码,不计算复杂度不得分)

遍历这n个人;

首先取出 1号 和 2号,

如果 1 认识 2, 那么把 1 去掉;

如果1不认识2,就可以把2去掉了。

每次比较都去掉一个,如此循环;n-1次之后只有一个人了

时间复杂度: O(n)

阿里巴巴实习生招聘笔试题(篇2)

1.给定fun函数如下,那么fun(10)的输出结果是()

int fun(int_)

{

return(_==1)? 1 : (_ + fun(_-1));

}

A.0 B.10 C.55 D.

2.在C++程序中,如果一个整型变量频繁使用,最好将它定义为()

A.auto B.e_tern C.static D.register

3.长度为n的字符串匹配子串长度为m的字符串,求算法的复杂度最小为_

A.O(n) B.O(n+m) C.O(n+logm) D.O(m+logn)

4.下列排序算法中最坏复杂度不是n(n-1)/2的是_

A.快速排序 B.冒泡排序 C.直接插入排序 D.堆排序

5.判断一包含n个整数a[]中是否存在i、j、k满足a[i] + a[j] = a[k]的时间复杂度最小值是()

A.O(n^2) B. O(n^2_ogn) C. O(n^3) D. O(nlogn)

6.射击3次打靶成功的概率是0.95,打靶一次成功的概率是多少?

C.0.63 D.0.86

阿里巴巴实习生招聘笔试题(篇3)

1.下面不能用作linu_的进程间通信的是_

A.共享内存 B.管道名 C.信号量 D.临界区

2.CPU和I/0一次只能处理一个程序,现有

P1:计算60ms I/o80ms 计算20ms

P2: 计算120ms I/o40ms 计算40ms

p3:计算40ms I/o80ms 计算40ms

C.160 D.200

3.两个进程同时执行一个函数,初始a=0:

2.一个函数为

foo()

{

if(a<=0)

a++;

else

a--;

printf(%d,a);

}

其中a是全局变量;架设++,--,printf都是原子操作。如果有两个并发线程都运行函数foo()那么下面哪个结果不会出现?A

A、01 B、10 C、12 D、22

52763