一、单选题
1、Java中关于finally块中的代码描述正确的是?
A. finally也可以在return后执行
B. 异常没有发生时才被执行
C. 如果try块后没有catch块时,finally块中的代码才会执行
D. 异常发生时才被执行
2、类a继承类b并重写b类的protected方法func时,a中func方法的访问修饰符可以是?
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. 撤销进程法
5、1024!末尾有多少个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,一来一去正好2个MSL
D. 有足够的时间让这个连接不会跟后面的连接混在一起。
13、若一颗二叉树的前序遍历为a,b,c,d,e,后序遍历为c,e,d,b,c,则根节点的孩子节点是?
A. 只有a
B. 只有b
C. 只有e
D. 有e,c
14、HTTP的会话有四个过程,请选出不是的一个?
A. 建立连接
B. 发出响应信息
C. 发出请求信息
D. 传输数据
15、假设你只有100Mb的内存,需要对1Gb的数据进行排序,最合适的算法是?
A. 归并排序
B. 插入排序
C. 快速排序
D. 冒泡排序
16、一台主机安装了1GB的内存,操作系统为支持MMU的32位Linux发行版,现在运行了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.4,P(B)=0.35,P(C)=0.2,P(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