[笔试题目] 美团2015年9月后端开发工程师笔试题

由于题目是我通过草稿回顾,可能表述不清,但是内容大致一样。希望该博客内容对你有所帮助,题目所有权归美团公司所有,我只是想分享给大家学习,还望贵公司海涵~

面试职位

  • 应聘职位:后端开发工程师
  • 岗位描述:
    这里写图片描述
  • 岗位要求:
    这里写图片描述
  • 面试时间: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/)

你可能感兴趣的:(面试工作,笔试题目,后端开发,美团)