百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

c++的面试总结 c++的面试题

liebian365 2024-10-31 15:16 12 浏览 0 评论

c++面试总结

1.算法

2.数据结构

3. C++ feature

4. OS

5. Network

6. Database

7. 实战

8.系统学习资料

8.1 数据结构

8.2 OS

8.3 Network

8.4 Database

8.5 Linux

8.6 C++ Programing

8.7 Other

?1.算法

排序

冒泡排序

简单选择排序

直接插入排序

折半插入排序

希尔排序

快速排序

归并排序

堆排序

基数排序

计数排序

各种排序的时间复杂度,空间复杂度,是否稳定,时间复杂度是否与初始序列有关?

查找:二分查找,lower_bound, upper_bound

分治与递归:逆序对数,大数相加,大数相乘

贪婪算法

动态规划:背包问题,找零钱问题,最长公共子序列(LCS)

BFS,DFS,最短路径(Dijkstra算法,Floyd算法)

字符串匹配算法:KMP算法,BM算法,Sunday算法

补充:Top-K算法,Bitmap算法, Bloom Filter算法,一致性哈希算法,8数码问题(A算法,B算法,IDA*算法)

?2.数据结构

线性表:数组,栈,队列,链表特点以及应用场景。

数组:老鼠走迷宫问题,稀疏矩阵压缩

链表:单链表逆序,单链表去重,单链表删除结点(仅给出删除结点),两个链表交叉求交叉点,判断单链表是否有环以及确定环的入口结点。

二叉树:二叉树的遍历(递归,非递归),层次遍历;

二叉树求深度,宽度;二叉树镜像;创建二叉树;

哈夫曼树,哈夫曼编码。BST, AVL(AVL单侧旋转,双侧旋转),红黑树(红黑树的特征)。

图:邻接矩阵,邻接表,拓扑排序,最小生成树,trie树

补充:跳跃表,hashtable

?3. C++ feature

C与C++的区别(面向对象的特点)

指针和引用的区别?

悬空指针和野指针有什么区别?

什么是内存泄漏?怎么产生的?如何检测?

static和const区别?

const和define的区别?

struct和class的区别?

sizeof和strlen的区别?

32位,64位系统中,各种常用内置数据类型占用的字节数?

virtual, inline, decltype,volatile,static, const关键字的作用?使用场景?

C++中函数指针的作用?由那些属性唯一决定一个函数指针?

C++中如何唯一确定一个重载函数?重载函数默认初始化方式?

C++多态的实现机制?虚函数表的内部实现机制?

C++中重载,覆盖,隐藏的区别?

深拷贝与浅拷贝的区别?

派生类中构造函数,析构函数调用顺序?

C++类中数据成员初始化顺序?

结构体内存对齐问题?结构体/类大小的计算?

static_cast, dynamic_cast, const_cast, reinpreter_cast的区别?

shared_ptr, unique_ptr, weak_ptr的区别?auto_ptr与shared_ptr的区别?weak_ptr主要是为了解决什么问题的?shared_ptr的内部实现?

new/delete和malloc/free的区别?

strcat,strcpy,strncpy,memset,memcpy的内部实现?

new operator, operator new, placement new的区别?

单例模式?懒汉式?饿汉式?

C++中有哪些容器(序列容器,关联容器)?vetor与list的区别?set与unordered_set的区别?

?4. OS

操作系统加载流程?

进程与线程的区别和联系?

进程的常见状态?以及各种状态之间的转换条件?

静态链接与动态链接的优缺点?

死锁?死锁产生的条件?预防、避免死锁的方法?

进程间通信的方式?各种方式的区别以及应用场景?

经典同步问题解法:生产者与消费者问题,哲学家进餐问题,读者写者问题。

线程同步的方式?各种方式的区别?

虚拟内存?使用虚拟内存的优点?

Linux下进程的内存布局?

页面置换算法?LRU Cache算法?

Linux IO多路复用的机制:select,poll,epoll。三种复用机制的区别与联系?

?5. Network

OSI 7层网络模型中各层的名称及其作用?

TCP/IP 4层网络模型名称及其作用?

OSI 7层网络中各层的常见协议以及协议作用?

OSI网络模型中工作在各个层次的物理设备以及其作用?

IP层功能?如何用int型变量保存一个IPv4地址?

