阿里巴巴2016校招笔试题(含答案)

阿里巴巴2016校招笔试题(含答案)

1、(7-6-3-5-4-1-2)堆排序,升序排列,3的位置改变几次

答案:2次

2、以下程序输出结果是( )

class A

{

public:

        virtual void func(int val = 1)

        {

                 std::cout << "A->" << val << std::endl;

        }

 

        virtual void test()

        {

                func();

        }

};

class B:public A

{

public:

        void func(int val = 0)

        {

                std::cout << "B->" << val << std::endl;

        }

};

 

int main(int argc,char* argv[])

{

        B*p = new B;

        p->test();

        return 0;

}

A: A->0

B: B->1

C: A->1

D:B->0

答案:B

3、将1,2,3,......,99,100任意排列成一个圈,相邻两数的差的绝对值求和最多为( )

A:100

B:198

C:200

D:500

E:2500

F:5000

答案:F

4、如果下列的公式成立:84*148=B6A8。则采用的是( )进制表示的。

A:15

B:11

C:12

D:14

E:16

F:以上都不对

答案:C 

5、在1,2,3,......1000中,有( )个数各位乘积为0。

A:100

B:101

C:172

D:181

E:190

F:191

答案:D

 

6、有一个单向链表队列中有一个A、B两个相邻元素,有一个指针p指向元素A,现将一个指针r指向的S元素要插入到A和B之间,该进行操作( )

A:  p->next=p->next->next

B:  r->next=p;p->next=r->next

C:  r->next=p->next;p->next=r

D:  r=p->next;p->next=r->next

E:  r->next=p;p->next=r

F:  p=p->next->next

答案:C

7、在如下8*6的矩阵中,请计算从A移动到B一共有( )种走法。要求每次只能向上或向右移动一格,并且不能经过P。

 阿里巴巴2016校招笔试题(含答案)_第1张图片

A:456     

B:492    

C:568   

D:626    

E:680   

F:70

答案:A

8、某操作系统采用分页存储管理方式,下图给出了进程A的页表机构。如果物理页的大小为512字节,那么进程A逻辑地址为0x0457(十六进制)的变量存放在( )号物理内存页中。

阿里巴巴2016校招笔试题(含答案)_第2张图片


A:9    

B:2   

C:4   

D:6    

E:8    

F:5

答案:D

9、一个长度为99的循环链表,指针A和指针B都指向了链表中的同一个节点,A以步长为1向前移动,B以步长为3向前移动,一共需要同时移动多少步A和B才能再次指向同一个节点( )。

A:99

B:100

C:101

D:49

E:50

F:51

答案:A

10、考虑以下二分查找的代码:

#include

int bsearch(int array[], int n, int v)

{

        int left, right, middle;

        left = 0, right = n-1;

        while(left <= right)

        {

                middle = left + (right - left)/2;

                if (array[middle] > v)

                        right = middle;

                else if (array[middle] < v)

                        left = middle;

                else

                        return middle;

        }

        return -1;

}

对于输入array为:{2, 6, 8, 10, 13, 25, 36, 45, 53, 76, 88, 100, 127},n = 13, v = 127时,运行bsearch函数,while循环调用的次数为( )

A:1

B:2

C:3

D:4

E:5

F:无法退出

答案:F

11、袋子中分别一叠纸币,其中5元面值的纸币6张,10元面值的纸币5张,20元面值的纸币4张,从袋子中任意取4张纸币,则每种面值至少取到一张的概率为( )

A:8/91

B:  25/91

C:  48/91

D:  53/91

E:  60/91

F:  63/91

答案:C 

12、商品推荐场景中过于聚焦的商品推荐往往会损害用户的购物体验,在有些场景中,系统会通过一定程度的随机性给用户带来发现的惊喜感。假设在某推荐场景中,经计算A和B两个商品与当前访问用户的匹配度分别为0.8分和0.2分,系统将随机为A生成一个均匀分布于0到0.8的最终得分,为B生成一个均匀分布于0到0.2的最终得分,那么最终B的分数大于A的分数的概率为( )

A:1/16

B:1/8

C:3/16

D:3/8

E:1/4

F:1/3

答案:B

13、有关下述Java代码描述正确的选项是( )

public class TestClass {

        private static void testMethod() {

                System.out.println("testMethod");

        }

        public static void main(String[] args) {

                ((TestClass)null).testMethod();

        }

}

A:编译不通过

B:编译通过,运行异常,报NullPointerException

C:编译通过,运行异常,报lllegalArgumentException

D:编译通过,运行异常,报NoSuchMethodException

E:编译通过,运行异常,报Exception

F:运行正常,输出testMethod

答案:F

14、有一个类B继承子类,他们数据成员如下:

class A{

...

private:

        const int a;

};

class B : public A{

...

private:

        int a;

public:

        const int b;

        A c;

        static const char* d;

        A& e;

};

则这些成员变量一定要通过A或者B的构造函数初始化列表来初始化的是( )

A:  b c

B:  b c e

C:  b c d e

D:  c e

答案:B 

15、A、B、C、D四人应聘一个程序员职位,此职务的要求条件是:Java熟练;懂数据库开发;会web开发;有C++经验。谁满足的条件最多,谁就被雇用。

把上面四个要求条件两两组合,每个组合都恰有一人满足。同时已知

A和B Java熟练

B和C会web

C和D懂数据库

D有C++经验

那么,被雇用的是( )

A: A

B: B

C: C

D: D

E:四人机会均等

F:以上均错

答案:B

16、从1,2,3,......,99,2015里任意选择一部分数(可能为0个数),这部分数按位异或起来的期望值是( )

A:512

B:1007

C:1008

D:2015/2

E:1024

F:2047/2

答案:F

17、以下函数中,和其他函数不属于一类的是( )

A:  strcpy

B:  strcpy

C:  snprintf

D:  strcat

E:  strtok

F:  strncat

答案:C

18、如图所示,从A点发出一束激光,于AD直线和CD直线反射多次后,垂直达到了B点(B点可能在AD上也可能在CD上,入射角等于反射角),如角CDA=8°,那么最多反射次数是( )。(从B点原路反射回点A次数不纳入计算,图中给出3次反射的例子)


A:6

B:10

C:12

D:38

E:40

F:不存在

答案:C



你可能感兴趣的:(Domestic,interview,questions)