2019秋招c++个人面经集合

包含cvte,bigo,老虎,网易,拼夕夕等

简介:

以个人面试时间为顺序,尽可能还原面试问题。

8.19 腾讯提前批 客户端开发

  1. 手撕kmp算法
给定一个字符串数组,和一个子串,求字符串中是否存在子串,如果存在则返回首个匹配到的索引位置,否则,返回-1。不能调用库函数。例如:
字符串数组:“Integrity Procative Collaboration Innovation”
子串:”tegri”
返回:2
int IndexOfSubstr(const char* const raw_str, const char* const sub_str)
{
}
  1. 函数传值的方式
  2. 引用和拷贝的区别
  3. 引用的优缺点和拷贝的优缺点

8.24 深信服优招 c++研发(物联网方向)

  1. c++内存分区,未初始化的全局变量放在哪,如果编译了在二进制文件里会有他的位置吗?
  2. 野指针是什么,有什么工具可以检测吗?
  3. 进程间通信方式,知道互斥锁和什么锁(没听过)
  4. 一个结构体,能够用memcpy判断两个结构体存的东西是不一样的吗?
  5. 知道哈希表吗,怎么解决冲突,如果只有32个槽,怎么存放几千个数据。
  6. 路由器和二层交换机的区别
  7. 用过shell脚本吗
  8. 知道二叉树有哪些遍历的方式吗
  9. 后序遍历的实现
  10. 假设4个人过河,每个人的过桥时间为1,2,5,8。只有一个手电筒,一次最多过两个,怎么过桥速度最快
  11. 如果是n个人怎么计算他的过河时间
  12. arp协议的功能干嘛用的
  13. 快速排序的思想

8.26 老虎正式批 windows开发一面

  1. c和c++的区别
  2. 你对多态的理解
  3. 冒泡函数
  4. 快速排序的思想
  5. 学习了哪些数据结构
  6. 你对mfc的印象
  7. 用过哪些ui界面
  8. 用过qt吗

8.26 360提前批 软件开发

  1. 手撕strcpy
  2. 如何判断大小端,手写代码
  3. 讲一下tcp的拥塞控制
  4. 左值引用和右值引用的区别
  5. 四种cast强制类型转换的区别和使用
  6. 讲一下智能指针
  7. 做了哪些面向对象编程的工作
  8. 了解完美转发吗
  9. future和thread了解吗
  10. tcp/ip四层模型和osi七层模型具体是哪些
  11. 进程间消息通讯方式
  12. 进程和线程的区别

8.26 老虎正式批 windows开发二面

  1. 讲windows下消息的机制
  2. 系统集和用户集
  3. c++的内存管理
  4. stl是线程安全的还是不安全的
  5. windows出现了内存泄漏怎么办
  6. 怎么删除链表第n个结点
  7. tcp,udp的区别
  8. tcp怎么确定可靠传输
  9. 用户点下鼠标到控件响应的过程,怎么实现的

9.5 bigo正式批 客户端开发一面

  1. 项目
  2. 单例模式线程安全手撕代码
  3. 观察者模式的应用场景和工作方式
  4. 知道责任链设计模式吗
  5. 流量控制与拥塞控制
  6. tcp,udp应用的场景
  7. 讲一下红黑树
  8. 哪些排序算法是稳定的
  9. c++有哪些创建线程的方法
  10. 用过oracle和mysql吗
  11. join有哪几种方式
  12. 讲一下左连接和右连接
  13. 了解过移动开发的架构实现吗
  14. 除了c++还用过什么,java用过吗
  15. 有什么想问我的

