C++面试问题收集

 0 持续更新中


目录

 0 持续更新中

1 C++语言相关

1.1 malloc/free和new/delete区别

1.2 内存泄漏

1.3 堆区和栈区的区别

1.4 宏定义和const的区别

1.5 多态

1.6 类中的静态成员变量

2 操作系统相关

2.1 进程和(用户)线程的区别

2.2 系统调用

2.3 中断

2.4 进程切换

2.5 页面置换算法

2.6 虚拟内存的实现

2.7 线程间的通信

3 计算机网络

3.1 TCP和UDP的区别

3.2 TCP三次握手四次挥手

3.3 TCP和UDP的结构

4 数据库

4.1 innodb引擎

5 算法题

5.1 给定一个数组,查找重复元素


1 C++语言相关


1.1 malloc/free和new/delete区别

  • malloc/free 是c语言中的库函数。new/delete是C++中的关键字。库函数不可以重载,关键字可以。
  • malloc要自己计算内存大小。new是有编译器计算内存大小。
  • malloc返回的是void*指针。new返回的是对应类型的指针。
  • new和delete使用时会调用构造函数和析构函数,但malloc和free不会。

1.2 内存泄漏

  • 程序占有内存资源而不释放内存资源。
  • 堆内存泄漏:malloc和new后忘记free和delete。
  • 系统资源泄漏:忘记释放各种句柄。
  • 数组对象没有一个一个delete或者没用delete[]。
  • 基于基类指针生成子类对象,基类的析构函数不是虚函数导致子类调用基类的析构函数而不是自己的析构函数。

1.3 堆区和栈区的区别

  • 管理方式不同:栈是由编译器自动申请和释放的,堆是由程序员自己申请和释放的。
  • 空间大小不同。
  • 是否产生内存碎片:栈是不会产生内存碎片,堆会。
  • 堆是动态分配,栈既有动态分配又有静态分配。
  • 栈的效率高于堆。

1.4 宏定义和const的区别

2024-春招-4399-一面

答案


1.5 多态

2024-春招-4399-一面

答案


1.6 类中的静态成员变量

2024-春招-4399-一面

答案


2 操作系统相关


2.1 进程和(用户)线程的区别

  • 进程是资源分配的基本单位。线程是CPU调度的基本单位。
  • 进程切换效率低,线程切换效率。
  • 进程有独立的虚拟地址空间。线程没有,但线程有栈,pc,本地存储等独立空间。
  • 线程必须依附与进程,一个进程可以有多个线程。
  • 同一进程内的线程切换就不需要CPU切换进程。
  • 进程切换效率低,线程切换效率

2.2 系统调用

C语言调有exec()函数就可以调用一个系统调用。

  • 执行系统调用时,CPU会从用户态转变为核心态。
  • 系统要调用外部资源时需要执行系统调用,如键盘输入,打印机等。
  • 流程:传递系统调用参数->执行陷入指令(用户态) -> 执行系统调用相应服务程序(核心态)->返回用户程序。

2.3 中断

  • 硬中断:硬件相关。如—网络流量不断送进一个有限的缓冲区,使用硬中断可以要求CPU优先处理这个有限的缓冲区以免数据丢失。

  • 软中断:用户相关。应用程序通过系统调用使CPU从用户态转为内核态。

2.4 进程切换

  • 并行性:多个CPU分别运行不同的进程。
  • 并发性:CPU不断切换进程达到类似对个进程并行的效果。
  • 进程切换有个三角裤图。

2.5 页面置换算法

程序发生缺页中断,执行页面置换算法。

  • 目的:减少页面置换的次数
  • 先进先出算法。
  • 最佳置换算法。
  • 最近未使用算法。
  • 时钟页面置换算法。

2.6 虚拟内存的实现


2.7 线程间的通信

2024-春招-4399-一面

答案


3 计算机网络


3.1 TCP和UDP的区别

2024-春招-4399-一面

相同点:

  • 均属于传输层协议。
  • 为应用层提供服务。

