阿里巴巴2015基础平台研发工程师实习生笔试卷

1、0~999999之间的所有数字中,任何一位都不包括数字1的数字总数为多少
  • 99999
  • 262144
  • 381041
  • 524288
  • 531441
  • 900000

解析:999999是6位数字,任何以为都不包括数字1的数字总数可以转化为对6位数字赋值0-9,那么对于从第6位到第1位不为1的赋值情况是:
9 × 9 × 9 × 9 × 9 × 9 = 531441种。



2、以下关于STL的描述中,____是错的。

  • STL容器是线程不安全的
  • 当容量不够时,vector内部内存扩展方式是翻倍
  • std::sort是稳定排序
  • std::bitset不是一个STL容器
  • std::stack默认是用deque实现的
  • std::string中可以存储多个’\0’字符

解析:std::bitset是一个STL容器。


3、一台刚刚接入互联网的WEB服务器第一次被访问到时,不同协议的发生顺序是下面中的____。

  • A .   ARP -> DNS -> HTTP
  • B.   ARP -> HTTP -> DNS
  • C.  DNS -> HTTP -> ARP
  • D.  DNS -> ARP -> HTTP
  • E.  HTTP -> ARP -> DNS
  • F.  HTTP -> DNS -> ARP
解析:F



4、设定数列{an}的前n项和为Sn,现在已知此数列满足an+Sn=10-7/2^n,那么an的通项公式是____。

  • A.     2^n/4 + 4
  • B.    -0.75n + 4
  • C.   (2.5n+3)/ 2^n
  • D.   (3n+2)/ 2^n
  • E.   (3.5n+3)/ 2^n
  • F.    -5/2^n + 4

解析:B