9.8 高德地图正式批 c++研发一面

  1. 你对面向对象的理解
  2. 继承有什么原则
  3. 虚函数的工作方式
  4. 虚函数表和虚表指针是一个对象一个还是
  5. 抽象类可以实例化对象吗
  6. 公有继承,私有继承,保护继承的使用场景,和你的判断使用哪种的原则
  7. c#中有接口的概念,那么在c++中你觉得哪种行为体现了接口的特性
  8. 重写和重载的区别
  9. 类函数哪些需要设置成虚函数,你怎么判断一个函数需要声明为虚函数
  10. 基类指针操作基类对象,和基类指针操作派生类对象,和派生类指针操作基类对象,和派生类指针操作派生类对象,操作同名函数时的表现
  11. 如果同名函数为虚函数又是怎么样的
  12. c++的虚拟内存分布
  13. const int i=1024
    char *str =”"hello"
    在全局范围和局部范围声明时在内存的分布情况
  14. int i=1024
    static int i=1024
    在全局声明使用的区别和局部声明的区别
  15. 你了解过stl容器中的哪些容器,以及使用的场景和区别
  16. vector中扩容的原理和具体实现方式
  17. map和unordered map的底层实现和性能区别,获取元素和删除增加元素。
  18. 了解过哪些排序算法,可以讲一下吗。在什么场景使用什么算法
  19. 归并排序了解吗
  20. 设计数据库表有哪些原则,你如何设计一个表
  21. 怎么增加数据库的i/o速度
  22. 在多线程有过实践吗,或者你对多线程有什么了解
  23. 了解过范式吗
  24. 以后想要往什么方向走
  25. 了解过大数据和图像处理吗
  26. 了解过二叉树的遍历方式吗,二叉树有哪些遍历方式,是什么个遍历顺序,非递归是怎么实现的
  27. 有什么兴趣爱好
  28. 读过什么c++的书
  29. 英语的水平怎么样
  30. 工作地点在北京有什么不方便的吗

反问

  1. 你们认为应届生是基础重要还是应用重要
    基础更重要,面试官更看重的是你的潜力,应用的话是第二考量,有实践经验最好,但是每个学校并不是都有实践的机会。所以基础更加重要

  2. 对于应届生学习有什么意见
    如果选定了一个专业领域,那么就应该学习对应领域的知识,去做对应领域的实践,知识的落地是非常重要的。

9.9 cvte正式批 c++软件开发一面

  1. c++的三大特性
  2. 什么是多态
  3. 虚函数的工作原理
  4. 如果是多重继承只有一个虚表指针吗
  5. 使用过类模板吗
  6. 函数模板和类模板的区别
  7. 用过stl吗,用过哪些
  8. vector的一个扩容原理
  9. 如果让你实现vector动态删除然后容量缩小你会如何设计
  10. 了解过类型萃取吗
  11. 了解过c++11特性吗
  12. c++有哪些创建线程的方式
  13. 了解过智能指针吗
  14. 智能指针怎么解决内存泄露
  15. weak ptr怎么解决循环引用的问题
  16. tcp滑动窗口的原理
  17. tcp和udp的区别
  18. 为什么tcp不能是两次了解
  19. 为什么四次挥手不能是三次
  20. 怎么解决tcp粘包的问题
  21. 手撕算法:怎么判断一个链表是否有环

9.9 cvte正式批 c++软件开发二面

  1. 怎么解决tcp粘包问题(一面答的不好又问了一次)
  2. tcp怎么保证可靠传输
  3. tcp的停止等待协议是为了什么
  4. 线程同步的方式
  5. 线程之间怎么传递信号
  6. c++怎么传递信号
  7. 什么是内存泄露
  8. 如果我new了一个内存,然后在delete之前这个进程被系统杀死了。那这样是内存泄露吗
  9. linux 755指的是什么权限
  10. wine是使windows程序能够在linux下使用,你觉得他是怎么解决的
  11. 系统调用和函数调用的区别
  12. dll是什么文件
  13. 静态库和动态库的区别
  14. 什么情况下会发生dll缺失
  15. 怎么解决内存泄露的问题
  16. 你觉得这些定位开源定位内存泄露的工具是怎么实现的
  17. c++下的可执行文件和linux下的可执行文件是什么后缀
  18. windows下c++有哪些文件的后缀,干嘛用的
  19. 如果在调试过程中,出现了需要循环很多次才出现的错误应该怎么调试
  20. 最近在编程上遇到了什么问题
  21. 手撕单例模式线程安全写法
  22. 如果多个线程同时判断到当前对象未创建,应该怎么解决
  23. c++11中可以用什么特性替换单例模式中的static写法
  24. git和svn的区别
  25. git和github的区别
  26. 讲一下stl中map
  27. map和unordered map的区别

