您的位置:首页 > 其它

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

2017-09-19 20:02 369 查看
阿里巴巴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。
 
A:456     
B:492    
C:568   
D:626    
E:680   
F:70
答案:A
8、某操作系统采用分页存储管理方式,下图给出了进程A的页表机构。如果物理页的大小为512字节,那么进程A逻辑地址为0x0457(十六进制)的变量存放在( )号物理内存页中。
 
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<stdio.h>
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
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: