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);

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Rockchip android10.1默认开启虚拟键盘

Rockchip android10.1默认开启虚拟键盘 问题描述解决方法 郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Rockchip OS:Android 10.1 Kernel: 4.19 问题描述 客户需要在插上外接实体键盘的时候&#xff…

QT使用dumpcpp为COM生成h及cpp的方式,COM是C#的dll注册的

目录 1.C#的dll注册为COM,采用bat的方式 2.通过qt的dumpcpp来生成h及cpp文件 3.h文件和cpp文件处理。 台达数控系统的C#的dll dumpcpp用的tlb文件 dumpcpp生成的原生h文件 dumpcpp生成的原生cpp dump生成后的的原生cpp文件修改后的cpp文资源 dump生成后的的…

Element-Plus: Select组件实现滚动分页加载

Element-Plus的select组件并没有自带滚动分页加载的功能,其虽然提供了自定义下拉菜单的底部的方式可以自定义上一页及下一页操作按钮的方式进行分页加载切换: 但如果不想通过点击分页按钮的方式,利用滚动触底进行下一页加载的话,…

近视用什么灯对眼睛好?多款防近视护眼台灯推荐

随着社会竞争愈发激烈,对于办公族、学生党而言,用眼过度是最频繁不过的事情了,不少低年级的学生都已经早早佩戴上了近视眼镜。所以想要保护眼睛健康,一款光源舒适的台灯是必不可少的,不过市面上也有很多劣质台灯&#…

注意力机制Attention、CA注意力机制

一、注意力机制 产生背景: 大数据时代,有很多数据提供给我们。对于人来说,可以利用重要的数据,过滤掉不重要的数据。那对于模型来说(CNN、LSTM),很难决定什么重要、什么不重要,因此…

案例分析篇06:数据库设计相关28个考点(17~22)(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

Kafka-生产者报错javax.management.InstanceAlreadyExistsException

生产者发送消息到 kafka 中,然后控制台报错 然后根据日志查看 kafka 的源码发现了问题原因 说的是MBean已经注册了,然后报异常了,这样就会导致生产者的kafka注册失败, 原因是项目上生产者没有配置clientId,默认都是空导致的, 多个生产者(项目)注册到kafka集群中的 id 都相同。 …

Spring Boot 中@Scheduled是单线程还是多线程?

在开发Spring Boot应用程序时,定时任务是一项常见的需求。Spring Boot提供了Scheduled注解,可用于将方法标记为定时任务,并在预定的时间间隔内执行。那么Scheduled注解的执行方式是单线程执行,还是多线程执行?Schedule…

Python爬虫实战入门:豆瓣电影Top250(保你会,不会来打我)

文章目录 需求所需第三方库requests模块lxml模块了解 lxml模块和xpath语法xpath语法-基础节点选择语法 实战教程完整代码 需求 目标网站: https://movie.douban.com/top250 需求: 爬取电影中文名、英文名、电影详情页链接、导演、主演、上映年份、国籍、类型、评分、评分人数, …

振弦采集仪的操作方法及数据处理技术的一般步骤

振弦采集仪的操作方法及数据处理技术的一般步骤 岩土工程监测中,河北稳控科技振弦采集仪是用来测量土壤或岩石中的振动特性的仪器。下面是振弦采集仪的操作方法及数据处理技术的一般步骤: 1. 准备工作:安装振弦采集仪的支架或支架&#xff0…

文心一言 VS 讯飞星火 VS chatgpt (215)-- 算法导论16.2 2题

二、设计动态规划算法求解 0-1 背包问题,要求运行时间为 O(nW),n为商品数量,W是小偷能放进背包的最大商品总重量。如果要写代码,请用go语言。 文心一言: 0-1 背包问题是一个典型的动态规划问题,其目标是在…

如何高效接入 Flink:Connecter / Catalog API 核心设计与社区进展

摘要:本文整理自阿里云实时计算团队 Apache Flink Committer 和 PMC Member 任庆盛在 FFA 2023 核心技术专场(二)中的分享,内容主要分为以下四部分: 1. Source API 2. Sink API 3. 将 Connecter 集成至 Table /SQL A…

运动想象 (MI) 迁移学习系列 (9) : 数据对齐(EA)

运动想象迁移学习系列:数据对齐(EA) 0. 引言1. 迁移学习算法流程2. 欧式对齐算法流程3. 与RA算法进行对比4. 实验结果对比5. 总结欢迎来稿 论文地址:https://ieeexplore.ieee.org/abstract/document/8701679 论文题目:Transfer Le…

macOS Ventura 13.6.5 (22G621) Boot ISO 原版可引导镜像下载

macOS Ventura 13.6.5 (22G621) Boot ISO 原版可引导镜像下载 3 月 8 日凌晨,macOS Sonoma 14.4 发布,同时带来了 macOS Ventru 13.6.5 和 macOS Monterey 12.7.4 安全更新。 macOS Ventura 13.6 及更新版本,如无特殊说明皆为安全更新&…

Python数据分析-pandas3

1.pandas的作用: numpy能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据。 2.pandas之Series创建: 3.pandas之Series切片和索引 4.缺失值处理 5.常用的统计…

【阅读论文】智能数据可视分析技术综述

智能数据可视分析技术综述 文章结构 中文引用格式: 骆昱宇, 秦雪迪, 谢宇鹏, 李国良. 智能数据可视分析技术综述. 软件学报, 2024, 35(1): 356–404. http://www.jos.org.cn/1000-9825/6911.htm

深度学习环境搭建

前言 因为一些原因,我需要更换一台新的服务器来跑深度学习。 这篇文章记录了我在新的远程服务器上搭建深度学习环境的过程。 基本情况 本人采用笔记本电脑连接远程服务器的方式跑深度学习代码。 笔记本电脑环境: 远程服务器环境: 环境搭…

PHP<=7.4.21 Development Server源码泄露漏洞 例题

打开题目 dirsearch扫描发现存在shell.php 非预期解 访问shell.php&#xff0c;往下翻直接就看到了flag.. 正常解法 访问shell.php 看见php的版本是7.3.33 我们知道 PHP<7.4.21时通过php -S开起的WEB服务器存在源码泄露漏洞&#xff0c;可以将PHP文件作为静态文件直接输…

西门子PLC常用底层逻辑块分享_单/双输出电磁阀

文章目录 前言一、功能概述二、单输出电磁阀程序编写1.创建自定义数据类型2.创建FB功能块“单输出电磁阀”3.编写程序 三、双输出电磁阀程序编写1.创建自定义数据类型2.创建FB功能块“双输出电磁阀”3.编写程序 前言 本文分享一个自己编写的电磁阀控制逻辑块。 一、功能概述 …