9.10 拼多多正式批 服务端工程师一面

全程就问了我两道算法题,让我理思路让我写

  1. 第一题是笔试题中的一道题,记得不太清楚了
  2. ```
    给定一个字符串,其中包含 数字(0-9)、字母(a-z,A-Z)、小数点(.),要求从中找出子串,该子串需满足
  3. 是一个合法的 十进制 数字,如是一个整数、浮点数
  4. 是符合1的条件里的所有子串里长度最长的,小数点也算在长度里,但是不影响大小的前导或者末尾0不算在长度里,如123.45的长度是6,00123的长度是3,123.4500的长度是6,123.046的长度是7

如果同时符合1和2的子串有多个,按数值大小从大到小全部输出

输入 123.456abc789.678.23500
输出 789.678 678.23500 123.456

```

9.11 bigo正式批 客户端开发二面

  1. tcp和udp的区别
  2. 如何基于udp实现tcp
  3. 构建哈弗曼数的思路
  4. 什么情况用栈什么情况用队列
  5. 什么情况发生内存泄露
  6. 空指针和野指针的区别
  7. 什么情况下产生野指针
  8. 什么情况会发生栈异常
  9. 手撕算法:判断一个整数是不是回文数。用不同的方法,考虑时间复杂度和空间复杂度。写出用最少辅助空间的算法
  10. 做过哪些项目
  11. 如何估算一片绿化占当前区域的比例

9.11 bigo正式批 客户端开发三面--手撕算法

  1. 完成二叉树的列遍历,同一列的节点按照根左右的顺序输出
  2. 给定金币,要你求最小的组合硬币数。
  3. top(k)问题,怎么求第k大的数。小根堆的执行过程。画图

9.16 网易正式批 客户端开发一面

  1. c++三大特性
  2. 继承,封装,多态讲一下
  3. public,protect,private讲一下
  4. 共有继承,保护继承,私有继承的区别。
  5. 既然私有继承,派生类不能够访问,为什么又要继承
  6. 如何访问其他类的私有成员
  7. 既然私有成员就是不想让外界访问,为什么又设计了友元的方式去能够访问私有成员
  8. 函数重载和函数模板的区别
  9. 函数模板是怎么去调用到对应的重载版本
  10. 函数模板在二进制文件中是存放了全部重载版本吗,还是怎么
  11. 函数重载max。是直接比较大小吗
  12. 函数重载max传递的类对象,想通过直接比较的方式怎么实现
  13. 重载运算符<有哪些需要注意的点
  14. 虚函数表是谁维护的
  15. 虚函数表存放的是什么
  16. 基类有一个虚函数fun,派生类有虚函数fun。用基类指针指向派生类对象调用的是哪个函数
  17. 派生类虚函数表的具体结构
  18. 基类指针怎么动态的知道自己指向的动态对象
  19. 讲一下抽象类
  20. 抽象类可以有成员变量吗
  21. 场景题:0-10000的数。已有500个数,可重复,判断某个数是否存在。如何设计
  22. 了解windows下的消息机制吗
  23. 数据库多次增删改,如何保证安全
  24. 了解事务吗
  25. tcp如何实现可靠传输
  26. c的struct和c++struct的区别
  27. 平时自己有封装的经验吗
  28. 你觉得算法题除了对付公司的笔试,在自己的工作中有什么帮助

