2023秋招大厂经典面试题及答案整理归纳(281-300)校招必看

本文整理了2023年秋招大厂面试的281-300题,涵盖信号处理、红黑树操作、数据结构、异常处理、内存管理等多个核心知识点。例如,讨论了红黑树的插入和删除策略,解释了字节对齐的重要性,以及介绍了确保线程安全的方法。此外,还涉及了进程调度策略、Linux操作系统组成、协程的概念等。对于准备面试的开发者来说,这些题目和答案提供了深入理解计算机科学基础知识的机会。
摘要由CSDN通过智能技术生成

目录

281. 信号处理方式?

282. 红黑树如何插入和删除的?

283. 输入某班级学生的姓名、分数,并对分数进行降幕排列并输岀;

284. 随即产生一字符串,每次产生的字符串内容、长度都不同

285. 设X[l..n]和Y[l..n]为两个数组每个都包含n个已排好序 的数。请使用伪代码给岀一个求数组X和Y中所有2n个元 素的中位数的O(lgn)时间的算法。

286. static casto^ynamic casto^onst castojeinterpret cast。的各自作用和使用环境?

287. 岀现异常时,try和catch做了什么?

288. 为什么要字节对齐?

289. 什么是虚拟设备?为什么在操作系统中引入虚拟设备?

290. 程序员规范中要求不要写岀类似(++)+「++)或f(++i;i++这 样的代码,请说明原因。

291. 操作系统中进程调度策略有哪几种?

292. Linux操作系统重要组成部分?

293. 简述中断装置的主要职能.

294. 什么是RAII资源管理?

295. 如果在构造函数中调用memset(this, 0, sizeof(*this))来初 始化内存空间,有什么问题吗?

296. struct{chara[0];}的作用?有什么好处?

297. TCP的nagle算法和延迟ack,还有CORK呢?他们有什么 好处? 一起用会有什么效果?你觉得可以有什么改进?

298. 什么是协程?

299. 确保线程安全的几种方法?

300. 请求页面置换策略有哪些方式?他们的区别是什么?各自有什么算法解决?


281. 信号处理方式?


(1) 执行默认处理方式
(2) 忽略处理
(3) 执行用户自定义的函数



282. 红黑树如何插入和删除的?


插入:
(1) 如果父节点为黑色,直接插入不处理
(2) 如果父节点为红色,叔叔节点为红色,则父节点和叔叔节点变为黑色,祖先节 点变为红色,将节点操作转换为祖先节点
(3) 如果当前节点为父亲节点的右节点,则以父亲结点为中心左旋操作
(4) 如果当前节点为父亲节点的左节点,则父亲节点变为黑色,祖先节点变为红色, 以祖先节点为中心右旋操作
删除:
(1) 先按照排序二叉树的方法,删除当前节点,如果需要转移即转移到下一个节点
(2) 当前节点,必定为这样的情况:没有左子树。
(3) 删除为红色节点,不需要处理,直接按照删除二叉树节点一样
(4) 如果兄弟节点为黑色,兄弟节点的两个子节点为黑色,则将兄弟节点变为红色, 将着色转移到父亲节点
(5) 如果兄弟节点为红色,将兄弟节点设为黑色,父亲结点设为红色节点,对父亲 结点进行左旋操作
(6) 如果兄弟节点为黑色,左孩子为红色,右孩子为黑色,对兄弟节点进行右旋操 作
(7) 如果兄弟节点为黑色,右孩子为红色,则将父亲节点的颜色赋值给兄弟节点, 将父亲节点设置为黑色,将兄弟节点的右孩子设为黑色,对父亲节点进行左旋



283. 输入某班级学生的姓名、分数,并对分数进行降幕排列并输岀;

Sinclude <iostream> using namespace std;
struct Node
{
char name[100]; int score;
Node *next;
void show(Node *head)
{
while(head)
{
cout<<head->name«" "<<head->score<<endl;
head = head->next;

int linkLen(Node *head)
int len = 0; while(head)
len++;
head = head->next;
return len;
void sort(Node *head)
=linkLen(head); j=len-l; j>0; j--)
Node "tempHead = head;
for(int i=0; i<j; i++)
if(tempHead->score> tempHead->next->score)
char tempName[100];
int tempScore;
strcpy(tempName,tempHead->next->name);
strcpy(tempHead->next->name,
tempHead->name);
strcpy(tempHead->name, tempName); tempScore = tempHead->next->score; tempHead->next->score = tempHead->score; tempHead->score = tempScore;
int main()
char name[100];
int score;
Node *head = NULL; Node "tail = NULL; scanf("%s %d”, name, while(score != -1) Node *temp = new Node; strcpy(temp->name, name); temp->score = score; temp->next = NULL;
if(head == NULL)
{
head = temp;
tail = temp;
}
else
{
tail->next = temp; tail = temp;
}
scanf("%s %d", name, &score);
}
show(head);
sort(head);
show(head);
return 0;
}


284. 随即产生一字符串,每次产生的字符串内容、长度都不同

ffinclude <iostream>
using namespace std;
int 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值