百度2021校招C /PHP研发工程师笔试卷(第三批)

这篇文章包含一系列关于编程和数据结构的题目,涉及STL配接器的识别、AVL树的插入调整、分页存储管理的页大小计算、二叉查找树的后序遍历、服务影响分析、哈希法避免冲突、安全性检测、查找时间复杂度、C++构造析构顺序、清理僵尸进程的方法、动态规划求最长公共子串、IP地址的网络号、PHP命名规则、动态规划解爬楼梯问题、代码执行次数分析、SQL查询多语言员工以及设计模式中的观察者模式。
摘要由CSDN通过智能技术生成

单选题

配接器是STL的一个重要配件,一种用来修饰容器、仿函数、迭代器接口的东西。以下那一项是配接器的是(D)。
A、Set
B、List
C、deque
D、Stack
2.
AVL树是平衡二叉查找树,在AVL树中任何节点的两个子树的高度最大差别为1,现有一结点序列(100,70,50,80,90,60),逐个插入一颗空的AVL树,插入过程中,树不断调整,则在上述情境下,分析正确的是( B )
A、树中插入90时,破坏平衡了,需要进行RL调整
B、树中插入90时,破坏平衡了,需要将90变为100和80的父节点
C、树中插入50时,破坏平衡了,需要将50变为70的父节点
D、树中插入80时,破坏平衡了,需要将80变为100的父节点
E、树中插入90时,破坏平衡了,需要将80变为根节点,90和100变为80的右孩子
3.
分页存储管理将进程的逻辑地址空间分成若干个页,并为各页加以编号,从0开始,若某一计算机主存按字节编址,逻辑地址和物理地址都是32位,页表项大小为4字节,若使用一级页表的分页存储管理方式,逻辑地址结构为页号(20位),页内偏移量(12位),则页的大小是(A )?页表最大占用( )?
A、4KB,4MB
B、5KB,5MB
C、6KB,6MB
D、7KB,7MB
4.
后序遍历为二叉树遍历方式中的一种,假设将{ 3, 8, 9, 1, 2, 6 }依次插入初始为空的二叉排序树。则该树的后序遍历结果是多少( B )?
A、1, 2, 8, 6, 9, 3
B、2, 1, 6, 9, 8, 3
C、1, 2, 3, 6, 9, 8
D、2, 1, 3, 6, 9, 8
5.
执行以下命令后,哪个服务最可能受影响:()
iptables -A INPUT -i eth0 -s 10.0.0.0/24 -p tcp --dport 22 -j DROP
A、sshd
B、mysqld
C、redis-server
D、httpd
6.
现有一个集合:A={16,76,63,58,40},使用Hash法存储该集合,现选取哈希函数:h(B)=B%C,即关键字对C(正整数)取余作为哈希地址,为了不引起hash冲突,C应该取值为多少(A)
A、11
B、7
C、8
D、5
7.
假设系统中有7个同类资源,进程 P1、P2 和 P3 需要的资源数分别为 6、5 和 2 。现在P1、P2 和 P3 已申请到的资源数分别为 3、2 和 1,则执行安全性检测算法的结果是(A)
A、不存在安全序列,系统处于不安全状态
B、存在多个安全序列,系统处于安全状态
C、存在唯一安全序列 P3、P1、P2,系统处于安全状态
D、存在唯一安全序列 P3、P2、P1,系统处于安全状态
8.
在含N个节点、高度为H的二叉查找树(BST)中进行查找的最坏时间复杂度为?(A)
A、O(H)
B、O(1)
C、O(N)
D、O(NH)
E、O(N/H)
9.
下列代码中的输出是(A):

class Base {
public:
Base()
{ cout<<"Constructing Base \n"; }
~Base()
{ cout<<"Destructing Base \n"; }
};
class Derived: public Base {
public:
Derived()
{ cout<<"Constructing Derived \n"; }
~Derived()
{ cout<<"Destructing Derived \n"; }
};

int main(void)
{
Derived *d = new Derived();
Base *b = d;
delete b;
return 0;
}

A
Constructing Base
Constructing Derived
Destructing Base

B
Constructing Base

Constructing Derived

Destructing Derived

Destructing Base

C
Constructing Base

Constructing Derived

Destructing Base

Destructing Derived

D
Constructing Derived

Constructing Base

Destructing Base

Destructing Derived

以下哪种方法可以用来清理僵尸进程©
A、向僵尸进程发送SIGKILL信号
B、向init进程发送SIGKILL信号
C、向僵尸进程的父进程发送SIGKILL信号
D、向僵尸进程发送SIGCHILD信号
11.
以下代码是计算最长公共子串的一个算法,试分析它的时间复杂度是多少?(D)

int findLongest(string A, string B)
{
    int n=A.size();
    int m=
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值