阿里巴巴2015年秋季在线笔试

也是今天才看到...之前忘记做了..


1、

在小端序的机器中,如果
union X{
    int x;
    char y[4];
};
如果:
X a;
a.x=0x11223344;//16进制
则:______
? a.y[0]=11
? a.y[1]=11
? a.y[2]=11
? a.y[3]=11
? a.y[0]=22
? a.y[3]=22

D

union是联邦体,就是跟struct差不多性质的,差别在于struct给所有成员分配了地址,但给union只给自己某个成员分配地址.

地址有地位向高位存储, 一开始x是int类型,就是分配了32位的空间,   然后  y[4]是char类型,就是每个char才占用8位.

这样一分配,就是y[0]=44;  y[1]= 33;   y[2]= 22;   y[3]=11;




2、
甲乙两路发车间隔均为10分钟的公交车发车时刻分钟数个位分别为1和9,那么对于一个随机到达的乘客,ta乘坐甲车的概率为:
? 0.1
? 0.2
? 0.3
? 0.4
? 0.5
? 0.9
B

坐甲车的分钟尾数:  0   1

坐乙车的分钟尾数:2 3 4 5 6 7 8 9


3、
某团队有 2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的最少有______人。
? 3
? 4
? 5
? 8
? 15
? 20

A

2/5+3/4 -1  =  3/20

每20个人至少3人(总不能说10个人有1.5个人吧)


4、
某航空公司有M个城市之间的全连通运营线路,最近业务扩张,新增了N(>1)个城市。为了保持其全连通运营的特色,公司新增了58种单程票(往与返各算一种单程票,没有联程票);那么扩张后,该航空公司有______个城市间的运营能力。
13
14
15
16
17
18

16

都是单程票,就是说明是有向图

58拆分为连续的偶数得到 28  30

就是说明原本有14个城市,然后加一个城市要加28条线.变成15个城市,再加一个城市,要加30条线.变成16个城市


5、
某足球队有四名外援,分别来自巴西、荷兰、意大利和美国。他们分别擅长前锋、后卫或守门,其中:
① 美国外援单独擅长守门;
② 意大利外援不擅长前锋;
③ 巴西外援和另外某个外援擅长相同的位置;
④ 荷兰外援擅长的位置和巴西外援不同。
以上条件可以推出巴西外援擅长的位置是______。
前锋
守门
后卫
前锋或守门
后卫或守门
前锋或后卫

后卫或守门吧.有③④得出结论巴西要么跟米国一样,要么跟意呆利一样.

意呆利又不愿意前锋


6、
在一个单链表中,q的前一个节点为p,删除q所指向节点,则执行______。
delete q;
q->next=p->next;delete p;
p->next=q->next;delete p;
p->next=q->next;delete q;
delete p;
q->next=p->next;delete q

倒数第三个才对


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

同时到达,就是说ABCD到达时间为0

时间1执行A..时间2执行B...时间3执行C..时间4执行D

时间5执行A.时间6执行B,,,时间7执行C,C完成.  时间8执行D

......

最后ABCD完成时间分别是   24    20     7    14

减去他们自己的到达时间就是周转时间

平均就是  16.25

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

设鸽子策略为x,鹰策略则是(1-x)

当甲方是鸽子时,对方1/2的概率也是鸽子,1/2的概率获得物品.对方1/2的概率是鹰,这时甲方收益0

当甲方是鹰时,对方1/2的概率也是鹰,1/2的概率胜利但无收益,1/2的概率还要-1.....对方1/2的概率是鸽子,则是收益1

x(1/2×1/2)=(1-x)(1/2×1/2×-1 + 1/2)

解得x=0.5


9、
已知一个二叉树的前序遍历结果是(ACDEFHGB),中序遍历结果是(DECAHFBG),请问后序遍历结果是______。
HGFEDCBA
EDCHBGFA
BGFHEDCA
EDCBGHFA
BEGHDFCA
BGHFEDCA

第二个


10、
有两个32bit的数A、B,使用下面方式得到32bit的数C、D。哪一种可以使用C、D得到A、B的值
C=(int32)(A+B),D=(int32)(A-B)
C=(int32)(A+B),D=(int32)((A-B)>>1)
C=(int32)(A+B),D=B
C=(int32)(A+B),D=(A+B),D=(int32)(A+2*B)
C=(int32)(A*B),D=(int32)(A/B)
都不可以,可能溢出

选C.其他会溢出.可以自己举些具体数字来试试

11、
每台物理计算机可以虚拟出20台虚拟机,假定一台虚拟机发生故障当且仅当它所宿主的物理机发生故障。通过5台物理机虚拟出100台虚拟机,那么关于这100台虚拟机的故障的说法正确的是:______?
单台虚拟机的故障率高于单台物理机的故障率。
这100台虚拟机发生故障是彼此独立的。
这100台虚拟机单位时间内出现故障的个数高于100台物理机单位时间内出现故障的个数。
无法判断这100台虚拟机和100台物理机哪个更可靠。
如果随机选出5台虚拟机组成集群,那么这个集群的可靠性和5台物理机的可靠性相同。
可能有一段时间只有1台虚拟机发生故障。