TCP协议(重点):TCP3次握手,4次挥手详细过程。TCP滑动窗口,拥塞控制,7. 流量控制原理。TCP 建立、断开连接过程中13中状态以及各种状态之间的转换条件? TCP粘包问题?如何解决?

UDP协议:头信息?使用场景?如何使用UDP建立可靠连接?

http协议:各个版本的区别?http请求头,响应头常用属性?常用状态码及其含义?

socket编程:服务端,客户端建立TCP连接调用那些函数?分别对应什么状态?

Linux 常用网络命令的原理:ping, traceroute

浏览器中点击一个超链接到显示对应页面的全过程?

DNS的作用?什么时候使用TCP?什么时候使用UDP?

?6. Database

MySQL中MyISAM与InnoDB的区别?

MySQL中索引内部实现是什么?MyISAM和InnoDB中使用的B+树有什么区别?B树和B+树的区别?

SQL常用查询语句的使用?各种连接(外连接,内连接,全连接)的区别?

数据库范式?1,2,3,BCNF,4, 5

事务?事务的特点?事务的四个隔离级别,各个级别解决的问题?

索引?适合创建索引的条件?不适合创建索引的条件?

索引优化策略?五个优化级别

存储过程?

触发器?

日志

?7. 实战

介绍一下C++ traits的原理以及作用?

GDB 查看栈帧,寄存器的指令是什么?

GCC常用编译选项有哪些?作用分别是什么?

进程间通信有哪些方式?各种方式的区别?

项目的代码量有多大

shell熟不熟?

介绍一下进程间通信,说一下共享内存的原理;说一下信号量的种类,信号量和metux的区别。

手写代码:实现双向链表插入结点(自己定义结点的数据结构,用C语言实现)

为什么看Linux内核?

然后问项目中涉及到的技术:比如C++基础,STL, 进程间通信,多线程

C++中有哪些容器?vector,list,forward_list,stack,queue。set,map,unordered_set, unordered_map。

map底层是什么结构?hashmap底层是什么结构?hashtable的结构?

vector是怎么释放空间的?主要说上层应用

介绍一下进程通信的有哪些方式?介绍一下共享内存的引用场景?

手写代码:使用宏定义?完成注册回调函数,解绑回调函数,通过ID获取对应回调函数的宏。

手写代码:实现一个单例模式

计算一个类的的大小(虚函数,内存对齐)

介绍一下socket()。客户端和服务端进行连接过程调用的函数。当客户端与服务端进行tcp连接,服务端没有accept()时,两端会处于什么状态?

介绍一下你擅长的而且没有涉及到的方面以及有什么问题要问吗?

手写代码:用模板实现一个栈(内部使用动态申请的数组作为存储结构)。

hash table的结构?hashtable 和hashmap的区别?hashtable是线程安全的吗?

介绍一下红黑树的特点?介绍一下红黑树插入的一个结点的操作(单侧旋转,双侧旋转)?

TCP三次握手的过程?为什么会有第三次的确认报文?

手写代码:已知一个又向无环图,确定一个拓扑序列,用代码实现。

手写代码:单链表删除一个结点,只给出被删除的结点指针,写出代码。没有头结点可以吗?(剑指offer原题)

介绍一下https。http请求报文,应答报文中包含哪些信息?

手写代码:二叉树层次遍历。

手写代码:实现生产者与消费者问题。

手写代码:实现一个简单缓冲区。

设计一个缓存系统需要考虑什么问题?如何设计一个简单的LRU?

手写代码:实现一个LUR Cache get,put函数。说明数据结构

手写代码:字符串处理算法:abc–>abcd,abc(添加),abce(修改),abd(插入)。已知一个序列,判断最好的更改策略。说出基本思路,并用代码实现

介绍一下LRU的设计思路(笔试题内容)

信号量是什么?有什么应用场景?

虚拟内存的原理?虚拟内存的作用?

操作系统中进程的常见状态转换?

笔试题第二题的思路?已知一棵二叉树的结点信息,判断是否是BST?

TCP确认重传机制?拥塞控制的机制?

给你一个系统硬件资源足够多的系统,你认为最多能打开多少个浏览器窗口?(客户端socket数量限制,系统对创建进程的限制)

介绍一下项目:首先介绍空间配置器的原理?在堆中申请空间与申请失败使用第一级空间配置器的区别是什么?内省排序的原理?怎样判断递归深度?直接判断还是递归中判断?

