您的位置:首页 > 职场人生

面试题集锦

2018-04-03 16:17 288 查看
C++工程师岗常见的106道面试题汇总,相信搞懂了这些,校招面试基本上不成问题。
信号的生命周期?
信号的产生方式?
信号处理方式?
如何消除隐式转换?
重载,重写和隐藏的区别?
volatile表示什么?有什么作用?
Static_cast<>,dynamic_cast<>,const_cast<>,reinterpret_cast<>的各自作用和使用环境?
Malloc和new的区别?
free和delete的区别?
free一个数组时如何知道要释放多大的内存呢?
__stdcall和__cdecl的区别?
linux内部提供了那些调试宏?
手写线程安全的单例模式?
引用和指针的区别?
出现异常时,try和catch做了什么?
C++如何处理多个异常的?
常对象的成员变量一定不可以修改吗?为什么?
虚函数的调用过程?
单继承,多继承,菱形继承,虚继承时,对象内存中的差异区别?如果存在虚函数呢?
实现一个vector?是1.5还是2倍,各有什么优缺点?
map底层用了什么?
如果用map删除了一个元素,迭代器还能用吗?为什么?怎样做可以接着用?
红黑树的特征是什么?
红黑树如何插入和删除的?
红黑树和B+,B-的区别?
线程同步几种方式?
手写strcpy,memcpy,memmove函数?
Do{}while(0)的用法有哪些?
手写快排?时间复杂度?空间复杂度?能进行优化吗?还有吗?能进行尾递归优化吗?
线程池的作用是什么?
Pthread_cond_signal和pthread_cond_broadcast的区别
TCP三次握手和四次挥手及各自的状态?
TCP如果两次握手会出什么问题?那三次握手又会造成什么问题?有什么好的解决方法没?
TCP四次挥手为什么要有TIME_WAIT状态?为什么?
死锁的原因?条件?如何预防?又如何避免?如何解除?
排序稳定的算法,你知道那些?
解决hash冲突的方法?
C++分为内存分为哪几部分?
如果new申请内存失败了,如何去解决?如果让你实现一个new,你会怎么实现?
如何得到一个结构体内成员的偏移量?
进程与线程的区别?
逐层打印二叉树?
构造函数能不能虚函数?为什么?那拷贝构造函数能不能为虚函数?为什么?
析构函数能不能虚函数?为什么?
模板和实现可不可以不写在一个文件里面?为什么?
什么是RAII资源管理?
为什么要字节对齐?
在成员函数中调用delete this会出现什么问题?对象还可以使用吗?
如果在构造函数中调用memset(this, 0, sizeof(*this))来初始化内存空间,有什么问题吗?
对一个数组而言,delete a和delete[] a有什么区别?为什么?
Dynamic_cast是如何实现运行时类型转换的?
C语言调用C++语法函数怎么做?那C++调用C语法的函数怎么做?
Extern “C”是什么意思?他有什么作用?
进程间的通信方式有哪些?线程间的通信方式呢?
IO模型主要有哪些?
阻塞和非阻塞?同步与异步的区别?
Select,poll和epoll的区别?为什么?
Struct{char a[0];}的作用?有什么好处?
如何判断两个浮点数相等?
浮点数为什么会有误差?
TCP的nagle算法和延迟ack,还有CORK呢?他们有什么好处?一起用会有什么效果?你觉得可以有什么改进?
栈上分配内存和堆上分配内存有什么区别?
变量的存储方式有哪些?
线程私有和共享那些资源?进程私有和共享那些资源?
什么是守护进程?如何查看守护进程?什么是僵尸进程?如何查看僵尸进程?
进程同步机制?
什么是信号?
kill函数的每一个参数的作用?
什么是协程?
虚拟内存实现有哪几种方式?有什么意义?
什么是类型安全?能举例吗?
确保线程安全的几种方式?
OSI七层模型?
TCP/IP五层模型?
DHCP协议是什么?使用什么端口?他的优劣?
网络序是大端还是小端?为什么要这样?
ping命令使用的是什么协议?
路由表一般包含什么?
停止等待协议的缺点?为什么?
拥塞控制的方式?具体怎么做的?快重传的时机是什么?
DNS协议如何实现将域名解析为IP地址的?
创建进程的步骤?
进程切换发生的原因?处理进程切换的步骤?
虚函数表是在什么时候确定的?那虚表指针呢?
如何检查内存泄露?如果不通过printf,debug等调试方式和编译器报错提示呢?
Int(*f(int,void(*)()))(int,int)是什么意思?
STL空间配置器如何处理内存的?能说一下它的大概实现方案吗?为什么是8bytes的倍数?
HTTP 403表示什么?
静态函数能定义为虚函数吗?为什么?
静态函数能定义为常函数吗?为什么?
知道什么是幂等性吗?举个例子?
当接受方的接受窗口为0时还能接受数据吗?为什么?还能接受什么数据?那怎么处理这些数据呢?
当接受方的返回的接受窗口为0时,发送方会进行什么操作?
请求页面置换策略有哪些方式?他们的区别是什么?各自有什么算法解决?
系统调用与函数调用的区别?
对于默认处理的结构体,能用memcmp来进行比较吗?为什么?如果不能,该如何比较?
C++中有哪些机制可以取代宏?
手写一个有可变参数的函数?
可靠信号与不可靠信号的区别?
this指针调用成员变量时,堆栈会发生什么变化?
实现一个shared_ptr类和auto_ptr类
下面这两个函数在执行过程中有什么区别?
C++中可以继承string类吗?为什么?
Char * const *(*next)()是什么?
访问一个网页的过程,计算机发生了什么?
如何判断const所修饰的对象?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: