2016年美团校招笔试题

一、单选题

1Java中关于finally块中的代码描述正确的是?

A. finally也可以在return后执行

B. 异常没有发生时才被执行

C. 如果try块后没有catch块时,finally块中的代码才会执行

D. 异常发生时才被执行

 

2、类a继承类b并重写b类的protected方法func时,afunc方法的访问修饰符可以是?

A. private/protected

B. protected/public

C. private/public

D. private/protected/public

 

3、下列代码的输出结果是?

boolean result=false?false:true==false?true:false;System.out.println("" + result + "");

A. true

B. null

C. false

D. 空字符串

 

4、下述解决死锁的方法中,属于死锁预防策略的是?

A. 银行家算法

B. 资源有序分配法

C. 资源分配图化简法

D. 撤销进程法

 

51024!末尾有多少个0

A. 297

B. 253

C. 243

D. 238

 

6、从n个数中找出最小的k个数(n>>k),最优平均时间复杂度是?

A. O(nlogk)

B. O(klogk)

C. O(nlogn)

D. O(n2)

 

7、下面代码输出的结果是?

public class NULL{
public static void print(){
System.out.println("MTDP");
}
public static void main(String[] args){
try{
((NULL)null).print();
}catch(NullPointerException e){
System.out.println("NullPointerException");
}
}
}

A. NullPointerException

B. MTDP

C. 都不输出

D. 无法正常编译

 

8、若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序是?

A. 2,3,4,1,6,5

B. 4,3,2,1,5,6

C. 3,2,4,1,6,5

D. 2,4,3,1,5,6

 

9、从装有3只红球,2只白球的盒子中任意取出两只球,则其中有并且只有一只红球的概率为?

A. 1/2

B. 1/5

C. 3/5

D. 2/5

 

10、用户表users中含有100万条数据,其中号码字段phone为字符型,并创建了唯一索引,且电话号码全部由数字组成,要统计号码头为158的电话号码的数量,下面写法执行速度最慢的是?

A. select count(*) from users where phone >= '158' and phone < '158A'

B. select count(*) from users where phone like '158%'

C. select count(*) from users where substr(phone,1,3) = '158'

D. 都一样快

 

二、多选题

11、进程和线程是操作系统中最基本的概念,下列有关描述错误的是?

A. 进程是程序的一次执行,而线程可以理解为程序中运行的一个片段

B. 由于线程没有独立的地址空间,因此同一个进程的一组线程可以访问该进程资源,这些线程之间的通信也很高效。

C. 线程之间的通信简单(共享内存即可,但须注意互斥访问的问题),而不同进程之间的通信更为复杂,通常需要调用内核实现

D. 线程有独立的虚拟地址空间,但是拥有的资源相对进程来说,只有运行所必须的堆栈,寄存器等。

 

12、关于TIME_WAIT状态的描述,下面说法错误的是?

A. TIME_WAIT出现在被动关闭一方,CLOSE_WAIT出现在被动关闭一方

B. TIME_WAIT状态到CLOSED状态,有一个超时设置,这个超时设置是2*MSL

C. TIME_WAIT确保有足够的时间让对端收到了ACK,如果被动关闭的那方没有收到ACK,就会触发被动端重发Fin,一来一去正好2MSL

D. 有足够的时间让这个连接不会跟后面的连接混在一起。

 

13、若一颗二叉树的前序遍历为a,b,c,d,e,后序遍历为c,e,d,b,c,则根节点的孩子节点是?

A. 只有a

B. 只有b

C. 只有e

D. e,c

 

14HTTP的会话有四个过程,请选出不是的一个?

A. 建立连接

B. 发出响应信息

C. 发出请求信息

D. 传输数据

 

15、假设你只有100Mb的内存,需要对1Gb的数据进行排序,最合适的算法是?

A. 归并排序

B. 插入排序

C. 快速排序

D. 冒泡排序

 

16、一台主机安装了1GB的内存,操作系统为支持MMU32Linux发行版,现在运行了abc三个进程,以下哪些使用内存的方式是可以实现的?

A. abc各申请1GB

B. a申请500MB b申请500MB c申请25MB

C. abc一共申请256GB

D. abc各申请2.5GB

 

17、下列属于红黑树性质的有?

A. 每个结点要么是红的,要么是黑的

B. 根结点是黑的

C. 每个叶结点(叶结点即指树尾端NIL指针或NULL结点)是黑的

D. 如果一个结点是红的,那么它的俩个儿子都是黑的

 

18、下面哪些是interface中合法方法定义?

A. public static void main(String [] args);

B. boolean setFlags(Boolean [] results)

C. private float get(int x)

D. static int getCount()

 

19、对一个由A,B,C,D随机组成的序列进行哈弗曼编码,据统计,各个元素的概率分别为:P(A)=0.4P(B)=0.35P(C)=0.2P(D)=0.05,请问该编码的平均期望编码长度为()bits

A. 1.45

B. 1.7

C. 1.85

D. 1.92

 

20、三个骰子摇到的点数之和为()的概率最大?

A. 9

B. 10

C. 11

D. 12

 

三、编程题

21、圆桌边放了一圈红包形成一个环形,每个红包的金额不同,围绕圆桌走一圈选择若干红包,规则是不能拿相邻的红包,请问能拿到红包最多的总金额是多少?(红包金额保存在一个数组中,认为数组第一个元素和最后一个元素相邻,形成闭合的环)

输入包括多行:
第一行为整数N, 0<N<20;
以下N行,每行为一个数组,每个元素为一个红包的金额,数值为0或100以内的正整数,以逗号分隔。如果是空行表明没有红包。如:
2
1,2
1,3,4


输出包括N行,每行一个数字,为拿到红包的总金额。如:
2
4


 

 

22、给定一颗多叉树,每个节点保存一个int类型数字且节点数字不重复,要求从上到下按层次打印每个节点的数字,每一层按从左到右的顺序。

要求:

1)实现一颗多叉树

2)根据自定义输入,构造多叉树

3)从左到右按层输出多叉树

输入包含多行,每行有空格隔开的多个数字,每一个数字为某一个父节点的值。后面N个数字为该父节点的所有子节点的值,按从左到右的顺序排列。所有节点的值为整数,取值范围[0, 100]。
如:
5 2 3
2 6 7 8
(5为根节点,有两个子节点;2为5的第一个子节点,包含三个子节点)


输出包含一行,用空格隔开
如:
5 2 3 6 7 8


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值