阿里巴巴2013实习生笔试题(选择题)

1、在常用的网络协议中,___是面向连接的、有重传功能的协议。

A、IP    B、TCP    C、UDP    D、DXP

分析:TCP协议为传输控制协议面向连接,IP为网际协议,UDP为用户数据报协议。。

2、500张多米诺骨牌整齐地排成一列,依顺序编号为1、2、3……499、500。第一次拿走所有奇数位置上的骨牌,第二次再从剩余骨牌中拿走所有奇数位置上的骨牌,依此类推。请问最后剩下的一张骨牌的编号是多少?

A、128    B、250    C、256    D、500

分析:第一次后剩下250个偶数 2 4 6...500,将它们除以2得到1~250的一列,以此类推8次,最后剩余1,即1×2^8=256(最后剩余2的最多次幂)

3、两个线程并发执行以下代码,假设a是全局变量,那么以下输出______是不可能的?

void foo(){
    ++a;
    printf("%d ",a);
}

A、3 2    B、2 3    C、3 3    D、2 2 

4、某系统采用36进制数表示一字符串,36个字符0-9 a-z分别由数字0~35表示,则10进制数字872581表示字符串____?

A、imac    B、ipad    C、iphone    D、ipod

分析:本题即由十进制转换为36进制,可效仿10进制转换为16进制的做法,举个例子:

256960转成16进制:
256960÷16=16060……0
16060÷16=1003……12=C
1003÷16=62……11=B
62÷16=3……14=E
从下往上抄 EBC0

由此可以计算出872581转换为36进制后是ipad。。

5、以下代码输出的是__?

int foo(int x,int y)
{
    if(x<=0||y<=0)  return 1;
    return 3*foo(x-1,y/2);
}
cout<<foo(3,5)<<endl;

A、81    B、27    C、9    D、3

分析:递归:3*3*3*f(0,0)=3*3*3*1=27。。

6、以下数据结构说法,错误的是___?

A、红黑树插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(logn)

B、B+树插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(logn)

C、Hash表插入操作的平均时间复杂度为O(logn),最坏时间复杂度为O(n)

D、排序链表插入操作的平均时间复杂度为O(n),最坏时间复杂度为O(n)

分析:各种数据结构的search、insert和delete操作在平均情况下的时间复杂度比较

数据结构 search insert delete
数组 O(n),有序数组折半查找是O(lgn) O(n) O(n)
双向链表 O(n) O(1) O(1)
排序二叉树 O(lgn) O(lgn) O(lgn)
哈希表(n与槽数m成正比) O(1) O(1) O(1)

7、哈弗曼编码是一种无损二进制熵编码算法,其加权路径长度最小,子妇产“alibaba”的二进制哈弗曼编码有___位(bit)

A、11    B、12    C、13    D、14

分析:构造哈夫曼树:l(1)、i(1)、b(2)、a(3) -> 3+3+2+2+1=11

7
/ \
4 a
/ \
2  b
/\ 
l  i

8、节点按中序遍历为xyz的二叉树可能有几种?

 A、2    B、3    C、4    D、5

分析:貌似是卡特兰数。。C_n = /frac{1}{n+1}{2n/choose n} = /frac{(2n)!}{(n+1)!/,n!} /quad n/ge 0,可以计算得出5。。

9、在4个元素的集合上可定义的互不相同的划分有___个。

A、14    B、15    C、16    D、17

分析:如果划分为4个子集,只有一种划分。
如果划分为3个子集,那么三个子集的元素必须是1,1,2个。有C(4,2)=6种划分。 
如果划分为2个子集,那么可能是1+3,也可能是2+2。在1+3的情况,有4种方法去选择那个单元素集合,所以有4种。如果是2+2,有C(4,2)/2=3种。所以总共有7种两个子集的划分。 
如果划分为1个子集,只有1种划分。 
所以,总共有 1+6+7+1=15种划分。

10、下列关于C语言中指针的说法错误的是:___

A、指针的值是一个地址
B、非法指针是指该指针的值不是一个已经分配的内存地址
C、两个指向同类型地址的指针之间做减法是没有意义的
D、指针的指针占用的内存空间和其他指针占用的内存空间相同

二、不定项选择

11、设A、B、C为任意集合,下面的命题为真的是____

A、如果A-B=∅,则A=B
B、如果A-C=B-C,则A∩^C=B∩^C
C、如果A∪B=A∪C,则B=C
D、如果A∩B=A∩C,则B=C
E、∅是∅的子集

12、一个栈的入栈序列为ABCDE,则不可能的出战序列为___

A、ECDBA    B、DCEAB    C、DECBA    D、ABCDE    E、EDCBA

13、以下关于内存泄漏说法正确的是____

A、内存泄漏是操作系统内存管理出错导致的问题
B、单线程程序不可能内存泄漏
C、如果一个进程在运行过程中占用的内存无限制上升,那么该进程有内存泄漏
D、只要进程在退出之前释放了所有分配的内存,那么就不会内存泄漏
E、内存泄漏是仅仅出现在C/C++程序的问题,Java程序不会内存泄漏

14、关于进程和线程,下列说法正确的是___

A、线程是资源分配和拥有的单位
B、线程和进程都可并发执行
C、在linux系统中,线程是处理器调度的基本单位
D、线程的粒度小于进程,通常多线程比多进程并发性更高
E、不同的线程共享相同的栈空间

分析:A进程 E线程有各自的栈空间

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值