单选20题40分,编程3题60分
单选
- 代码运行结果
1
2
3
4
5
6
7
8
9
10
11
12
13public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
for(String key : map.keySet()) {
map.put(key, map.get(key) + 1);
}
for(String key : map.keySet()) {
// A 2 B 3 C 4
System.out.println(key + ": " + map.get(key));
}
} - linux查看文件后10个字符的命令
tail -c 10 文件名 或者 cat xxx.txt | tail -c 10 - mG大小的数组排序,存储空间只有mG大小,哪个排序算法会出错(哪个排序算法需要额外的空间)
归并排序、基数排序需要额外空间 - 代码运行结果子类重写方法时,抛出的异常不能比父类更宽泛
1
2
3
4
5
6
7
8
9class MyException extends Exception{
}
class Me {
void drink(){}
}
class MySon extends Me {
void eat() throws MyException {}
}
父类方法无异常声明时,子类重写方法不能新增编译时异常 - HTTP不适合实时聊天应用的原因
效率低,每次通信都要三次握手,协议开销大 - 29个节点的无向连通图,至少多少条边(28)
- c++代码运行结果
代码含义是,清楚最低位1,输出9999,一共有8个11
2
3
4
5
6
7
8int compute(int p) {
int num = 0;
while (p) {
num++; // 统计1的个数
p = p & (p - 1); // 清除最低位的1
}
return num;
} - 分页32位,页号18位,那么最大页长多少(2^14)
- ArrayList 和 LinkedList
LinkedList 底层是双向链表 - 代码运行结果
- 资源被永久移动的状态码是(301,302是临时移动资源)
- HTTPS中验证服务器身份的是(数字证书)
- Linux磁盘挂载
- Mysql
主键唯一且不为空
delete删除表数据,不删除表结构
TRUNCATE 清除所有表数据
视图不存储数据,但用于更新 - 求时间空间复杂度
- 二叉树,深度为i的节点值为i,高度为6,节点总数N为多少
- new 和 malloc的区别
new一个对象自动调用一次构造new[]
多个对象,每个对象自动调用一次构造
malloc 使用free释放内存,并不是用delete
new分配的内存用delete释放 - c++ 内联函数
inline 函数在编译时被展开
类中的成员函数会自动转成内联函数 - 顺序、链式、索引、散列存文件有什么特点
- 关系型数据库每张表几个主键(一个)
编程题
C卷的题目
- n长度的数组代表河流,每个位置0为空,1代表有石头,可以踩在石头上过河,求要到达河对面的最长一步最短为多少(15分)
模拟,看最大一步需要跨多大 - n行n列的01方阵,要求进行一些操作使A方阵和B方阵相等,一次操作能选择A一行或一列反转(0变成1,1变成0),最少几次能做到A等于B,若A不能变成B返回-1(1<=n<=4)(20分)
数据范围小,枚举,每行每列有两种选择,翻转或不翻转,翻转的顺序不影响结果 - 有两个n长度的数组a和b,a、b之间的距离为:0- i下标对(ai-bi)^2求和。一次操作能选择a或b中的一个元素加一或减一,最多能操作K次,求距离最小缩小到多少(0<=ai,bi,K<=1e9 0<=n<=1e5)(25分)