2014年阿里巴巴校园招聘-软件研发工程师笔试题

时间:2022-09-02 18:50:01

1.假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数

A.h(K)=K/N;

B.h(K)=1;

 

C.h(K)=K mod N;

 

D.h(K)=(K+rand(N)) mod N, rand(N)返回0到N-1的整数

2.下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是

A.堆排序  最优时间复杂度O(nlogn)最差时间复杂度O(nlogn)平均时间复杂度O(nlogn))

B.插入排序  最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)

C.冒泡排序  最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2)

D.快速排序  最优时间复杂度O(nlogn)最差时间复杂度O(n^2)平均时间复杂度O(nlogn)

3.下面说法错误的是:

A.CISC计算机比RISC计算机指令多

B.在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增加寻址空间

C.增加流水线段数理论上可以提高CPU频率

D.冯诺依曼体系结构的主要特征是存储程序的工作方式

解释:指令操作码分为三种:定长操作码,霍夫曼操作码和扩展操作码,采用扩展操作码可以使得指令字长不变的情况下,尽可能多的表示更多的指令

4.不属于冯诺依曼体系结构必要组成部分是

A:CPU B: Cache C:RAM D:ROM

5.一个栈的入栈序列式ABCDE则不可能的出栈序列是:

A:DECBA  B:DCEBA  C:ECDBA  D:ABCDE

6.你认为可以完成编写一个C语言编译器的语言是

A:汇编 B:C语言 C:VB D:以上全可以

7.关于C++/JAVA类中的static成员和对象成员的说法正确的是

 

A:static成员变量在对象构造时候生成

 

B: static成员函数在对象成员函数中无法调用

 

C: 虚成员函数不可能是static成员函数

 

D: static成员函数不能访问static成员变量

A.类的static成员变量属于该抽象类,需要在类定义时初始化,不可以在对象的构造函数中初始化

B.static成员函数在对象成员函数中可以调用,同属于一个类作用域

C.正确,static成员函数不可以声明为const和virtual

D.static成员函数只能够访问static 成员变量

8.假设下图中的每个正方形的变长为1,从A到Z有多少条路线?

2014年阿里巴巴校园招聘-软件研发工程师笔试题

 

A.11

B.12

C.13

D.14

9.某进程在运行过程中需要等待从磁盘上读入数据,此时进程的状态将

A: 从就绪变为运行  B:从运行变为就绪

C: 从运行变为阻塞  D:从阻塞变为就绪

10.下面算法的时间复杂度为

int f(unsigned int n)
{

if(n==0||n==1)

return 1;

else 

return n*f(n-1);

}

A: O(1)   B:O(n)  C:O(N*N)  D:O(n!)

11.n从1开始,每个操作可以选择对n加1或者对n加倍。若想获得整数2013,最少需要多少个操作。

A:18    B:24  C:21  D;不可能

解释:

2013->2012->1006->503->502->251->250->125->124->62->31->30->15->14->7->6->3->2->1

正向只能是+1和×2,所以逆向只能-1和/2,由上过程可得18次

12.对于一个具有n个顶点的无向图,若采用邻接表数据结构表示,则存放表头节点的数组大小为:

A: n  B: n+1    C: n-1  D:n+边数

13.

2014年阿里巴巴校园招聘-软件研发工程师笔试题

答案:A.对于几何中的每个字符串取hash可以看作是同分布的独立重复事件,所以每一个事件出现10的概率都是p=1/1024,那么当出现的时候,期望的次数就是1/p,1024.

14.如下函数,在32bit系统foo(2^31-3)的值是:

int foo(int x)
{

  return x&-x;

}

A.0 B.1 C.2 D.4

解释:

x   =  0000 0000, 0000 0000, 0000 0000,0000 0010

-x  =  1111 1111, 1111 1111, 1111 1111, 1111 1110

x&-x = 0000 0000,0000 0000,0000 0000,0000 0010

为2

15.对于顺序存储的线性数组,访问节点和增加节点删除节点的时间复杂度为:

A: O(n),O(n) 

B:O(n),O(1) 

C:O(1),O(n) 

D:O(n),O(n)

16.在32为系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是:

struct A
{

  int a;

  short b;

  int c;

  char d;

};

struct B
{

  int a;

  short b;

  char c;

  int c;

};

A: 16,16    B:13,12   C:16,12 D:11,16

17.袋中有红球,黄球,白球各一个,每次任意取一个放回,如此连续3次,则下列事件中概率是8/9的是

A: 颜色不全相同 B:颜色全不相同C:颜色全相同D:颜色无红色

解释:

由于颜色任一颜色相同的概率为1/27

颜色无红色的概率为2/3×2/3×2/3=8/27

颜色全部相同的概率为1/9

颜色都不同,概率为3×1/3×2×1/3×1/3=2/9

颜色不全相同为8/9

18.一个洗牌程序的功能是将n张牌的顺序打乱,以下关于洗牌程序的功能定义说法最恰当的是

 

A: 每张牌出现在n个位置上的概率相等   // shuffle算法

 

B: 每张牌出现在n个位置上的概率独立

 

C: 任何连续位置上的两张牌的内容独立

 

D: n张牌的任何两个不同排列出现的概率相等

19.用两种颜色去染排成一个圈的6个棋子,如果通过旋转得到则只算一种,一共有多少种染色:

A: 10 B:11 C:14: D:15

20.递归式的先序遍历一个n节点,深度为d的二叉树,则需要栈空间的大小为:

A: O(n) B:O(d)  C:O(logn)  D:(nlogn)