300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 哔哩哔哩校园招聘后端笔试卷(一)

哔哩哔哩校园招聘后端笔试卷(一)

时间:2019-02-22 08:46:21

相关推荐

哔哩哔哩校园招聘后端笔试卷(一)

1. 在Java中下面哪个对类的声明是错误的?(C)

A. public class MyClass{}

B. class MyClass extends MySuperClass implements YourInterface {}

C. class MyClass extends MySuperClass1, MySupperClass2 {}

D. abstract class MyClass implements YourInterface1, Youriterface2 {}

解析:

Java 类单继承 接口多实现

2. 以下哪个选项不是单例模式的优点?(D)

A. 减少内存开支

B. 减少系统调用

C. 避免资源的多重占用

D. 线程安全

解析:

单例模式不一定是线程安全的 单例模式的线程安全要通过volatile关键字和DCL机制来实现

3. 某台计算机连接了8个相同的设备,有N个进程在竞争使用,每个进程最多会同时占用3个设备,请问当N大于等于多少时,系统可能发生死锁?(C)

A. 2

B. 3

C. 4

D. 5

解析:

每个进程3台,不会产生死锁;对于三个进程,可以有两个进程分别获得3台,使其执行完释放后让第三个进程获得3台,所以也不会产生死锁;对于四个进程,假若每个进程各获得2台而同时需要另外一台,产生了死锁,所以产生死锁的最小值是4。

4. 以下哪种操作不会导致计算机从用户态切换至内核态?(B)

A. 访问内存时出现缺页异常

B. 对一个变量进行取模运算

C. 创建一个子进程

D. 读取硬盘中文件的内容

解析:

用户态切换到内核态的三种方式:

系统调用异常外围设备中断

5. TCP协议在常见的七层网络模型中属于哪一层?(A)

A. 传输层

B. 网络层

C. 会话层

D. 数据链路层

解析:

6. UDP是一种无连接的网络协议,那么一下哪个选项不是UDP协议报头的内容?(A)

A. 序号(Sequence Number)

B. 源端口号(Source port)和目标端口号(Destination port)

C. 报文长度(Length)

D. 校验和(Checksum)

解析:

UDP首部有8个字节,由4个字段构成,每个字段都是两个字节,

1.源端口: 源端口号,需要对方回信时选用,不需要时全部置0.

2.目的端口:目的端口号,在终点交付报文的时候需要用到。

3.长度:UDP的数据报的长度(包括首部和数据)其最小值为8(只有首部)

4.校验和:检测UDP数据报在传输中是否有错,有错则丢弃。

该字段是可选的,当源主机不想计算校验和,则直接令该字段全为0.

当传输层从IP层收到UDP数据报时,就根据首部中的目的端口,把UDP数据报通过相应的端口,上交给应用进程。

如果接收方UDP发现收到的报文中的目的端口号不正确(不存在对应端口号的应用进程0,),就丢弃该报文,并由ICMP发送“端口不可达”差错报文给对方。

7. 以下哪个排序算法是稳定的(C)

A. 快速排序

B. 选择排序

C. 冒泡排序

D. 堆排序

解析:

稳定排序算法

冒泡排序 插入排序 桶排序 归并排序

不稳定排序算法

选择排序 希尔排序 堆排序 快速排序

8. 一颗有512个节点的完全二叉树的高度是多少(B)

A. 9

B. 10

C. 11

D. 12

解析:

9层满二叉树的节点数 2^9 - 1 = 511

所以有512节点的完全二叉树高度为10

9. 以下数据库事务的隔离级别中哪一个可能造成脏读(A)

A. 读取未提交内容(Read Uncommited)

B. 读取提交内容(Read Committed)

C. 可重复读(Repeatable Read)

D. 可串行化(Serializable)

解析:

快速理解 脏读、不可重复度、幻读

/qq_33591903/article/details/81672260

10. 如果想列出当前目录以及子目录下所有扩展名为“.txt”的文件,那么可以使用以下哪个命令?(A)

A. find . -name “.txt"

B. grep “.txt” -r *

C. ls ".txt”

D. less “*.txt”

解析:

find (目录) [-type d | f] (文件夹 | 文件) -name (名称,可使用正则表达式)

11. 以下哪一项不是c++11 新引入的容器(B)

A. std::array

B. std::map

C. std::unordered_map

D. std::forward_list

解析:

C++11新增容器以及元组

/xenny/p/9689784.html

12. 使用gcc编译一份C代码的过程,报错提示"undefined reference to ‘XXXXX’",这是哪个阶段出错了?(D)

A. 预处理

B. 编译

C. 汇编

D. 链接

解析:

GCC编译:

预处理->编译->连接->加载

预处理:处理程序中#开头的内容编译:程序构建过程, 生成.o文件,gcc 依赖顺序问题(从后向前),如果文件a依赖于文件b,那么编译的时候必须把a放前面,b放后面。链接:将所有的对象文件和库串联起来,成为可运行程序。静态库已经植入程序,共享库在程序中包含其引用。加载:程序启动,引用共享库,GCC编译器假定所有的共享库以lib开头,以.so或者.a结尾。

undefined reference to ‘XXXXX’ 即没有找到对于XXXXX的引用,链接阶段错误

13. 在以下哪种容器上,不能应用二分查找算法?(C)

A. std::vector

B. std::deque

C. std::list

D. std::array

解析:

std::list是一个双向链表,因此它的函数也都要从链表的角度来进行理解。

