最新上海阿里巴巴笔试题分享

去了阿里巴巴笔试,现在靠记忆复述考点大致如下:
选择题,注意做错要扣分,比如不定项选择全对得5分,少选得2分,不做0分,多选或选错扣2分,(这好像是从外企学过来的==)大概是为了给想碰运气的人心理压力,减少成绩的运气成分。选择的感觉就是好多数学题啊,组合数学,概率,如果高中有过数学竞赛经验的同学我想做起来应该会很轻松。考点如下:
1 堆排序的时间复杂度以及创建堆的复杂度
2 若只要选出最大的10个数,采用哪种排序?堆排序,直接选择,希尔排序……
3 二叉树n0=n2+1
4 二进制数除法
5 以下两种不同的循环方式:
int a[10000];
int b[100];
int i,j;
for(i=0;i<10000;i++)
for(j=0;j<100;j++)
b[j]++;

for(i=0;i<100;i++)
for(j=0;j<10000;j++)
a[j]++;
哪种速度更快?一样?难以判断?
6 某车5分钟一班,另一车10分钟一班,某人两种车都可以乘坐,问平均等待时间?
7 100个球中有10个红球,可重复地取球,取出后放回,问第n次取到第k个红球的概率?
8 哈夫曼序列
9 一棵二叉树通过一个FIFO队列p来输出,问输出序列?程序伪代码如下:
printTree(Node node)//传入根节点
{
p.push(node);
while(true){
node=p.pop();
print(node);
for(child of node)
p.push(child);
if(p.empty())
break;
}
}
10 求条件概率(简单,知道公式就行)
11 矩阵连乘最佳次数问题
12 下面哪些算法是用了贪心算法?单源点的Djstra算法,KMP算法……,总之要记得一些经典的图的算法的大致实现思想。
13 下列不会引起进程调度的是?
14 孤儿进程,僵尸进程等概念
15 ACID的含义
16 计算机内以什么形式存放数值?补码……

一共24题,有几题不记得了。

 

填空:
1 不用第三个变量,交换两个整数

2 只遍历一次,求一个数列的方差

 

大题
1 指出一个C++程序的错误,主要就是考不覆盖自定义类的复制构造函数会造成的危害。

2 利用线程的随机性和sleep函数的低精确度,把一个数组以伪随机的方式输出。(不能用和随机相关的函数)

 

选做题
1 写出一个java程序的输出结果:

[java][/java] view plaincopy

  1. public class Test1 {
  2.     public static int k=0;
  3.     public static Test1 t1=new Test1(“t1”);
  4.     public static Test1 t2=new Test1(“t2”);
  5.     public static int i=print(“i”);
  6.     public static int n=99;
  7.     public int j=print(“j”);
  8.     {
  9.         print(“构造块”);
  10.     }
  11.     static {
  12.         print(“静态块”);
  13.     }
  14.     Test1(String str){
  15.         System.out.println((++k)+”:”+str+”  i=”+i+” n=”+n);
  16.         ++n;
  17.         ++i;
  18.     }
  19.     static int print(String str){
  20.         System.out.println((++k)+”:”+str+”  i=”+i+” n=”+n);
  21.         ++n;
  22.         return ++i;
  23.     }
  24.     public static void main(String[] args){
  25.         Test1 t=new Test1(“init”);
  26.     }
  27. }

这里附上正确答案如下:
1:j i=0  n=0
2:构造块 i=1  n=1
3:t1 i=2  n=2
4:j i=3  n=3
5:构造块 i=4  n=4
6:t2 i=5  n=5
7:i i=6  n=6
8:静态块 i=7  n=99
9:j i=8  n=100
10:构造块 i=9  n=101
11:init i=10  n=102

 

2 每个web应用服务器需要10个与oracle数据库的连接,oracle能承载的最多的连接是1000个,现有400个web应用服务器,并且以每年300个的速度增长,问有什么方法解决?并从原理上分析这种方法为什么有效?(和java相关)

Java输出那个大题写错了,有些空着,最后一题扯淡,前面选择也感觉错多对少,稳跪的节奏啊这次==。不过也没方法,现在实力水平也就这么点,还得再练习,准备才行。等着下次厚积薄发吧==……

标签