百度23届秋招研发岗A卷
百度23届秋招研发岗A卷 2024/12/16
1.下面关于 SparkSQL 中 Catalyst 优化器的说法正确的是(ABC)
A.Catalyst 优化器利用高级编程语言功能(例如 Scala 的模式匹配)来构建可扩展的查询优化器
B.Catalyst 包含树和操作树的规则集
C.Catalyst 有不同的规则集处理不同的查询阶段
D.Catalyst 没有特定的库来处理关系查询
2.编程题-小红走矩阵
小红拿到了一个字符矩阵,矩阵仅由'r'、'e'、'd'三种字符组成。她初始站在左上角,每次可以走到一个相邻的字符上(每个字符上、下、左、右最多4个相邻)。但有个限制,小红不能从'r'走到'd',从'e'走到'r',从'd'走到'e',其他情况都能走。
小红想知道,从左上角走到右下角至少需要多少步?
#include <bits/stdc++.h>using namespace std;/*
思路
类似于迷宫问题,最少移动步数 bfs寻找最优解
*/int n,m;
char g[505][505];
bool vis[505][505];
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};struct node{int x,y,cnt=250001; //从原点到该位置的最短步数
};//检查是否可以由b得到a
bool check(char a,char b){if((a=='d'&&b=='r')||(a=='r'&&b=='e')||(a=='e'&&b=='d')) return false;return true;
}
int bfs(int x,int y){queue<node> q;q.push({x,y,0});vis[x][y]=1;while(!q.empty()){node now=q.front(); q.pop();if(now.x==n&&now.y==m) return now.cnt;for(int i=0;i<4;i++){int nex=now.x+dx[i],ney=now.y+dy[i];if(nex<=0||nex>n||ney<=0||ney>m) continue;if(!vis[nex][ney]&&check(g[nex][ney],g[now.x][now.y])){//可以移动q.push({nex,ney,now.cnt+1});vis[nex][ney]=1;}}}return -1;
}
int main() {cin>>n>>m;for(int i=1;i<=n;i++){string s;cin>>s;for(int j=0;j<m;j++){g[i][j+1]=s[j];}}cout<<bfs(1,1);return 0;
}
3.下面关于 Spark 的说法错误的是(AD)
A.RDD 的特点:可分区、可序列化、可修改
B.Spark Job 默认的调度模式是 FIFO
C.Spark 比 MapReduce 框架性能快
D.Spark R 是 Spark 的四大组件之一
解析
RDD 的特点:可分区、可序列化、可持久化,不可修改
Spark 的四大组件:1、SparkStreaming:针对实时数据进行流式计算的组件;2、SparkSQL:用来操作结构化数据的组件;3:GraphX,Spark面向图计算提供的框架与算法库;4:MLlib,一个机器学习算法库。
4.如下4个选项表示了四种入栈次序,以及最少需要的栈空间len,最后保证都可以得到出栈序列“sequence”,len值错误的是(C)
A.cneuqese 7
B.uqeseecn 4
C.seecneuq 5
D.eneesquc 5
5.一组记录的关键码为(21,88,19,45,13,25,66,33,18),则利用快速排序的方法,以第一个记录为基准,从小到大排序得到的一次划分结果为(B)
A.18,13,19,21,45,25,66,88,33
B.18,13,19,21,45,25,66,33,88
C.18,13,19,45,21,25,66,33,88
D.18,13,19,21,25,45,33,66,88
解析
首尾分别设置指针i和j,与基准元素比较,如果j指向元素小于基准,那么将j指向元素交换到前面,然后切换到i指针同理比较;如果j指向元素大于等于基准,那么位置不变,j--。
6.给定数组 [1,5,11,30,45,47,47,50],若要查找某一元素是否存在,使用二分查找,则至多需要查找(4)次。
7.当一个 B 类地址的子网掩码为 255.255.252.0,每个子网最多可以有多少主机数? 当一个 C 类地址的子网掩码为 255.255.255.252,每个子网最多可以有多少主机数(1022,2)
8.小明居家办公时需要将计算机本地的ssh公钥文件(id_rsa.pub)安装到实验室远程主机(root,ip 地址为:192:168:7:2)对应的账户下,可以通过以下哪个命令完成(C)
A.ssh-add -i ~/.ssh/id_rsa.pub root@192.168.7.2
B.ssh-agent -i ~/.ssh/id_rsa.pub root@192.168.7.2
C.ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.7.2
D.ssh-keygen -i ~/.ssh/id_rsa.pub root@192.168.7.2
解析
本题考查Linux的系统安全。
ssh-add适用于把专用密钥添加到ssh-agent的高速缓存中,A错误。
ssh-agent适用于保存公钥身份验证所使用的私钥,B错误。
ssh-copy-id可以把本地的ssh公钥文件安装到远程主机对应的账户下,C正确。
ssh-keygen适用于ssh生成、管理和转换认证密钥,D错误。
9.下列所给选项中,哪个不是MBR的组成部分(A)
A.开始标志
B.主引导程序
C.分区表
D.结束标志
解析
本题考查Linux的磁盘管理。
MBR主引导记录(Master Boot Record)由3个部分组成:
1)主引导程序,负责从活动分区中装载,并运行系统引导程序,B选项包括;
2)分区表,含4个分区项,每个分区表项长16字节,C选项包括;
3)结束标志,占2个字节,固定为55AA,D选项包括。
MBR是位于磁盘最前边的一段引导,没有开始标志,故题解为A。
10.牛牛系统中现在有三个进程,分别是牛1、牛2和牛3,这三个进程共享同一个缓冲区来完成消息处理,牛1负责把消息放入缓冲区,牛2负责在缓冲区中对消息进行加工,牛3负责把消息从缓冲区读出,现请问牛1和牛3之间的制约关系是(互斥和同步关系)、
解析
并发进程因为共享资源而产生相互之间的制约关系,可以分为两类:
①互斥关系,指进程之间因相互竞争使用独占型资源(互斥资源)所产生的制约关系;
②同步关系,指进程之间为协同工作需要交换信息、相互等待而产生的制约关系。
本题中两个进程之间的制约关系是同步关系,进程牛3必须在进程牛1将数据放入缓冲区后才能从缓冲区中读出数据。
此外,共享缓冲区是互斥访问的,所以它们也具有互斥关系。
11.关于下面 C++ 代码的执行结果说法正确的是(CD)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|
A.程序输出中包含 ~Test
B.程序使用空指针调用 print1,因此会崩溃
C.程序使用空指针调用 print2,因此会崩溃
D.如果将 virtual 去掉,那么程序就能正常执行
解析
本题考察对象成员函数和虚函数的理解。
Test() = default; 表示编译器会自动生成一个默认构造函数,这个构造函数不接受任何参数,也不执行任何操作。
~Test() 是析构函数,当一个 Test 类的对象被销毁时(例如对象超出作用域、被删除等情况),这个析构函数就会被调用。
print1 是一个普通成员函数,保存在代码区,编译后已经存在,且没有使用类中的任何成员,因此可以使用空指针调用
print2 是一个虚函数,通过虚函数表进行定位,而虚函数表的指针需要对象创建才有,因此空指针调用虚函数无法找到虚函数表,会出现异常
如果将 print2 变为普通函数,那么就可以正常使用(print2 也没有使用任何类成员)。因此 D 选项正确。
12.下列说法中错误的是(BD)
A.不可以将构造函数声明为虚函数
B.当构造一个对象时先执行构造函数体内的内容,再初始化各个成员变量
C.构造函数不能带返回值,也不能返回void
D.类成员变量初始化顺序由构造函数初始化列表顺序决定
解析
构造函数不能被声明为虚函数,因为虚函数的调用依赖于虚表(vtable),而虚表是在对象构造完成后才被设置好的。因此,构造函数不能是虚函数。
B选项当构造一个对象时,先初始化各个成员变量,再执行构造函数体内的内容;D选项,类成员变量初始化顺序由成员变量在类定义中的声明顺序决定的;
构造函数不返回任何值,甚至连void也不能作为返回类型。构造函数的目的是初始化对象,而不是返回值。
13.在 C++ 中,以下关于静态成员函数与普通成员函数区别,说法正确的是(ABC)
A.普通成员函数有 this 指针
B.普通成员函数可以访问类中任意成员
C.静态成员函数没有 this 指针
D.静态成员函数可以访问类中任意成员
解析
A. 普通成员函数有this指针:正确。普通成员函数(非静态成员函数)确实有一个隐含的this指针,它指向当前对象。这个this指针是成员函数的第一个参数,虽然它不需要在函数参数列表中显式声明。
B. 普通成员函数可以访问类中任意成员:正确。普通成员函数可以访问类中的任意成员,包括静态成员和非静态成员。
C. 静态成员函数没有this指针:正确。静态成员函数没有this指针,因为静态成员函数不属于任何特定的对象,它们属于类本身。
D. 静态成员函数可以访问类中任意成员:错误。静态成员函数只能访问静态成员变量和其他静态成员函数。它不能直接访问非静态成员变量,因为非静态成员变量属于对象,而静态成员函数不属于任何特定的对象。
20.在Linux中,有一个名为test的文件如下所示,执行awk '{print $NF}' test命令将输出
(
1,2,3,4
5,6,7,8
9,10,11,12
end
)
test1 1,2,3,4
test2 5,6,7,8
tet3 9,10,11,12
tst4 13,14,15,16 end
解析
awk '{print $NF}' 是一个 awk 命令,用于打印每行的最后一个字段。
这里的 $NF 是一个特殊变量,表示当前行的最后一个字段
当你运行这个命令时,awk 会读取输入的每一行,分割成字段(默认使用空白字符作为分隔符),然后打印每行的最后一个字段。
14.查询student_table中男生、女生的平均年龄(忽略age为NULL的记录),以下正确的是(B)
表中全部记录如下:
| 1 2 3 4 5 6 7 8 9 10 |
|
A.SELECT sex ,average(age) FROM student_table WHERE sex IS NOT NULL GROUP BY sex ;
B.SELECT sex ,avg(age) FROM student_table WHERE sex IS NOT NULL GROUP BY sex ;
C.SELECT sex ,sum(age)/count(*) FROM student_table WHERE sex IS NOT NULL GROUP BY sex ;
D.SELECT sex ,sum(age)/count(sex) FROM student_table WHERE sex IS NOT NULL GROUP BY sex ;
解析
CD:错误,count(*)是全部记录,count(sex) 是sex不为NULL的记录,需要用【sum(age)/count(age)】才正确!!avg默认不计入NULL;
15. 如果要选择Student_A和Student_B表中公共部分,并按照class_id降序输出,请问该如何补全以下这段SQL语句(A)(注明:只需要输出Student_A或Student_B的student_id和student_name字段)SELECT student_id, student_name FROM Student_A __________________;
A.INTERSECT SELECT student_id, student_name FROM Student_B ORDER BY class_id DESC;
B.EXCEPT SELECT student_id, student_name FROM Student_B ORDER BY class_id DESC;
C.INTERSECT SELECT student_id, student_name FROM Student_B ORDER BY class_id;
D.NOT INTERSECT SELECT student_id, student_name FROM Student_B ORDER BY class_id DESC;
解析
可以使用INTERSECT获取两个集合中公共部分。
A选项正确,B选项使用的是EXCEPT表示差集不符合题意,C选项是升序排序不符合题意,D选项为非公共部分,不符合题意,故本题选择A。
16.下列关于SQL的描述,错误的是(D)
A.SQL (Structured Query Language:结构化查询语言) 是用于管理关系数据库管理系统(RDBMS)
B.SQL 的范围包括数据插入、查询、更新和删除,数据库模式创建和修改,以及数据访问控制
C.关系型数据库中,虽然存在着多种不同版本的 SQL 语言,但它们都以相似的方式共同地来支持一些主要的命令(比如 SELECT、UPDATE、DELETE、INSERT、WHERE)
D.Mysql、Oracle、Redis都是关系型数据库,都有相应的SQL语言
解析
Mysql和Oracle数据库是典型的关系型数据库,但Redis是非关系型数据库,是一个遵守BSD 协议的高性能的 key-value 键值对类型的数据库
相关文章:
百度23届秋招研发岗A卷
百度23届秋招研发岗A卷 2024/12/16 1.下面关于 SparkSQL 中 Catalyst 优化器的说法正确的是(ABC) A.Catalyst 优化器利用高级编程语言功能(例如 Scala 的模式匹配)来构建可扩展的查询优化器 B.Catalyst 包含树和操作树的规则集…...
metrics.roc_curve函数介绍
目录 函数介绍使用方法 函数介绍 metrics.roc_curve 是 scikit-learn 中的一个函数,用于计算接收者操作特征曲线(Receiver Operating Characteristic, ROC)曲线的参数。 具体来说,metrics.roc_curve 函数接受真实的标签和预测标…...
stm32进硬件错误怎么回事
STM32进入硬件错误状态,通常是由一些特定的编程或硬件问题引起的。以下是一些可能的原因及相应的解决方法: 可能的原因 数组越界操作:在编程过程中,如果数组访问超出了其定义的边界,可能会导致内存访问错误࿰…...
【网络安全】掌握 Active Directory 攻防审计实操知识点
掌握 Active Directory 攻防审计实操知识点 在深入了解 Active Directory 之前,我们需要先掌握网络基础设施的映射和资源访问管理方式。这一切通常通过目录服务 (Directory Services) 实现,目录服务在组织内提供网络资源的映射和访问。轻量目录访问协议…...
vscode不同项目使用不同插件
转载请注明出处:小帆的帆的博客 在使用vscode开发不同项目时可能会用到不同的插件。手动管理不够优雅,本文介绍使用Profiles的方式的来管理不同项目的插件。 手动管理不同项目的插件 本来vscode安装了有三个插件 这时需要新建一个项目,新…...
oracle存储过程中遇到的各种问题及解决方案集锦
oracle存储过程中遇到的各种问题及解决方案集锦 1、在oracle数据库中,为了存储过程和数据表的关键字不冲突,数据表的别名不能加AS: select a.appname from appinfo a; --正确 select a.appname from appinfo as a; --错误2、在存储过程中&am…...
PHP+MySQL 学生信息管理系统
目录 MySQL建表指令 主页面展示 主页面源代码如下 增:添加学生信息 添加html如下 html:主要用于显示网页内容 成功添加后回显 编辑 增加php如下 删:删除学生信息 删除html如下 成功删除后回显 删除php如下 改:修改学生信息 修改html如下 修改php如下 查:查…...
数据结构-栈与队列
栈:一对一的线性储存结构,先进后出,只允许从一端进行数据的插入与删除的线性数据结构。用于,判断成对出现的东西,如判断回文字符串或者回文数,四则混合运算求值等。 顺序栈(数组)&a…...
c#上班,上学,交通方式接口
using System;namespace INTERFACE {abstract class Person{public string Name { get; set; }public int Age { get; set; }public virtual void ShowInfo(){Console.WriteLine($"Name: {Name}, Age: {Age}");}}// 接口 IWorkinterface IWork{void GotoCompany();}/…...
吴恩达官宣开源,yyds!
最近,GitHub 上又一个开源项目火成了一匹黑马。 开源才短短十几天,star 标星就从 0 飙升到了 8000,可以说是最近看到的涨 star 极其生猛的开源项目之一了。 出于好奇,我也点进去看了看。 好家伙,一看这昵称和头像&am…...
从0到1实现vue3+vite++elementuiPlus+ts的后台管理系统(一)
前言:从这篇文章开始实现vue3vite的后台管理系统,记录下自己搭建后台系统图的过程。 这篇文章完成项目的初始化和基本配置,这一步可以直接跟着vue3官网进行。整个系列只有前端部分,不涉及后端。 vue3官网:https://cn.…...
SpringBoot+Vue3实现阿里云视频点播 实现教育网站 在上面上传对应的视频,用户开会员以后才能查看视频
要使用阿里云视频点播(VOD)实现一个教育网站,其中用户需要成为会员后才能查看视频,你可以按照以下步骤进行开发和配置。这个过程包括上传视频、设置权限控制、构建前端播放页面以及确保只有付费会员可以访问视频内容。 1. 视频上…...
wireshark捕获过滤和操作方式详解
大家觉得有用记得关注和点赞,谢谢。 一、Wireshark介绍 Wireshark(前身是Ethereal)是一个网络封包分析软件,目前是全球使用最广泛的开源抓包软件,别名小鲨鱼或者鲨鱼鳍。 网络封包分析软件的功能是截取网卡进出的网络…...
预处理器Stylus的介绍及使用,并同Less、Sass进行对比(简单介绍)
目录 一、安装与配置 安装Node.js: 安装Stylus: 配置Webpack: 二、编写Stylus代码 定义变量: 使用变量: 嵌套语法: 混合(Mixins): 函数: 6.关键字参…...
MySql-9.1.0安装详细教程(保姆级)
目录 MySQL介绍: 一、下载 Mysql 安装文件 二、Mysql 安装教程 1.下载完成后进入解压,注意不要放在一个非中文路径下的文件夹下面否则后面会报错。我在此处解压放在了D盘MySQL目录下。 2.解压后的文件应该没有.ini文件。因此,需要创建in…...
【练习Day17】寻找第 K 大
链接:寻找第K大_牛客题霸_牛客网 方法:快排二分查找(推荐使用) 知识点:分治 分治即“分而治之”,“分”指的是将一个大而复杂的问题划分成多个性质相同但是规模更小的子问题,子问题继续按照这…...
【文档搜索引擎】在内存中构造出索引结构(下)
文章目录 4.保存到磁盘中为什么要保存在磁盘中怎么保存操作步骤1. 前期准备2. 主要操作 5. 将磁盘中的数据加载到内存中Parser 类完整源码Index 类完整源码 4.保存到磁盘中 为什么要保存在磁盘中 索引本来是存储在内存中的,为什么要将其保存在硬盘中? …...
2024年《网络安全事件应急指南》
在这个信息技术日新月异的时代,网络攻击手段的复杂性与日俱增,安全威胁层出不穷,给企事业单位的安全防护能力带 来了前所未有的挑战。深信服安全应急响应中心(以下简称“应急响应中心”)编写了《网络安全事件应急指南》…...
前端的知识(部分)
11 前端的编写步骤 第一步:在HTML的页面中声明方法 第二步:在<script>中定义一个函数,其中声明一个data来为需要的数据 赋值一个初始值 第三步:编写这个方法实现对应的功能...
OPC UA、MQTT 和 HTTP性能分析及使用场景推荐
在选择适合的服务性能协议时,OPC UA、MQTT 和 HTTP 每种都有其独特的优势和适用场景,因此最佳选择取决于具体的应用需求和技术环境。以下是基于不同维度对比这三种协议的分析: 通信效率 OPC UA:通常用于车间环境,提供…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
基于ASP.NET+ SQL Server实现(Web)医院信息管理系统
医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上,开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识,在 vs 2017 平台上,进行 ASP.NET 应用程序和简易网站的开发;初步熟悉开发一…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