第三个

题目就是想说,虚拟机发生故障和物理机发生故障概率一样


12、
假设某段通信电文仅由6个字母ABCDEF组成,字母在电文中出现的频率分别为2,3,7,15,4,6。根据这些频率作为权值构造哈夫曼编码,最终构造出的哈弗曼树带权路径长度与字母B的哈夫曼编码分别为______。
86,1011
70,1000
86,0001
70, 0010
92,1000
92,0100

画出哈夫曼树

              ↙↘
         15    ↙  ↘                     

            ↙↘        ↙  ↘  

          4    ↙↘    6     7          

                2     3                          

  15+(7+6+4)×3+(2+3)×4 =86


13、
下列关于线程调度的叙述中,错误的是______。
调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会
调用线程的yeild()方法,只会使与当前线程相同优先级的线程获得运行机会
当有比当前线程的优先级高的线程出现时,高优先级线程将抢占CPU并运行
一个线程由于某些原因进入阻塞状态,会放弃CPU
具有相同优先级的多个线程的调度一定是分时的
分时调度模型是让所有线程轮流获得CPU使用权

倒数第二个是错误的.线程调度有几种调度方法的


14、
以下说法错误的是______?
引用必须被初始化,指针不必
引用初始化以后不能被改变,指针可以改变所指的对象
不存在指向空值的引用,但是存在指向空值的指针
一个引用可以看作是某个变量的一个"别名"
引用传值,指针传地址
函数参数可以声明为引用或指针类型

倒数第二个是错误的,引用是传引用.传值的话是指函数返回后不修改原来的值.


15、
下列方法中,______不可以用来程序调优 ?
改善数据访问方式以提升缓存命中率
使用多线程的方式提高I/O密集型操作的效率
利用数据库连接池替代直接的数据库访问
使用迭代替代递归
合并多个远程调用批量发送
共享冗余数据提高访问效率

16、
针对以下代码,const char str1[] = "abc";         
const char str2[] = "abc";
const char *p1 = "abc";
const char *p2 = "abc";判断下列说法哪个是正确的:______。
str1和str2地址不同,P1和P2地址相同。
str1和str2地址相同,P1和P2地址相同。
str1和str2地址不同,P1和P2地址不同。
str1和str2地址相同,P1和P2地址不同。
4个地址都相同
4个地址都不相同

A

前两个不同啦,因为都是新定义的.

后两个相同,因为 char *p1="abc";  就可以变形成  char  *p1;  *p1="abc"; 

就是说p1=p2,都是指向abc这个字符串的地址.如果想不明白,把char换成int就应该明白了




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

2/7.
准确来说允许同任意次筛子的话每个格子的概率近乎相同,
比如投1:1/6概率.     投2=两次投1+一次投二=1/36+1/6           投3:1/6+2/36+1/216
对于2014.那么他可以是2008~2013分别投到6,5,4,3,2,1.这六种可能性.
如果投的数超过2014就结束了,也就是说2009~2013分别投到6,5以上,4以上,3以上,2以上都结束
所以概率就是   6  ÷(1+2+3+4+5+6) =2/7



18、
个数约为50K的 数列需要进行从小到大排序,数列特征是基本逆序(多数数字从大到小,个别乱序),以下哪种排序算法在事先不了解数列特征 的情况下性能大概率最优(不考虑空间限制)______。
冒泡排序
改进 冒泡排序
选择排序
快速排序
堆排序
插入排序

对于逆序,低级排序受不了...排除冒泡,选择,插入排序

数据量大且不考虑空间可以看快速排序

当时逆序的话,还是堆排序好点.这样每次把栈顶的元素放到栈尾,马上就成.


19、
若路由器接收的IP报文的目的地址不是路由器的接口IP地址,并且未匹配的路由项,则采取的策略是______。
丢掉该分组
将该分组分片
转发该分组
将分组转发或分片
将分组保留存储
以上都有可能

路由表中未匹配的路由项,说明不知道该传给的哪一个.丢掉啊

20、
如果一个博物馆参观者到达的速率是每分钟20人,平均每个人在馆内停留20分钟,那么该博物馆至少需要容纳______人才行?
100人
200人
300人
400人
500人
600人

400人.20×20,应该没漏什么吧.

下面的函数中哪个是系统调用而不是库函数______?
printf
scanf
fgetc
read
print_s
scan_s

read 和 write 是系统调用,读取写入文件

printf_s 和 scanf_s 也是输出输入,只不过多了个检查字符串长度的功能.

fgetc 是 读取流中一个字符,然后光标后移