介绍一下虚拟内存?当使用malloc函数时会发生调页操作吗?

介绍一下hashtable的原理?

设计一个LRU?

手写代码: 实现一个LRU的get,put函数

当在LRU的链表中使用生存时间时,怎么判定某个记录到期?(使用绝对到期时间:当前时间+生存时间)

先讲一下视频拼接?怎么解决拼接过程中的重复问题?使用的是CPU还是GPU?

线程同步的方法?条件变量了解吗?

TCP的拥塞控制?重传机制?

TCP和UDP的区别?UDP一对多的情况?什么情况下使用UDP?

ping,tracerout原理?怎样判断两个IP地址是否属于同一个网段?

路由器属于那一层?IP层的功能?

DNS原理?DNS是哪一层协议?什么时候使用TCP,什么时候使用UDP?

内存池了解吗?怎样实现向上取整成为8的倍数?

虚函数与纯虚函数的区别?应用场景?

private继承会怎样?

说一下单链表的特点?C++中什么容器和它对应?forward-list和list的区别?forward-list

容器中有size()函数吗?为什么?那些容器中内部结构是树型结构?

二叉树有哪些遍历方式?层次遍历使用什么数据结构实现?

递归知道吗?递归需要注意什么问题?伪递归知道吗?实现机制?

介绍一下虚函数表的内部实现?

定义一个空类,有构造函数吗?构造函数都做了什么?

手写代码:实现sqrt()函数,不能使用库函数。(Leetcode原题)

面试官说:看你比较了解C++,我就不问C++基础了,然后就直接问项目

项目遇到什么问题?怎么解决的?解决的效果如何?怎么想到这个解决方法的?

手写代码:实现一个栈(C/C++均可)

手写代码:实现二叉树的层次遍历

画出项目的大致框架?画出自己负责的模块的大致框架?为什么要这样设计?遇到什么问题?怎么解决的?

了解过什么开源项目?在github上提交过代码吗?

对设计模式了解吗?常用的设计模式有多少种?说一下常见的设计模式?

UML知道吗?能用UML绘制常用的设计模式吗?

介绍一下STL。STL空间配置器的原理?vector实现?hashtable内部实现?内省排序的原理?

B+树的原理?B树和B+树的区别?为什么MySQL使用B+树?

红黑树的特点?为什么使用红黑树?应用场景有哪些?红黑树的旋转(单侧旋转,双侧旋转)

进程间通信的方式有哪些?信号量的原理?管道原理?消息队列原理?

多线程同步的方式有哪些?条件变量用法?条件变量和信号量的区别?

Radis的特点?以及应用场景?常见的数据结构及特点?

C陷阱与缺陷 中主要讲了什么内容?简单介绍一下

看了那些Linux相关的书籍?简单介绍一下印象最深的一本

对存储过程了解吗?

计算类的空间大小?

写了个C++继承的例子,说一下删除基类指针调用了那些析构函数(主要考察虚析构函数的作用)

?8.系统学习资料

8.1 数据结构

数据结构(C语言版) 严蔚敏

算法(第四版)Robert Sedgewick著   力荐

大话数据结构

8.2 OS

计算机操作系统   汤子瀛     力荐

现代操作系统 [美] Andrew S·Tanenbaum

深入理解计算机系统(CSAPP)

8.3 Network

计算机网络  谢希仁

TCP/IP协议族     力荐

TCP/IP详解 卷一:协议

8.4 Database

数据库系统概念

深入浅出MySQL

高性能MySQL

8.5 Linux

鸟哥的Linux私房菜:基础学习篇(第三版)

Linux命令行和shell脚本编程宝典

Linux Shell脚本攻略

Vim实用技巧

8.6 C++ Programing

C++语言程序设计   郑莉 (若无C++基础)

C++ Primer(第5版)     力荐

STL源码剖析        力荐

Effective C++       力荐

深入探索C++对象模型

Linux高性能服务器编程

UNIX环境高级编程(APUE)       力荐

UNIX网络编程 卷一:套接字联网API  力荐

UNIX网络编程 卷二:进程间通信

8.7 Other

大话设计模式

Redis入门指南

Redis设计与实现

Linux多线程服务端编程

大规模分布式存储系统:原理解析与架构实战

深入理解Nginx:模块开发与架构解析

山东掌趣网络科技有限公司

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: