由于题目是我通过草稿回顾,可能表述不清,但是内容大致一样。希望该博客内容对你有所帮助,题目所有权归美团公司所有,我只是想分享给大家学习,还望贵公司海涵~
面试职位
- 应聘职位:后端开发工程师
- 岗位描述:
- 岗位要求:
- 面试时间:2015年9月19日
- 面试题型:90分钟 16单选+4多选+2编程
单选题
第1题 从A->B路程中有段扶梯,某人途中需要绑鞋带,问那种情况更快?
- A.路上绑鞋带时间快
- B.扶梯上绑鞋带时间快
- C.时间一样
- D.扶梯路程和绑鞋带时间左右
第2题 X86平台上,int型变量内存中从低到高地址为:0x12、0x34、0x56、0x78,当网络发送该数据时,正确的发送顺序是:
- A.0x12 0x34 0x56 0x78
- B.0x78 0x56 0x34 0x12
- C.0x34 0x12 0x78 0x56
- D.0x56 0x78 0x12 0x34
补充知识
操作系统:http://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html
第3题 按入栈序列式ABCDE,不可能出栈的序列式:
- DECBA
- DCEBA
- ECDBA
- ABCDE
经典的考察出栈题目:
如果在草稿纸上画出入栈图就非常容易了。此时入栈ABCD
D => E
C => C
B => B
A => A
出D人E再出CBA,出DC入E再出BA,最后是如一个出一个,而E出后必须先D后C,故ECDBA错误。
第4题 x=9999,输入如下函数,求返回结果count值:
int func(x) {
int count=0;
while(x) {
count++;
x=x&(x-1);
}
return count;
}
- A.8
- B.9
- C.10
- D.12
该题目非常的亲切,why? 答案:A
因为最近做leetcode分享过该段代码:Number of 1 Bits - 计算二进制1的个数。同时你需要知道如果把一个十进制数字转换为2进制。
9999(十进制) = 10011100001111(二进制)
链接:[LeetCode] Number of 1 Bits & Reverse Integer - 整数问题系列
第5题 HTTP使用()来保证信息安全的。
- A.SET
- B.FPSEC
- C.SSL
- D.SSH
答案:C
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。
第6题 下列关于竞争和死锁正确的是:
- A.竞争一定导致死锁
- B.死锁一定由竞争引起
- C.竞争可能引起死锁
- D.防止死锁可以防止竞争
第7题 公司局域网上 ping www.meituan.com没有涉及到的网络协议是:
- A.ARP
- B.DNS
- C.TCP
- D.ICMP
ping命令和ICMP协议(Internet Control and Message Protocal,Internet控制消息协议)有着密切的关系,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。
使用ICMP协议中的回送请求和回答报文。ICMP在网路层,ping不使用高层的TCP或UDP协议。但要使用IP协议。ping命令是应用层直接使用网络层协议的例子。
如果主机A要Ping主机B,他会先检查自己的MAC地址,如果没有B的MAC地址,就会向外发送一个ARP广播包。
第8题 9个球,其中一个质量和其他不同,一个天平,最多几次查找能够找到?
- A.2
- B.3
- C.4
- D.5
个人感觉像二分查找问题
第9题 SQL92标准SQL,代码执行顺序是什么?
select foo,count(foo) from pokes where foo>10 group by
foo having count(*)>5 order by foo
- FROM->WHERE->GROUP BY->HAVING->ORDER BY->SELECT
- FROM->GROUP BY->WHERE->HAVING->ORDER BY->SELECT
- …
- …
第10题 多个源文件组成C程序,经过编辑、预处理、编译、链接生成可执行程序,下列哪个可以发现被调用的函数未定义?
- A.预处理
- B.编译
- C.链接
- D.执行
重点题目 正确答案:C
解析:本题考查的是程序编译过程的基本知识。对于编译型程序设计语言C,在程序编写完成后执行前,主要进行预处理、翻译为目标代码和链接库函数等关键步骤。在这三步中,预处理分析程序中的宏定义并替换宏引用,翻译主要针对一个编译单元(通常对应一个源文件)进行,将该编译单元翻译为中间代码,链接过程将各个编译单元中变量和函数的引用与其定义绑定,确保程序中使用的所有变量和函数都存在对应实体。所以,未定义的函数引用只能在链接过程中发现。
第11题 下列序列不可能是二叉树后序遍历的结果的是:
- A.1 2 3 4 5
- B.3 5 1 4 2
- C.1 2 5 4 3
- D.5 4 3 2 1
二叉树后序遍历即最后一个结点为root根结点,答案中A到B对应的5 2 3 1分别为各自的root根结点。
第12题 一个线性表:31、18、67、56、45、41。h(key)=key%7计算散列地址,存在A[0…6]中,采用线性探测方法解决冲突,成功概率查找的平均查找长度是多少?
- A.1.5
- B.1.7
- C.1.9
- D.2.1
- E.不同以上答案
考察:哈希表冲突解决方法和平均查找长度 答案:E
处理冲突的方法包括:开放定址法、再哈希法、链地址法。其中开放地址法包括线性探测再散列法、二次探测再散列法和随机探测再散列法。
按照h(key)=key%7计算:
31%7=3——1次
18%7=4——1次
67%7=4——2次
56%7=0——1次
45%7=3——4次
41%7=6——3次
平均查找长度:ASL=(1+1+2+1+4+3)/6=2,故答案选E。
第13题 下列哪个不是进程的基本状态?
- A.阻塞态
- B.执行态
- C.就绪态
- D.完成态
非常基本的操作系统三个状态题目,注意三态转换。答案:D
第14题 ip不合10.11.12.91/28同一子网的是:
- A.10.11.12.85/28
- B.10.11.12.88/28
- C.10.11.12.94/28
- D.10.11.12.97/28
子网划分、同一子网是重点问题 答案:D
/28是子网掩码的位数,IP地址可以看为二进制的32为数,你把IP二进制转换为二进制,如果他们的子网掩码位数都是一致的,则说明他们在同一子网下,如果不同即在不同子网内。
理论上是IP与子网做AND运算,得出结果一样就代表在同一网段内。例如:(转二进制方法整除2)
/28转换为二进制: 11111111,11111111,11111111,1111000
10.11.12.91中91转换为二进制位0101,1011 前4位与子网掩码AND为0101 0000
10.11.12.85中85 =》0101,0101 同样前四位为0101 0000
10.11.12.88中88 =》0101,1000 同样前四位为0101 0000
10.11.12.95中94 =》0101,1110 同样前四位为0101 0000
10.11.12.97中97 =》 0110,0001 输出结果为0110 0000
第15题 7个顶点有向图至少有多少条边才能成为一个强连通图?
- A.6
- B.7
- C.8
- D.12
答案:B 记住以下几点:
1.在一个无向图中,顶点的度数之和是边数的两倍;有向图中,任意一条边AB(A->B)都会给A提供一个出度,给B提供一个入度。故:
顶点的度之和 = 2*顶点入度之和 = 2顶点出度之和 = 顶点入度之和+顶点出度值和 = 边数的两倍
2.具有n个顶点的无向图,至少应该有(n-1)条边,才能确保是一个连通图,若采用邻接矩阵表示,该矩阵的大小是n*n
3.具有n个顶点的有向图,至少应该有n条弧才能确保是强连通图的。在有向图G中,如果对于任何两个不同的点a、b,从a到b和从b到a都存在路径,则称G是强连通图,强连通图必须从任何一点出发都可以回到原处,每个节点至少要一条出路。
第16题 0,1….500共501个数升序排列,每次去奇数序位数丢掉,剩下的数的奇数序位数丢掉,最后剩下的数是多少?
- A.249
- B.253
- C.255
- D.257
- E.499
- 不是以上答案
多选题
第17题 HTTP协议中POST和GET下列有哪些区别?
- A. 数据位置
- B. 明文密文
- C. 数据安全
- D. 长度限制
- E. 应用场景
第18题 C++ STL常用容器和类里,下面哪些可支持下标“[]”运算?
第19题 C代码开发,如下类型结构体:
typedef struct list_t {
struct list_t next;
struct__list_t prev;
char data[0];
}list_t;
最后一行 char data[0]的作用是:
- A. 方便管理内存缓冲区
- B. 减少内存碎片化
- C. 标识结构体结束
- D. 没有作用
第20题 a^b来表示a的b次幂,下列正确的是:
- A. 2.1^3.1 > 3.1^2.1
- B. 2.1^3.1 < 3.1^2.1
- C. 2.1^4.1 > 4.1^2.1
- D. 2.1^4.1 < 4.1^2.1
答案:BC
编程题
第21题 六种面额:1、5、10、20、50和100,每种币值数量足够多,编写程序求组成N元(N为0~10000的非负整数)的不同组合个数。
注意规定或枚举会出现RE超市 动态规划应该可以做
第22题 给定非负整型数组arr和整数limit,两次从arr中随机抽取元素(可能抽到一个同元素),获得整数x和y,计算和s=x+y,求所有不超过limit的s值中最大数。
int function(int *arr, int length,i nt limit) {
}
也是非常简单的一道题,需要注意的是可能抽到同一个元素,如[1],1,2 结果输出2。
总结
个人感觉美团的这套题目不错,但是考得比较广,包括:操作系统、数据库、网络、网络安全、编程、数学等知识。如果只专注于某课比较吃亏,同时编程题目不是很难,相对阿里、腾讯题目广度更广,但深度要浅些。也可能和我报的部门有关,最后上面答案是我自己做的,可能存在错误不足之处。
总之,一句话:希望对你有所帮助,能内推的尽量内推避免这些杂七杂八的知识~
(By:Eastmount 2015-9-20 晚上1点 http://blog.csdn.net/eastmount/)