不同点:

  • TCP是面向连接,UDP是面向未连接。
  • TCP是可靠传输,UDP是不可靠传输。
  • TCP是1对1,UDP可以多对多。
  • TCP是基于字节流(分段,分片),UDP基于报文。

3.2 TCP三次握手四次挥手

百度的图。


3.3 TCP和UDP的结构

来自百度

4 数据库


4.1 innodb引擎

B+树


5 算法题


5.1 给定一个数组,查找重复元素

2024-春招-4399-一面

这里我回答的是用哈希表,时间复杂度是O(n);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/744520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习SSM的记录(七)-- SSM整合

目录 SSM整合理解 什么是SSM整合 SSM整合核心问题 1.SSM整合需要几个ioc容器 2.每一个ioc容器对应哪些类型组件 ​编辑 3.ioc容器之间关系和调用方向 4.具体多少配置类以及对应容器关系 5.ioc初始化方式和配置位置 ​编辑 SSM整合配置实战 1.数据库准备 2.创建项目…

十分钟教你有效运用百度检索式

十分钟教你有效运用百度检索式 ​ 百度作为国内最大的搜索引擎网站,虽然很多人都喷它的搜索页面广告太多,但是对于不会科学上网的同学来说,似乎除了继续用百度以外也没有更好的选择。 ​ 其实搜索引擎一般都会内涵一些高级的搜索技巧&#…

中间件漏洞(redis)

目录 1.Redis服务器被挖矿案例 2.redis常见用途 3.redis环境配置 4.redis的持久化机制 5.redis动态修改配置 6.webshell提权案例 7.定时任务bash反弹连接提权案例 8.SSH Key提权案例 9.redis安全加固分析 1.Redis服务器被挖矿案例 我没有体验过,那就看看别…

【Redis】Redis常用命令一

1.keys:返回所有满足条件的key,比如: KEYS pattern时间复杂度:O(N),返回值:匹配pattern的所有key。 • h?llo 匹配 hello , hallo 和 hxllo • h*llo 匹配 hllo 和 heeeello • h[ae]llo 匹配 hello 和 …

Java解决一年中的第几天

Java解决一年中的第几天 01 题目 给你一个字符串 date ,按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。 示例 1: 输入:date "2019-01-09" 输出:9 解释:给定日期是2019年的第…

【CSP试题回顾】201709-1-打酱油

CSP-201709-1-打酱油 解题代码 #include<iostream> using namespace std;int n, num;int main() { cin >> n;if (n / 50 ! 0){num 7 * (n / 50);n % 50;}if (n / 30 ! 0){num 4 * (n / 30);n % 30;}if (n / 10 ! 0) num (n / 10);cout << num;return…

python基础知识总结

一、Python数据结构 不可变数据结构&#xff08;3 个&#xff09;&#xff1a;Number&#xff08;整数&#xff09;、String&#xff08;字符串&#xff09;、Tuple&#xff08;元组&#xff09; 可变数据结构&#xff08;3 个&#xff09;&#xff1a;List&#xff08;列表&am…

Flask 专题

[CISCN2019 总决赛 Day1 Web3]Flask Message Board 查看session解密 但不知道密钥&#xff0c;题目说FLASK,那肯定就是找密钥,发现输入什么都没有显示&#xff0c;只有author那里有回显在版上&#xff0c;所以尝试sstl&#xff0c;{{config}}找到密钥 扫目录发现有admin进入…

6个免费的3D模型网站,助你3D建模渲染不用愁

​随着3D建模和渲染技术的不断发展&#xff0c;其重要性也日益增加。创建新的3D模型往往需要耗费大量时间&#xff0c;因此&#xff0c;本文整理了六个顶尖的免费3D模型资源网站&#xff0c;以便您能够方便地获取3D模型&#xff0c;大幅减少建模时间。这些资源有助于您更快地开…

考研408 2011年 第42题 (数据结构——队列)

