2013.5.19阿里巴巴实习生笔试题
一、单选题
1、在常用的网络协议中,___是面向连接的、有重传功能的协议。BA、IP B、TCP C、UDP D、DXP
分析:TCP协议为传输控制协议面向连接,IP为网际协议,UDP为用户数据报协议。。
2、500张多米诺骨牌整齐地排成一列,依顺序编号为1、2、3……499、500。第一次拿走所有奇数位置上的骨牌,第二次再从剩余骨牌中拿走所有奇数位置上的骨牌,依此类推。请问最后剩下的一张骨牌的编号是多少?C
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是全局变量,那么以下输出______是不可能的?A
void foo(){ ++a;
printf(\,a);}
A、3 2 B、2 3 C、3 3 D、2 2
4、某系统采用36进制数表示一字符串,36个字符0-9 a-z分别由数字0~35表示,则10进制数字872581表示字符串____?B
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、以下代码输出的是__?B
int foo(int x,int y){
if(x<=0||y<=0) return 1; return 3*foo(x-1,y/2);}
cout< A、11 B、12 C、13 D、14 分析:构造哈夫曼树:l(1)、i(1)、b(2)、a(3) -> 3+3+2+2+1=117 / \\ 4 a / \\ 2 b /\\ l i 8、节点按中序遍历为xyz的二叉树可能有几种?D A、2 B、3 C、4 D、5分析:貌似是卡特兰数。。 ,可以计算得出5。。 9、在4个元素的集合上可定义的互不相同的划分有___个。BA、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语言中指针的说法错误的是:___BA、指针的值是一个地址 B、非法指针是指该指针的值不是一个已经分配的内存地址 C、两个指向同类型地址的指针之间做减法是没有意义的 D、指针的指针占用的内存空间和其他指针占用的内存空间相同二、不定项选择 11、设A、B、C为任意集合,下面的命题为真的是____ABEA、如果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,则不可能的出战序列为___AB A、ECDBA B、DCEAB C、DECBA D、ABCDE E、EDCBA 13、以下关于内存泄漏说法正确的是____CB、单线程程序不可能内存泄漏 A、内存泄漏是操作系统内存管理出错导致的问题 C、如果一个进程在运行过程中占用的内存无限制上升,那么该进程有内存泄漏 D、只要进程在退出之前释放了所有分配的内存,那么就不会内存泄漏 E、内存泄漏是仅仅出现在C/C++程序的问题,Java程序不会内存泄漏 14、关于进程和线程,下列说法正确的是___BCDA、线程是资源分配和拥有的单位 B、线程和进程都可并发执行 C、在linux系统中,线程是处理器调度的基本单位 D、线程的粒度小于进程,通常多线程比多进程并发性更高 E、不同的线程共享相同的栈空间 分析:A进程 E线程有各自的栈空间