2024年春招Java面试选择题及答案解析---快来看看你能做对多少?_下列java声明合法的是

    int a = 5, b = 5;
    System.out.println("a + b = " + a + b);
    System.out.println("a - b = " + a - b);
    System.out.println("a \* b = " + a \* b);
    System.out.println("a / i2 = " + a / b);
}

}


A、System.out.println("a + b = " + a + b);  
 B、System.out.println("a - b = " + a - b);  
 C、System.out.println("a \* b = " + a \* b);  
 D、System.out.println("a / i2 = " + a / b);



正确答案:B


### 9.代码片段:



import java.util.*;
public class TestSet {
enum Num {ONE, THREE, TWO}
public static void main(String[] args) {
Collection coll = new LinkedList();
coll.add(Num.THREE);
coll.add(Num.ONE);
coll.add(Num.THREE);
coll.add(Num.TWO);
coll.add(Num.TWO);
Set set = new HashSet(coll);
System.out.println(set);
}
}


关于set变量的描述哪个选项是正确的?  
 A、set变量只包含了coll集合中的3个变量,并且顺序与coll里的相同。  
 B、set变量只包含了coll集合中的3个变量,但顺序无法确定。  
 C、set变量包含了coll集合中的5个变量,但顺序无法确定。  
 D、set变量包含了coll集合中的5个变量,并且顺序与coll里的相同。



正确答案:B


### 10.主机A与主机B已建立TCP连接,A的cwnd(拥塞窗口)大小初始值为1KB,ssthresh (阈值)为16KB,B的rwnd (接收缓存窗口)初始值为8KB,一个最大报文段为1KB,假设数据传输过程中未出现超时,经过3个RTT(3轮传输)后,且B尚未从缓存中取出任何数据时候,主机A的发送窗口大小为()


A、1 KB  
 B、2 KB  
 C、3 KB  
 D、4 KB



正确答案:A


官方解析:  
 A在发送数据的过程中,A的cwnd大小始终没有达到阈值(16KB),所以A每经过一轮传输,cwnd就翻倍,所以A一共发送了1KB+2KB+4KB=7KB的数据,但是题目中说明了B并未从接收缓存中取出数据,所以B的接收缓存为8KB-7KB=1KB。A的发送窗口同时受cwnd和rwnd限制,即A=min{cwnd,rwnd},所以A的发送窗口为1KB


### 11.借助队列采用非递归的方式对二叉树进行层次遍历,遍历方向为从左至右,在遍历过程中,队列中的元素最多为多少个()


二叉树的结构如图所示:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/35613809b6dd4da8b3b27ae5d68b1b7d.png)


A、5个  
 B、6个  
 C、7个  
 D、8个



正确答案:A


官方解析:  
 要对二叉树进行层次遍历,需要借助一个队列,先将二叉树根节点入队,完成初始化。下面出队并访问该节点,若该节点有左子树,将左子树根节点入队,若该节点有右子树,将右子树根节点入队,如此反复直到队列为空。  
 具体遍历操作如下表所示:


![在这里插入图片描述](https://img-blog.csdnimg.cn/d711eac8d7d6496b9a08335a7ba049ff.png)


### 12.在一颗普通的树上,a 与 b 互为兄弟节点。将树转为二叉树后,下列哪种情形不可能发生()。


注:在将普通的树转换为二叉树过程中,节点在删除与自身子节点的连线时,只保留与最左侧子节点之间的连线。  
 A、a 是 b 的右孩子  
 B、a 是 b 的左孩子  
 C、a 是 b 的祖先节点  
 D、b 是 a 的祖先节点



正确答案:B


官方解析:  
 将普通的树转为二叉树的步骤如下:


1. 加线。在所有兄弟节点之间加一条连线  
 2.每个节点都删除与自身子节点的连线,只保留与最左侧子节点之间的连线(这一点题目中已经说明)。  
 转换过程如下图所示  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b57298d032a04dcd8853fd8ed767dce6.png)  
 根据以上步骤可知,转换为二叉树后,b 可以为 a 的父节点,也可以为 a 的祖先节点。如果将 a 与 b 调换一下位置,不会破坏题目中的条件,即转换前 a 与 b 还是兄弟节点。此时 a 可以为 b 的父节点,也可以为 b 的祖先节点  
 所以 选项A、C、D 均有可能。


根据转换规则,如果转换为 a 是 b 的左孩子,那么转换前 a 必须是 b 的最左侧的子节点。  
 转换过程如下图所示:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/34663d6b5ea745c8a5c660a3eb25ec1c.png)  
 所以选项 B 不成立。


### 13.这里有一张中国高校院士数目信息表(院士姓名,高校所在省区)(只展示了部分数据,其余大量数据形式相同)


±----------±--------+  
 | name |province |  
 ±----------±--------+  
 | ad | GD |  
 | ws | ZJ |  
 | ge | FJ |  
 | MO | SX |  
 | wi | ZJ |  
 ±----------±--------+  
 查询出哪个省区,出生院士人数最多?  
 A、select province,count(*) as count from college group by province limit 1;  
 B、select province,count(*) as count from college group by province order by count desc limit 1;  
 C、select province,count(*) as count from college order by count desc limit 1;  
 D、select province,count(*) as count from college group by province order by count limit 1;



正确答案:B


### 14.二叉树的中序遍历为[5,4,1,2,3,6],后序遍历为[4,5,2,6,3,1],新建平衡二叉树,按二叉树的前序遍历顺序将元素插入到平衡二叉树中,对于得到的平衡二叉树说法不正确的是()