14. 访问主存上的数据,大概需要多少个机器时钟?(C)

A. 2

B. 10

C. 100

D. 10000

解析:

这啥鸭。不知道不清楚不明白。我不会= =

15. 以下哪一项不能有效利用程序的局部性?(B)

A. 顺序读取数据对象

B. 将相关代码拆散到多个C文件中

C. 精简程序binary的大小

D. 将主要的计算逻辑集中在内部循环并做优化

解析:

将注意力集中在内部循环上,大部分计算与存储器访问都放在那里按照数据在存储器的顺序读,使空间局部性最大一旦读入某数据,尽可能多的使用它,使时间局部性最大缓存命中率只是影响性能的一个重要因素,存储器访问数量也很重要,两者需要折中考虑

16. 以下哪一项不会导致程序发生“段错误”?(A)

A. 忘记释放已分配的内存块

B. 引用不存在的变量

C. 引用已经被释放的内存块

D. 访问数组越界

解析:

忘记释放已分配的内存块 导致 内存泄露

17. “定义了一系列算法,并将每个算法封装起来,使它们可以相互替换”是指以下哪种设计模式?(B)

A. 模板模式

B. 策略模式

C. 状态模式

D. 命令模式

解析:

/design-pattern/design-pattern-tutorial.html

18. ! 的末尾有多少个零?(B)

A. 501

B. 502

C. 503

D. 504

解析:

!=1*2*3*4*5*…* ——什么时候会计算结果的末尾增加0?2*5,10,15*2也就是5的倍数乘一个偶数时(10的倍数自带0),其中25*4又会加两个0,125*8会加三个0,5,25,125又分别有1,2,3个因子5.即0的数量取决于共有多少个因子5(例如:50=5*5*2有两个因子5)

/5=403,有403个数至少有一个因子5,可以和偶数凑0

在这403个数中

403/5=80有80个数有两个因子5,即可以跟偶数再凑一个0

依次类推

80/5=16

16/5=3

403+80+76+3=502

可以凑502个数

19. tcp连接建立需要几次握手(C)

A. 1

B. 2

C. 3

D. 4

解析:

建立连接 3次握手

释放连接 4次挥手

TCP建立连接和释放连接过程: /dj0325/p/8490293.html

20. 以下哪种TCP状态需要等待2MSL(A)

A. TIME_WAIT

B. CLOSE_WAIT

C. CLOSING

D. FIN_WAIT

解析:

TCP释放连接时为什么time_wait状态必须等待2MSL时间:/huenchao/p/6266352.html

21. 路由器工作在网络协议的哪一层(C)

A. 物理层

B. 链路层

C. 网络层

D. 应用层

解析:

网络层:路由器、防火墙

数据链路层:网卡、网桥、交换机

物理层:中继器、集线器

22. 虚拟内存的容量只受(D)的限制

A. 物理内存的大小

B. 磁盘空间的大小

C. 数据存放的实际地址

D. 计算机地址位数

解析:

虚拟存储器的容量由CPU的地址长度决定

23. 以下哪个步骤会产生汇编代码文件(B)

A. 预处理

B. 编译

C. 汇编

D. 链接

解析:

编译生成汇编代码,汇编对汇编代码进行处理,生成机器语言代码。

24. 若处理器有32位地址,则它的虚拟地址空间为(B)

A. 2G

B. 4G

C. 512M

D. 256M

解析:

2^32/1024/1024/1024=4G

25. 按照二叉树的定义,具有3个结点的二叉树有几种。(C)

A. 3

B. 4

C. 5

D. 6

解析:

26. 以下哪个不是栈的基本操作(A)

A. 删除栈底的元素

B. 删除栈顶元素

C. 判断栈是否为空

D. 栈置空

27. 堆排序的时间复杂度为(B)

A. n

B. nlogn

C. logn

D. n^2

解析:

堆排序:/Java3y/p/8639937.html

28. 有6个元素6,5,4,3,2,1的顺序进栈,问下列哪一个不是合法的出栈序列(C)

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

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

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

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

解析:

对于C来说 6出栈前5必须出栈,所以C错误(栈先进后出)

29. 原地翻转句子中单词的顺序,但单词内字符的顺序不变。要求:空间复杂度O(1),时间复杂度O(n)。

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String str = br.readLine();String[] strings = str.split(" ");String res = "";for (int i = strings.length - 1; i >= 0; i--) {if (i==0){res += strings[i] ;}else{res += strings[i]+ " ";}}System.out.println(res);}}

30. 输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。

解析:

参考链接:/qq_33271461/article/details/84965671

31. 有N件物品,它们的重量w分别是w1,w2,…,wn,它们的价值v分别是v1,v2,…,vn,每件物品数量有且仅有一个,现在给你个承重为M的背包,求背包里装入的物品具有的价值最大总和?

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main {public static void main(String[] args) throws IOException{BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String s1 = br.readLine();String s2 = br.readLine();String s3 = br.readLine();String s4 = br.readLine();String[] w = s3.split(" ");String[] v = s4.split(" ");int[] res = new int[Integer.parseInt(s2) + 1];for (int i = 0; i < w.length; i++) {for (int j = Integer.parseInt(s2); j >0 ; j--) {if (j >= Integer.parseInt(w[i])){res[j] = Math.max(res[j], res[j-Integer.parseInt(w[i])] + Integer.parseInt(v[i]));}}}System.out.println(res[Integer.parseInt(s2)]);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。