数据结构论坛

首页 » 分类 » 分类 » 本人c的面试总结
TUhjnbcbe - 2023/8/12 19:50:00
中科白癜风医院微信 https://m-mip.39.net/fitness/mipso_4572203.html

c++面试总结

1.算法

2.数据结构

3.C++feature

4.OS

5.Network

6.Database

7.实战

8.系统学习资料

8.1数据结构

8.2OS

8.3Network

8.4Database

8.5Linux

8.6C++Programing

8.7Other

1.算法

排序

冒泡排序

简单选择排序

直接插入排序

折半插入排序

希尔排序

快速排序

归并排序

堆排序

基数排序

计数排序

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

查找:二分查找,lower_bound,upper_bound

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

贪婪算法

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

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

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

补充:Top-K算法,Bitmap算法,BloomFilter算法,一致性哈希算法,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的内部实现?

newoperator,operatornew,placementnew的区别?

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

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

4.OS

操作系统加载流程?

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

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

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

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

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

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

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

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

Linux下进程的内存布局?

页面置换算法?LRUCache算法?

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

5.Network

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

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

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

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

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

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

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


   力荐

大话数据结构

8.2OS

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

现代操作系统[美]AndrewS·Tanenbaum

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

8.3Network

计算机网络
  谢希仁

TCP/IP协议族
  
   力荐

TCP/IP详解卷一:协议

8.4Database

数据库系统概念

深入浅出MySQL

高性能MySQL

8.5Linux

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

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

LinuxShell脚本攻略

Vim实用技巧

8.6C++Programing

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

C++Primer(第5版)
  
   力荐

STL源码剖析
  
  
  
  力荐

EffectiveC++
  
  
   力荐

深入探索C++对象模型

Linux高性能服务器编程

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

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

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

8.7Other

大话设计模式

Redis入门指南

Redis设计与实现

Linux多线程服务端编程

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

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

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

1
查看完整版本: 本人c的面试总结