#include <stdio.h>int MidSearch(int *A,int *B,int n) {//分别表示序列A到序列B的首位元素&#xff0c;末位数和中位数。s是star简写&#xff0c;d是end简写int s10,d1n-1,m1,s20,d2n-1,m2;//循环判断结束条件是&#xff0c;两个数组均不断删除 最后均只能剩余一个元素…

高铁地铁智慧公厕方案与案例介绍

随着轨道交通的快速发展&#xff0c;高铁、地铁、火车成为人们出行的主要交通工具。而在这种规划建设要求极具的场所&#xff0c;信息化、智慧化的管理系统部署必不可少&#xff0c;智慧公厕作为公共设施的重要组成部分&#xff0c;建设和管理也越来越受到重视。智慧公厕系统的…

线性回归啊

import torch import matplotlib.pyplot as pltx_data torch.Tensor([ [1.0],[2.0],[3.0] ]) y_data torch.Tensor([ [2.0],[4.0],[6.0] ])损失如果计算为向量是无法构建计算图 第一个参数 1 表示输入特征的数量&#xff0c;也就是模型接收的每个样本的特征数量。在这个例…

elasticsearch(学习笔记)(分布式搜索引擎)(黑马)(kibana操作)

一、索引库操作 索引库就类似数据库表&#xff0c;mapping映射就类似表的结构。 我们要向es中存储数据&#xff0c;必须先创建“库”和“表”。 1、mapping映射属性 mapping是对索引库中文档的约束&#xff0c;常见的mapping属性包括&#xff1a; type&#xff1a;字段数据类型…

自动驾驶最强学习资料

自动驾驶最强学习资料 资料说明和获取方式 本资料包是作者吐血整理的干货&#xff01;目前为止应该是非常全的自动驾驶资料包&#xff01;是作者五年自动驾驶算法工程师的 积累&#xff01; 以上干货资料并不全是作者自己原创&#xff0c; 是作者作为五年自动驾驶算法工程的…

春招_程序员怎么写简历_写简历网站

你们在制作简历时,是不是基本只关注两件事:简历模板,还有基本信息的填写。 当你再次坐下来更新你的简历时,可能会发现自己不自觉地选择了那个“看起来最好看的模板”,填写基本信息,却没有深入思考如何使简历更具吸引力。这其实是一个普遍现象:许多求职者仍停留在传统简历…

c++的类型转换和IO流

类型转换和IO流 一、c语言的类型转换 int i 1; // 隐式类型转换&#xff0c;这些类型都是表示数据的大小&#xff0c;整型家族包括char相互转化是因为他们只是范围不一样&#xff0c;浮点数与整型支持是因为浮点数本质也是表示数据的大小&#xff0c;只是加了精度而已&#…

vscode-server的搭建方法

一、配置服务器端口支持 1、开放端口&#xff1a; 2、关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service二、配置code-server到服务器上** 1、下载code-server-4.22.0-linux-amd64.tar.gz到本地&#xff08;可下载最新的版本&#xff09;&a…

多人语聊房社交APP开发需要有哪些功能呢?

随着移动互联网的快速发展&#xff0c;社交APP已经成为人们日常生活中不可或缺的一部分。而随着语音社交的兴起&#xff0c;多人语聊房社交APP也逐渐受到了用户的青睐。在开发多人语聊房社交APP时&#xff0c;需要具备一系列功能&#xff0c;以满足用户的需求并提供良好的使用体…

Java原型模式源码剖析及使用场景

一、 项目案例 在项目开发中,我们可以在需要创建复杂对象或者需要大量创建对象的场景下使用原型模式。比如,我们需要在内存中缓存大量的图像对象,每个图像对象都包含了一些元数据信息。如果每次都从头创建一个新的图像对象,势必会消耗大量的系统资源。 这时,我们可以使用原型…

C# 数据结构初始化

在C#中&#xff0c;可以使用各种不同的数据结构来存储和操作数据。以下是一些常见数据结构的初始化示例&#xff1a; 1.数组 (Array): // 声明并初始化整型数组 int[] intArray new int[] { 1, 2, 3, 4, 5 };// 声明并初始化字符串数组 string[] stringArray new string[] …