5、

  • 以下程序输出是____。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    #include <iostream> 
    using namespace std; 
    int main( void
         const int a = 10
         int * p = ( int *)(&a); 
         *p = 20
         cout<< "a = " <<a<< ", *p = " <<*p<<endl; 
         return 0
    • A.    编译阶段报错运行阶段报错
    • B.   a = 10, *p = 10
    • C.   a = 20, *p = 20
    • D.   a = 10, *p = 20
    • E.   a = 20, *p = 10

    解析:D

6、设x、y、t均为int型变量,则执行语句:t=3; x=y=2; t=x++||++y; 后,变量t和y的值分别为____。

  • A.       t=1 y=2
  • B.       t=1 y=3
  • C.       t=2 y=2
  • D.       t=2 y=3
  • E.       t=3 y=2
  • F.        t=3 y=3

解析:A.   x++||++y执行后的结果是真,即1,然后赋值给t。因为是或运算,所以在判断x++时真后,后面的++y就不再执行了,所以y值没有变还是2.选A


7、给定一个整数sum,从有N个有序元素的数组中寻找元素a、b,使得 a+b 的结果最接近sum,最快的平均时间复杂度是____。

  • A.         O(N^2)
  • B.         O(log N)
  • C.        O(N)
  • D.        O(N^3)
  • E.         O(NLogN)
  • F.         不确定
解析:B.          左右各设置一个指针,遍历,复杂度为N啊.


8、一个具有513个节点的二叉树,有___种可能的层高。

  • A.          513
  • B.          512
  • C.         504
  • D.         503
  • E.          2
  • F.          1

解析:C.     最多有512层,最少为完全二叉树有ceil(log513)-1=9 ceil为向上取整函数

                    总计512-9+1=504

9、A,B,C三位同学都是很聪明的同学,面试官给他们背上依次贴上了数字2,4,8,他们都能看见别人的数字但无法看见自己的数字,现在面试官告诉他们这些数字都是自然数并且构成一个等比数列,让A、B、C同学依次循环回答是否确定自己的数字是多少,每位同学的回答算作一次,经过____次有同学能准确说出自己的数字。
  • A.        2
  • B.       3
  • C.       4
  • D.       5
  • E.        6
  • F.        7

解析:

1、第一次是A,此时他看到4和8,能判断出来等比是2,自己的数字可能是2或者16。回答不确定 
2、第二次是B,此时他看到2和8,此时等比可能是2,那么自己的数字是4;或者等比是4,自己的数字是32。B知道A能看到8和自己的数字,如果自己的数字是4,那么A有两种可能,所以A回答不确定;如果自己的数字是32,那么A仍然有多种可能,所以A仍然可以回答不确定。所以B此时不能通过A的回答排除其中一种可能性。回答不确定 
3、第三次是C,此时他能看到2和4,能判断等比是2,自己的数字可能是1或者8。C知道B能看到2和自己的数字,如果自己的数字是1,那么对B来说只能是4,是确定的。但B回答不确定,所以可以排除这种可能。因此C能确定自己的数字是8。


10、用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0。
  • A.       6
  • B.      8
  • C.     10
  • D.      12
  • E.      14
  • F.       16
解析:
N=30;
N/3+N/9+N/27=14


11、假设某棵二叉查找树的所有键均为1到10的整数,现在我们要查找5。下面____不可能是键的检查序列。

  • 10,9,8,7,6,5
  • 2,8,6,3,7,4,5
  • 1,2,9,3,8,7,4,6,5
  • 2,3,10,4,8,5
  • 4,9,8,7,5
  • 以上均正确

解析:




12、将整数序列(7-2-4-6-3-1-5)按所示顺序构建一棵二叉排序树a(亦称二叉搜索树),之后将整数8按照二叉排序树规则插入树a中,请问插入之后的树a中序遍历结果是____。

  • 1-2-3-4-5-6-7-8
  • 7-2-1-4-3-6-5-8
  • 1-3-5-2-4-6-7-8
  • 1-3-5-6-4-2-8-7
  • 7-2-8-1-4-3-6-5
  • 5-6-3-4-1-2-7-8



解析:二查搜索树中序遍历一定是有序的




13、

作为特使,你需要组织A/B两国元首相约在杭州萧山机场交换一份重要文件(假设交换文件不需要时间)。约定两国飞机在晚上的20点至24点这4个小时会面,A国的飞机如果到了,会等待1个小时,B国的飞机如果到了,会等待2个小时,如果假设两架飞机在这段时间内降落机场的概率是均匀分布的,那么能顺利完成交换的概率是____。
  • 19/32
  • 7/16
  • 9/16
  • 5/16
  • 5/12
  • 5/8




解析:




14、小赵和小钱二人分别从寝室和图书馆同时出发,相向而行。过了一段时间后二人在中途相遇,小赵继续向图书馆前进,此时:若小钱继续向寝室前进,则当小赵到达图书馆时,小钱离寝室还有600米;若小钱立即折返向图书馆前进,则当小赵到达图书馆是,小钱离图书馆还有150米。那么图书馆与寝室间的距离是____。

  • 1300m
  • 1250m
  • 800m
  • 1050m
  • 1100m
  • 900m

解析:

设相遇时花时间t1,小赵到图书馆又花了t2;小赵与小钱速度差为v;
v(t1+t2)=600
v*t2=150
t1:t2=3:1
画个图就好算了,600+150+150=900.


15、对于下面的说法,正确的是____。

  • 对于 struct X { short s; int i; char c; },sizeof(X) 的值等于 sizeof(s) + sizeof(i) + sizeof(c)
  • 对于某个double变量 a,可以使用 a == 0.0 来判断其是否为零
  • 初始化方式 char a[14] = "Hello, world!"; 和初始化方式 char a[14]; a = "Hello, world!"; 的效果相同
  • 对于 int i = 3; printf("%d %d", ++i, ++i),运行输出为:4 5
  • 选项A、B、C、D中至少有两个是正确的
  • 以上选项均不正确

解析:

选F,对于A,sizeof(X)=2+2+4+1+3=12
    对于B, 要判断一个双精度浮点数:if( abs(f) <= 1e-15 )
    对于C,第二种初始化方式是错误的,无法通过编译
    对于D,输出为5,5

F对于A选项由于结构体的对齐原因所以结构体大小不是单纯的成员长度和;

对于B选项由于double类型存储的是近似值所以判断是否为0应该是判断是否位于一个小区间内,比如[-0.00001, 0.00001];

C选项char a[14]; a = "Hello, world!"会出现编译错误;

D选项的结果未定义;

E错误;

F正确


16、一张1024×640分辨率的图片,假定每个像素用16位色彩表示,用位图文件(bitmap)格式存储,则这张图片文件需要占用多大的存储空间____。

  • 40KB
  • 640KB
  • 1280KB
  • 2560KB
  • 5120KB
  • 10240KB

解析:C 1280K 16位为2字节 2*1024*640/1024


17、在64位系统下,分别定义如下两个变量:char *p[10]; char(*p1)[10];请问,sizeof(p)和sizeof (p1)分别值为____。

  • 4,40
  • 80,8
  • 10,10
  • 8,80
  • 40,4
  • 4,4

解析:B   64位系统指针为8字节. p是一个有10元素的数组 因此10*8=80   

           B 64位系统指针为8字节 p是一个有10元素的数组,数组中的元素为指向char型的指针,所以10*8=80 p1是一个指针,8字节


18、某程序员开发出了一款超级智能机器人,能对任何提问给出“是”或者“不是”的答案。现有3个这种机器人,其中有数量不定的(0到3个)机器人发生了故障。如果正常机器人总是给出正确的答案,而故障机器人总是给出错误的答案。每一回合只能问任意一个机器人任意一个问题,那么至少需要____回合才能确保区分出哪些机器人是正常,哪些是故障。

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

解析:

问:杨幂漂亮吗?
没有出故障的机器人回答“不是”,出故障的回答“是”,每回合可以判断当前这个机器人是否出故障。
所有总共需要3个回合。





19、

如下SQL语句中,____可能返回null值。

(1) select count(*) from t1;

(2) select max(col1) from t1;
(3) select concat('max=',max(col1)) from t1;
  • (1)可能,(2)和(3)不可能
  • (2)可能,(1)和(3)不可能
  • (2)可能,(1)和(3)不可能
  • (1)不可能,(2)和(3)可能
  • 都不可能
  • 都可能



解析:

答案是D 
(1)返回的是表的行数,如果没有记录,应该返回0,不会出现NULL,
(2) 和(3) 正常情况下不会出现NULL,但是如果表里面没有记录,则会出现NULL





20、以下使用了贪心算法的是____。

  • KMP算法
  • 希尔排序算法
  • 冒泡排序算法
  • Dijkstra算法
  • 快速排序算法
  • Floyd算法

解析:D Dijkstra使用了贪心算法!







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值