面试题集锦

C++工程师岗常见的106道面试题汇总,相信搞懂了这些,校招面试基本上不成问题。

  1. 信号的生命周期?
  2. 信号的产生方式?
  3. 信号处理方式?
  4. 如何消除隐式转换?
  5. 重载,重写和隐藏的区别?
  6. volatile表示什么?有什么作用?
  7. Static_cast<>,dynamic_cast<>,const_cast<>,reinterpret_cast<>的各自作用和使用环境?
  8. Malloc和new的区别?
  9. free和delete的区别?
  10. free一个数组时如何知道要释放多大的内存呢?
  11. __stdcall和__cdecl的区别?
  12. linux内部提供了那些调试宏?
  13. 手写线程安全的单例模式?
  14. 引用和指针的区别?
  15. 出现异常时,try和catch做了什么?
  16. C++如何处理多个异常的?
  17. 常对象的成员变量一定不可以修改吗?为什么?
  18. 虚函数的调用过程?
  19. 单继承,多继承,菱形继承,虚继承时,对象内存中的差异区别?如果存在虚函数呢?
  20. 实现一个vector?是1.5还是2倍,各有什么优缺点?
  21. map底层用了什么?
  22. 如果用map删除了一个元素,迭代器还能用吗?为什么?怎样做可以接着用?
  23. 红黑树的特征是什么?
  24. 红黑树如何插入和删除的?
  25. 红黑树和B+,B-的区别?
  26. 线程同步几种方式?
  27. 手写strcpy,memcpy,memmove函数?
  28. Do{}while(0)的用法有哪些?
  29. 手写快排?时间复杂度?空间复杂度?能进行优化吗?还有吗?能进行尾递归优化吗?
  30. 线程池的作用是什么?
  31. Pthread_cond_signal和pthread_cond_broadcast的区别
  32. TCP三次握手和四次挥手及各自的状态?
  33. TCP如果两次握手会出什么问题?那三次握手又会造成什么问题?有什么好的解决方法没?
  34. TCP四次挥手为什么要有TIME_WAIT状态?为什么?
  35. 死锁的原因?条件?如何预防?又如何避免?如何解除?
  36. 排序稳定的算法,你知道那些?
  37. 解决hash冲突的方法?
  38. C++分为内存分为哪几部分?
  39. 如果new申请内存失败了,如何去解决?如果让你实现一个new,你会怎么实现?
  40. 如何得到一个结构体内成员的偏移量?
  41. 进程与线程的区别?
  42. 逐层打印二叉树?
  43. 构造函数能不能虚函数?为什么?那拷贝构造函数能不能为虚函数?为什么?
  44. 析构函数能不能虚函数?为什么?
  45. 模板和实现可不可以不写在一个文件里面?为什么?
  46. 什么是RAII资源管理?
  47. 为什么要字节对齐?
  48. 在成员函数中调用delete this会出现什么问题?对象还可以使用吗?
  49. 如果在构造函数中调用memset(this, 0, sizeof(*this))来初始化内存空间,有什么问题吗?
  50. 对一个数组而言,delete a和delete[] a有什么区别?为什么?
  51. Dynamic_cast是如何实现运行时类型转换的?
  52. C语言调用C++语法函数怎么做?那C++调用C语法的函数怎么做?
  53. Extern “C”是什么意思?他有什么作用?
  54. 进程间的通信方式有哪些?线程间的通信方式呢?
  55. IO模型主要有哪些?
  56. 阻塞和非阻塞?同步与异步的区别?
  57. Select,poll和epoll的区别?为什么?
  58. Struct{char a[0];}的作用?有什么好处?
  59. 如何判断两个浮点数相等?
  60. 浮点数为什么会有误差?
  61. TCP的nagle算法和延迟ack,还有CORK呢?他们有什么好处?一起用会有什么效果?你觉得可以有什么改进?
  62. 栈上分配内存和堆上分配内存有什么区别?
  63. 变量的存储方式有哪些?
  64. 线程私有和共享那些资源?进程私有和共享那些资源?
  65. 什么是守护进程?如何查看守护进程?什么是僵尸进程?如何查看僵尸进程?
  66. 进程同步机制?
  67. 什么是信号?
  68. kill函数的每一个参数的作用?
  69. 什么是协程?
  70. 虚拟内存实现有哪几种方式?有什么意义?
  71. 什么是类型安全?能举例吗?
  72. 确保线程安全的几种方式?
  73. OSI七层模型?
  74. TCP/IP五层模型?
  75. DHCP协议是什么?使用什么端口?他的优劣?
  76. 网络序是大端还是小端?为什么要这样?
  77. ping命令使用的是什么协议?
  78. 路由表一般包含什么?
  79. 停止等待协议的缺点?为什么?
  80. 拥塞控制的方式?具体怎么做的?快重传的时机是什么?
  81. DNS协议如何实现将域名解析为IP地址的?
  82. 创建进程的步骤?
  83. 进程切换发生的原因?处理进程切换的步骤?
  84. 虚函数表是在什么时候确定的?那虚表指针呢?
  85. 如何检查内存泄露?如果不通过printf,debug等调试方式和编译器报错提示呢?
  86. Int(*f(int,void(*)()))(int,int)是什么意思?
  87. STL空间配置器如何处理内存的?能说一下它的大概实现方案吗?为什么是8bytes的倍数?
  88. HTTP 403表示什么?
  89. 静态函数能定义为虚函数吗?为什么?
  90. 静态函数能定义为常函数吗?为什么?
  91. 知道什么是幂等性吗?举个例子?
  92. 当接受方的接受窗口为0时还能接受数据吗?为什么?还能接受什么数据?那怎么处理这些数据呢?
  93. 当接受方的返回的接受窗口为0时,发送方会进行什么操作?
  94. 请求页面置换策略有哪些方式?他们的区别是什么?各自有什么算法解决?
  95. 系统调用与函数调用的区别?
  96. 对于默认处理的结构体,能用memcmp来进行比较吗?为什么?如果不能,该如何比较?
  97. C++中有哪些机制可以取代宏?
  98. 手写一个有可变参数的函数?
  99. 可靠信号与不可靠信号的区别?
  100. this指针调用成员变量时,堆栈会发生什么变化?
  101. 实现一个shared_ptr类和auto_ptr类
  102. 下面这两个函数在执行过程中有什么区别?
  103. C++中可以继承string类吗?为什么?
  104. Char * const *(*next)()是什么?
  105. 访问一个网页的过程,计算机发生了什么?
  106. 如何判断const所修饰的对象?


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值