使用一辆卡车运输n块单块1TB装满数据的硬盘,以时速80km/h行驶1000km将数据运送到目的地;卡车至少运送______块硬盘才能使传输速率超1000Gbps。
2000
3000
4000
5000
6000
7000

卡车到达目的地需要:1000 km ÷  80 km/h   × 3600 s  = 45000 s

假设1TB=1000GB=8000 Gbite

8000X ÷ 45000s   >  1000 Gbps                

解得X=5625  所以得要6000吧(实际有可能1T还没有1000GB



有一只火鸡出生在某年春天。从出生第一天起,主人就会每天给它喂食。这只火鸡用一个模型来计算主人对它的爱的程度=吃到米的天数/(出生之后的总天数+1)。这只火鸡发现这个爱的指数每天都在上升。有一天感恩节到了,火鸡被主人杀掉了。关于火鸡的爱的指数模型的说法正确的是:______?
火鸡的模型之所以无效,是因为这个公式不是最大似然估计。
火鸡的模型之所以无效,是因为这个爱的指数增长速度先快后慢。
火鸡的模型之所以无效,是因为没有计算这个爱的指数的方差。
火鸡的模型之所以无效,是因为分母+1了。
火鸡的模型之所以无效,是因为主人太坏了。
火鸡的模型之所以无效,是因为统计的概率空间不完整。

这道题槽点略多...

最大似估计用上了也是死在感恩节那天啊.

增长速度,方差也是用不上的,就算分母没加1也还是要死..

概率空间不完整与其说是爱的标准错了吧.........

所以我也觉得是主人太坏了...纠结下去浪费时间啊


下列描述中,唯一错误的是______。
A.   本题有五个选项是正确的
B.   B正确
C.   D正确
D.   DEF都正确
E.   ABC中有一个错误
F.   如果ABCDE都正确,那么F也正确


题目说了唯一错误,就是A是必然对的

B可以忽略

C说D对(如果C错D也跟着错,不符题目)

D说DEF都对(D不能错,D错了E就对,但是E说ABC有错,矛盾).

D对了E,F都不能错

那么就是B错了.


并发进程执行的相对速度是______。
由进程的程序结构决定
由进程本身来控制
进程被创建时决定
与进程调度策略有关
与进程的销毁时间有关
由内存分配策略决定


D.与进程调度策略


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

A 144 

B 240 

C 288 

D 480 

E 576 

F 960


选D.480种

这道题我可不能不管,整个笔试题耗了我十几分钟,简直...

当时完毕之后寻找答案没有结果,现在自己静下来算下吧..

首先题目第一个不科学地方,差点把村长也算上了...(幸好问的是4对父子的坐法不然一直没有答案(村长吃啥啊

第二个8人围一桌还是说一长桌子...这个不说清楚也挺麻烦.

总之有以下两种坐法.


      把深蓝色的看为一体.

       左图, 一开始有8个位置可以选择.选定位置后,父与儿又可以选择互换.

                一旦第一对父子坐好了,整体的队形就固定了,要么是【父子子父父子子父】,要么是【子父父子子父父子】

                那么剩下的就在三对里面全排列了. 所以 左图是 8×2×3×2×1 = 96种

      右图,一开始"鬼父串"(4个粑粑)可以选择的也是8个位置.然后鬼父串内全排列.

                鬼父串固定好了之后,那么边界的两个儿子也固定好的...只剩下中间两个可以互换

                     所以   8×4×3×2×1×2 =384 种.

  总共96+384 = 450种



计算三个稠密矩阵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 以上效率相同


矩阵A × 矩阵 B: ( A的行 × B的列 )之和  ,要求 A的行数=B的列数,得到的结果矩阵决定于A有多少行,B有多少列

选A



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

A. char  

B. int   

C. float   

D.long   

E. double  

F.以上皆可以(类型转换)



程序出错在什么阶段______?

int main ( void )

{

http : //www.taobao.com

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

}

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


预处理是导入库之类的 ,就是带#

编译阶段就是建立起来.检查错误,所以就是编译出错.


若干个等待访问磁盘者依次要访问的磁道为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

选B.

操作系统的题目.顺便复习下

先来先服务算法(FCFS) 这个不详细说..

最短寻到时间优先算法(SSTF) 每次移动到离现在最近那个磁道上

扫描算法(SCAN)像电梯一样,先找到最近的,然后一直朝这个方向,然后又返回来



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

http://blog.csdn.net/skyjie6/article/details/39141909

2、
java中的wait()方法和sleep()方法的区别是什么?

类不同: sleep() 是线程Thread的.  wait() 则是对象Object的


调用wait()时,释放它的资源,本身的进程则进入就绪状态,要用notify激活

sleep()则不释放资源,sleep一定时间后自然再自动开启.进入阻塞状态.



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

http://blog.csdn.net/skyjie6/article/details/39026255

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值