阿里巴巴2015研发

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

9的6次方 因为是0-999999 排列组合计算

 

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

3 一台刚刚接入互联网的WEB服务器第一次被访问到时,不同协议的发生顺序是下面中的____。
ARP -> DNS -> HTTP
ARP -> HTTP -> DNS
DNS -> HTTP -> ARP
DNS -> ARP -> HTTP
HTTP -> ARP -> DNS
HTTP -> DNS -> ARP
1、当你给WEB服务器接上网线的时候,它会自动发送一条ARP信息,使得接入网关能找的到它;
网关上会形成一条类似:2c 96 1e 3c 3e 9b - 192.168.1.123的MAC地址到IP地址的映射记录。

2、当第一个用户使用域名访问WEB服务器的时候,首先要进行一次DNS查询,以确定该域名的IP地址,

3、用户通过IP地址,经过多个网络节点,访问到目标的服务器。

 

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

5 以下程序输出是____。

[cpp] view plain copy
 
  1. #include <iostream>   
  2. using namespace std;   
  3. int main(void)   
  4. {   
  5.     const int a = 10;   
  6.     int * p = (int *)(&a);   
  7.     *p = 20;   
  8.     cout<<"a = "<<a<<", *p = "<<*p<<endl;   
  9.     return 0;   
  10. }   

编译阶段报错运行阶段报错
a = 10, *p = 10
a = 20, *p = 20
a = 10, *p = 20
a = 20, *p = 10

因为a 和p都指向相同的内存地址,所以输出的前两个结果是相同的,但为啥相同的内存里的结果不相同么?--这就是常量折叠.

这个"常量折叠"是 就是在编译器进行语法分析的时候,将常量表达式计算求值,并用求得的值来替换表达式,放入常量表。可以算作一种编译优化。

因为编译器在优化的过程中,会把碰见的const全部以内容替换掉(跟宏似的: #define pi 3.1415,用到pi时就用3.1415代替),
这个出现在预编译阶段;但是在运行阶段,它的内存里存的东西确实改变了!!!
简单的说就是,当编译器处理const的时候,编译器会将其变成一个立即数。


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


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

8 一个具有513个节点的二叉树,有___种可能的层高。
513
512
504
503
2
1

设根节点高度为0,当为完全二叉树的时候,此时树的高度最小为log513=9,

而非完全二叉树的最大高度为512,因此可能的高度为512-9+1=504;


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

10 用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0。
6
8
10
12
14
16

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

 20<x<24
   20<y<24
   0<x-y<1
   0<y-x<2


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

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!"; 的效果相同
在gcc编译器下,对于 int i = 3; printf("%d %d", ++i, ++i),运行输出为:4 5
选项A、B、C、D中至少有两个是正确的
以上选项均不正确

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

17 在64位系统下,分别定义如下两个变量:char *p[10]; char(*p1)[10];请问,sizeof(p)和sizeof (p1)分别值为____。
4,40
80,8
10,10
8,80
40,4
4,4
char *p[10]是指针数组,即这个数组中有10个元素,里面放的都是指针. 这样写可能更容易分辨  char* p[10];这个数组中存放10个 char* 类型的指针,p是数组名 sizeof(p) = 8*10=80
char(*p1)[10] 这个是 数组指针,即一个指针p1 指向char[10]这个数组,所以sizeof(p1) = 8;

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

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)可能
都不可能
都可能

20 以下使用了贪心算法的是____。
KMP算法
希尔排序算法
冒泡排序算法
Dijkstra算法
快速排序算法
Floyd算法

posted on 2017-09-12 10:54  小嘤嘤  阅读(254)  评论(0编辑  收藏  举报

导航