A、有3个叶子结点  
 B、度为1的结点只有结点5  
 C、前序遍历为[4,2,1,3,6,5]  
 D、后序遍历为[1,3,2,6,5,4]  
 正确答案:C


官方解析:  
 由中序遍历和后序遍历的得到二叉树如下图,其前序遍历为[1,5,4,3,2,6]  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/91ad46155d994be2b4fa8317afd670b8.png)  
 平衡二叉树构建如下图:其前序遍历为[4,2,1,3,5,6],所以选C  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/455dead0bcb143a8892190f5b3e4e97c.png)


### 15.请你判断一下这段C++代码的实现的功能是什么样的?



int func(int n) {
n && (n += func(n-1));
return n;
}


A、没有递归出口,无法结束  
 B、实现了n+n-1+…2+1的功能  
 C、实现了n-(n-1)+(n-2)-…-2+1的功能  
 D、实现了求n的二进制里面1的个数的功能  
 E、实现了求n的二进制里面0的个数的功能



正确答案:B


官方解析:通常实现递归的时候我们都会利用条件判断语句来决定递归的出口,但由于题目的限制我们不能使用条件判断语句,那么我们是否能使用别的办法来确定递归出口呢?答案就是逻辑运算符的短路性质。


以逻辑运算符 && 为例,对于 A && B 这个表达式,如果 A 表达式返回 False ,那么 A && B 已经确定为 False ,此时不会去执行表达式 B。同理,对于逻辑运算符 ||, 对于 A || B 这个表达式,如果 A 表达式返回True ,那么 A || B 已经确定为 True ,此时不会去执行表达式 B。


利用这一特性,我们可以将判断是否为递归的出口看作 A && B 表达式中的 A 部分,递归的主体函数看作 B 部分。如果不是递归出口,则返回True,并继续执行表达式 B 的部分,否则递归结束。  
 其实这里就看后面的n+=func(n-1)的功能,很明显是递归实现1+2+…n-1+n的功能


### 16.以下主机可以和202.115.112.218/28直接通信的是( )。


A、202.115.112.205/28


B、202.115.112.225/28


C、202.115.112.195/28


D、202.115.112.212/28



正确答案:D


官方解析:  
 本题考察IP地址掩码的计算,掩码与IP地址做与运算可知,能和202.115.112.218/28直接通信(在同一个网段)的IP地址为202.115.112.208 ~ 202.115.112.223,因此只有D符合。


### 17.网络协议之间有规定的层次关系,下面选项中层次关系正确的是,上一层的网络的底层应该有下一层( )。


A  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/601e6818985b44998e694e2f91a3020c.png)


B  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3e6f81fbbfbc4d719731d67c4382324b.png)


C  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/f97febeec69d4dc4990914fc9e837ecf.png)


D  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/effd32958ed349c8b701dc6be47d826d.png)



正确答案:B


官方解析:  
 题目中出现的各个协议层次如图所示,因此只有B是正确的。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/3160e2c495c44d879504d0e2eca82e60.png)


### 18.某个有向图如下,从顶点v1出发对其进行深度优先遍历,可能得到的遍历序列是(1);从顶点v1出发对其进行广度优先遍历,可能的到的序列是(2)


![在这里插入图片描述](https://img-blog.csdnimg.cn/c69d6351260640f6a124d02cd72a21dd.png)  
 ①v1 v2 v3 v4 v5  
 ②v1 v3 v2 v4 v5  
 ③v1 v3 v4 v5 v2  
 ④v1 v3 v4 v2 v5  
 A、(1)②③④ (2)①  
 B、(1)①③ (2)①②  
 C、(1)①③④ (2)①②  
 D、(1)①③ (2)②④



正确答案:C


官方解析:  
 ①③④可由深度优先遍历得到,①②可由广度优先遍历得到,所以选C


### 19.有学生表如下:



CREATE TABLE students (

   s_id VARCHAR(20) PRIMARY KEY,

   s_name VARCHAR(20) NOT NULL DEFAULT '',

   s_birth VARCHAR(20) NOT NULL DEFAULT '',

   s_sex VARCHAR(10) NOT NULL DEFAULT ''

);


现要查询students表的第16~20条数据,正确的查询语句是  
 A、select \* from students limit 15,5;  
 B、select \* from students limit 16,5;  
 C、select \* from students limit 16,20;  
 D、select \* from students limit 15,20;



正确答案:A


官方解析:  
 limit是mysql的分页函数,可以快速选中我们想要的数据  
 它的用法主要是两种  
 limit x,表示选中前x条数据  
 limit x,y表示选中第x+1到x+y条数据,或者理解成从第x+1条数据开始(包括第x+1)往后的y条数据  
 因此只有limit 15,5表示第16到20的数据


### 20.请问以下序列中能构成最小堆的是


A、4, 5, 7, 7, 8, 10, 4  


### 最后

在面试前我花了三个月时间刷了很多大厂面试题,最近做了一个整理并分类,主要内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。



包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。

*   HTML5新特性,语义化

*   浏览器的标准模式和怪异模式

*   xhtml和html的区别

*   使用data-的好处

*   meta标签

*   canvas

*   HTML废弃的标签

*   IE6 bug,和一些定位写法

*   css js放置位置和原因

*   什么是渐进式渲染

*   html模板语言

*   meta viewport原理

![](https://img-blog.csdnimg.cn/img_convert/64590c67cb47cd552a892ba710477f64.png)



![](https://img-blog.csdnimg.cn/img_convert/17fdfcb90fad04acc5e7273d1f853880.png)


加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值