首页 > 代码库 > 阿里巴巴实习生笔试题(含答案)

阿里巴巴实习生笔试题(含答案)

1、动态链接库的优点?

答:共享、开发速度快,减少页面交换。拓展一下,静态链接库的优点:(1) 代码装载速度快,执行速度略比动态链接库快; (2) 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地域等问题。 

2.、n个数值选出最大m个数(3<m<n)的最小算法复杂度是

答:O(n)

3、由权值分别为1、12、13、4、8的叶子节点生成一颗哈夫曼树,它的带权路径长度为()

答:81。

4、阿里巴巴国际站的股票代码是1688,这个数字具有这样的特性,首先是个首位为1的4位数,其次恰巧有且仅有1个数字出现了两次。类似的数字还有:1861,1668等。这样的数字一共有()个。

答:分两种情况,重复数字是1和重复数字不是1.用排列组合的方法来计算比较快。

技术分享

(1)若这个四位数的重复数字为1,那么首先从三个空位中选出一个给1,第二步从剩下9个可选数字中选出2个有序的排列到剩下的两个空位中去,那么有C(1,3)*A(2,9)=3*(9!/(9-2)!)=3*9*8=216种可能;
(2)若这个四位数的重复数字不为1,那么首先从9个可选数字中选出一个作为重复数字(C(1,9)),并放到三个空位中的两个(这两个数字相同,故只涉及组合)(C(2, 3)),然后从剩下8个数字中选出一个(它的位置在重复数字确定后就自然固定了,不可选)即可,故有C(1,9)*C(2, 3)*C(1, 8)=216种可能。
总共:216+216=432
5、工程师M发明了一种游戏:M将一个小球随机放入完全相同的三个盒子中的某一个,玩家选中装有球的盒子即获胜;开始时M会让玩家选择一个盒子(选择任何一个获胜概率均为1/3);玩家做出选择后,M会打开没有被选择的两个盒子中的一个空盒,此时M会询问玩家是否更改选择(可以坚持第一次选择,也可以选择另一个没有打开的盒子),下列叙述正确的有()。
技术分享
6、以下哪种方式,在读取磁盘上多个顺序数据块时的效率最高?
答:通道方式>DMA方式>中断控制方式>程序直接访问方式(循环检测IO方式)
7、下列不是进程间的通信方式的是()
答:回调(这属于一种编程机制)
8、已知IBM的PowerPC是big-endian字节序列而Intel的X86是little-endian字节序,如果在地址啊存储的整形值时0x04030201,那么地址为a+3的字节内存储的值在PowerPC和Intel X86结构下的值分别是?
答:1 4
9、在TCP/IP建立连接过程中,客户端或服务器的状态转移说法错误的是?
答:TIME_WAIT是断开连接时的状态(属于第四次握手)
10、已知一棵二叉树的先序和中序遍历序列如下:先序:A、B、C、D、E、F、G、H、I,J中序:C、B、A、E、F、D、I、H、J、G其后序遍历序列为:
答:C、B、F、E、I、J、H、G、D、A 先序,中序,后序,这里面的先中后,都是根的位置。
11、有四个元素A、B、C、D顺序进栈,在进栈过程中可以出栈,出栈次序错误的排列是
答:DCAB,没什么难度,这道题
12、
#pragma pack(2)
class BU
{
    int number;
    union UBffer
    {
        char buffer[13];
        int number;
    }ubuf;
    void foo(){}
    typedef char*(*f)(void*);
    enum{hdd,ssd,blueray}disk;
}bu;


sizeof(bu)的值是()

答:4+14 +0 +0 +4 = 22;union的大小取决于它所有的成员中,占用空间最大的一个成员的大小,并且需要内存对齐,这里因为#pragma pack(2),所以union的大小为14,如果不写#pragma pack(2),那么union大小为16【因为与sizeof(int)=4对齐】;此外,这里还有一个坑人的地方,enum这里有变量,就是disk,这里比较坑人,申明和定义写在一起,很容易吧disk看成是enum的命名。

13、同一个进程中的线程不共享的部分是()

答:栈空间;

14、下面关于系统调用的描述中

答:调用程序是运行在用户态,而被调用的程序是运行在系统态。

15、在动态分区分配方案中,系统回收主存,合并空闲空间时需修改空闲区表,以下哪种情况空闲区会减1?

答:有上邻空闲区,也有下邻空闲区

17、刚毕业的小王上班有两路公交车都可以从家到公司.如果只等A车,平均需要5分钟才等到;如果只等B车,平均需要7分钟才能等到.假定两辆车运行时间独立,那么小王平均需要等多长时间才能等到A车或B车?

答:2分55秒。在时间t内,A车t/5趟, B车t/7趟,所以在t内等到车共计t/5+t/7趟,等到一趟的时间则为t/(t/5+t/7),等价35/12,

18、一个黑色袋子中装有5个红球,5个蓝球,5个黄球,从中抽取三次,每次抽一个球,取完不放回,则每种颜色球各得一个的概率是()

答:25/91。

最开始是0个球,第一次不管怎么选都会选一个和以前不同颜色的球,所以第一次选择颜色不同的球概率为1;
第一次选择之后,还剩14个球,其中 被第一次选走的那个颜色只有4个,剩下的两种颜色的球个数不变,都为5,
然后选一个与第一次颜色不同的球的概率是:10/14, 这是第二次选择
第二次选择之后,还剩13个球,其中被第一次和第二次选中的球,各有4个,剩下的没选到颜色的球还是5个,这次选中
还没选到的这个颜色的球的概率是:5/13
所以选择三个不同颜色总的概率为:1*(10/14)*(5/13) = 25/91.

19、

#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
	int* pint = 0;
	pint += 6;
	cout << pint << endl;
	printf("%d\n", pint);
	return 0;

}

以上程序的运行结果是:24


不懂的可以加我的QQ群:261035036(IT程序员面试宝典

群) 欢迎你到来哦,看了博文给点脚印呗,谢谢啦~~


阿里巴巴实习生笔试题(含答案)