9.16 高德地图正式批 c++研发二面

  1. const 的作用,函数前面和函数后面有什么不一样
  2. struct和class的区别,什么时候用struct,什么时候用class
  3. struct字节对齐的方式,字节对齐有什么好处
  4. c++内存管理
  5. 反转二叉树,递归和非递归做法
  6. 冒泡排序和快速排序的时间复杂度
  7. 求站点a到站点b的所有可达路径的方式,考虑查询
  8. 有了解过A*算法吗
  9. 类型萃取的实现
  10. 没打算考研吗?

9.18 拼多多正式批 服务端工程师二面

  1. 疯狂怼项目
  2. 了解过A*寻路算法吗
  3. 多线程和多进程的区别,什么时候用多线程,什么时候用多进程
  4. 一个类对象数据的初始化顺序
  5. tcp和udp的区别
  6. 什么时候用tcp什么时候用udp
  7. tcp三次握手为什么三次
  8. 重传为什么重传,什么情况重传
  9. 滑动窗口了解吗
  10. 计算一个马从左下角到右下角的路径数量(象棋的马)。
  11. 如果是是不规定从左下角到右下角。规定从a到b。你怎么确定它要前进的方向呢
  12. 红黑树添加一个数据,它是怎么实现平衡的
  13. 二叉树的遍历方式。什么时候用前序,后序,中序,和层次
  14. 怎么判断一个链表是否有环
  15. 快慢指针的方式要走多少步

9.19 老虎正式批 windows开发三面

三面可能就走个过场,基本没问啥问题,就问了个逆波兰式和智能指针和一个算法题

传面经,攒人品,希望大家拿到自己心仪的offer

在这里插入图片描述

#  C++ 工程师面经及答案汇总
最近专栏更新中,有需可关注



#面经##腾讯##广州视源电子科技股份有限公司##拼多多##老虎集团##BIGO##C++工程师#
全部评论
//kmp int IndexOfSubstr(const char* const raw_str, const char* const sub_str) { int sublength = 0; for (int i = 0; sub_str[i] != '\0'; i++) { sublength++; } vector<int> next(sublength, 0); int i = 1; int j = 0; while (sub_str[i] != '\0') { if (sub_str[i] == sub_str[j]) { next[i] = j + 1; i++; j++; } else { if (j != 0) { j = next[j - 1]; } else { next[i] = 0; i++; } } } i = 0; j = 0; while (sub_str[j] != '\0'&&raw_str[i] != '0') { if (sub_str[j] == raw_str[i]) { j++; i++; } else { if (j != 0) j = next[j - 1]; else i++; } } if (sub_str[j] == '\0') { return i - j; } else return -1; }
点赞 回复 分享
发布于 2019-10-10 10:10
老哥是不是在leetcode贡献了好多题解😂
点赞 回复 分享
发布于 2019-10-09 23:53
给老哥点赞,刚好用上哈哈哈哈
点赞 回复 分享
发布于 2019-10-10 14:52
点赞,评论,收藏 三连
点赞 回复 分享
发布于 2019-10-10 14:53
点赞,评论
点赞 回复 分享
发布于 2019-10-10 15:27
高德有没有现场面呀?
点赞 回复 分享
发布于 2019-10-10 17:38
大佬准备签哪呢?
点赞 回复 分享
发布于 2019-10-10 19:56
高德地图9.16号二面完,网易互娱9.16一面完,拼多多9.18号二面完都没消息。是不是凉凉了。有缘人知道消息给我个痛快
点赞 回复 分享
发布于 2019-10-10 20:47
这个是本科还是研究生啊
点赞 回复 分享
发布于 2020-02-19 23:24

相关推荐

不愿透露姓名的神秘牛友
11-01 21:31
投递小米集团等公司10个岗位 > 你都收到了哪些公司的感谢信?
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-07 22:44
点赞 评论 收藏
分享
评论
36
231
分享
牛客网
牛客企业服务