昨天一位读者分享了自己的 C++ 面试经历。简单沟通后,读者双非本硕,自嘲校招准备注定就是炼狱模式。50 家公司的 C++ 面经也整理好了。本次就分享下面经。以后分享学习路线和心得。

读者情况:双非本硕,本科机械,硕士做的软件开发课题。

学过 C++ 偏基础,但是面试前连多态都不会写。研三经历炼狱校招,从零开始学习,数据结构和算法也是从零开始。

时间:2020 年 10 月- 2021 年 4 月

结果:几乎面试了所有大厂,收到了 13 份 offer。虽然没有进大厂,但是拿到音视频开发 offer,音视频开发是理想岗位,待遇也比较满意。

1.六方云(10-21)

  1. 自我介绍

  2. C++ 语法

  3. 左值引用与右值引用有什么区别,左值引用和右值引用的目的是什么

  4. 虚函数问了好多

  5. 什么是多态

  6. 虚函数和纯虚函数

  7. 构造函数和析构函数能不能是虚函数

  8. std::move 是什么

  9. 计算机网络

    1. TCP/IP 的连接和断开过程

    2. timewait 是什么

    3. I/O 多路复用是什么

    4. http 接口的函数用过吗

  10. 操作系统

    1. 什么是线程、进程

    2. 多线程和多进程的优缺点

  11. 项目

    1. Qt信号与槽实现的机制

    2. 项目用的多线程是怎么实现的

    3. 怎么实现通信

2.万集集团(10-22)

  1. 自我介绍

  2. 项目:有做过嵌入式项目吗 总结:应该是 KPI,他想找做嵌入式的多点

3.医科达——电话面(10-23)

  1. 自我介绍

  2. 项目

  3. 多线程

  4. 网络编程:连接方式

  5. 算法:快速排序

  6. 面向对象三大思想

  7. 设计模式,列举一个

  8. 单例模式怎么处理多线程

4.联影——电话面(10-24)

  1. 自我介绍

  2. 项目介绍

  3. 说说项目的原理

  4. 面向对象

  5. 设计模式

  6. 非智力问题:

  • 怎么抗压

  • 怎么处理队员之间的问题

5.万兴科技(10-24)

  1. 自我介绍

  2. 看过哪些 C++ 的书

  3. 多线程,怎么判断线程结束

  4. vector 中迭代器失效的情况

  5. 虚析构函数

  6. FFmpeg 中对视频和音频的同步方法

  7. map 的内部

  8. rtmp 协议

6.网易实习

一面(10-28)(PASS1)

  1. 引用和指针的区别

  2. 静态链接库与动态链接库的区别

  3. 程序生成的过程

  4. 计算机图形学:

    1. 怎么对图像进行变换,变换矩阵是什么

    2. 还有其他简单的 OpenGL 问题

  5. 其他忘了,,,,

二面(11-2)

  1. 怎么自己实现 Qt 的信号与槽?

  2. 多态

  3. TCP 和 UDP 的区别

  4. 计算机图像学

  • 什么是插值?

  • 会做数据可视化吗?

其他忘了,面试官脾气不是很好,,

7.中望软件(10-31)(PASS2)

  1. 聊一下项目

  2. CAD 软件怎么使用

  3. 会不会 QT、MFC、STL

  4. 介绍中望公司的情况

(终于拿到第一份 offer!)

8.金山 WPS

电话一面(11-2)(PASS3)

  1. 假如定义了一个指针,后面接着一个循环并 return,会造成什么后果?(内存泄漏)

  2. 其他忘了(没有问项目)

电话二面(11-5)

  1. 知不知道 Qt5 对 OpenGL 有个支持性问题

  2. 音视频切换的多线程怎么处理帧切换的问题

  3. 大数据处理题:建立一个数据结构,存储 1 到 10 亿的数,要能够去重和插入(答案:用两个数组,建立二维表格)

  4. 找出一个 RGB 文件中出现最多的前十种颜色

9.传音控股电话面(11-7)

  1. 直接问项目的 OpenGL 怎么绘制视频,结果回答不好被嫌弃了;

  2. 死锁怎么产生的?有没有遇到过死锁问题?(多线程不是一般般的重要!)

10.网易互娱乐(11-12)

  1. 先做算法题:找出数组中次数最多的前 k 个数

  2. 说下 C++ 新特性 auto变量的使用注意事项

  3. OpenGL 的着色器在每个渲染步骤是怎样的?

  4. 设计模式、单例模式的线程安全问题

11.斗鱼直播(11-12)

  1. qt 的消息传递机制

  2. HTTP 网络协议好多内容

  3. 怎么实现 map<key,value> 的(key 是自定义类型)

  4. 单例模式

  5. 还有好多问题,几乎把计算机基础的难点都问了

12.富士康电话面(11-13)(PASS4)

做富士康的工业互联网。看简历,没问技术基础。给了 offer,但是只有 7K,其他补贴加起来只有 10K,难怪没人去

13.卡莱特电话面(11-17)(PASS5)

1.C 和 C++ 的区别 2.栈和堆的区别 3.双链表和单链表的优缺点 4.面向对象三大特性:封装、继承、多态,继承的作用是什么 5.了解 Qt 和 MFC 吗 6.工作地点 7.对薪资有什么要求

14.联想面试(11-27)

  1. C++ 和 java 的区别

  2. 描述 STL;vector 和 list 的区别

  3. 最近的项目——视频播放器设计

  4. vector 存放数据的注意

  5. 视频与音频同步

  6. 多线程同步

  7. 设计模式、工厂模式

  8. 文件断点续传

  9. 用英语简单描述自己的项目

15.新浪微博(12-1)

  1. OOP 三大特性、继承中三个修饰符的用法

  2. C++ 的 static 关键字

  3. TCP 连接过程中客户端与服务端使用什么函数实现连接

  4. 智能指针,weak_ptr 能够破坏环型引用的原理(引用计数的原理)

  5. 用两个栈实现一个队列

(秃头架构师面试,态度很好,叫我不要紧张。我印象深刻的一场面试之一)

16.广和通电话面(12-1)(PASS6)

  1. 聊一下项目

  2. 说下项目解决过程你有没有请教别人

  3. 说下最难忘的项目经历

17.汇川技术

一面(12-1)(PASS7)

  1. 项目简介

  2. STL、vector

  3. QML 与 QWidget 的区别 (QML 从 2.0 版本开始向移动端靠拢)

  4. 信号与槽机制、信号与槽与函数指针的比较

  5. 多线程下用信号与槽的优缺点 (connect函数的第五个参数实际上是用在多线程的情况下的)

  6. socket 的 TCP 的客户端与服务端

  7. 怎么保证客户端与服务端在突然断网的情况下保证另一端知道?(饱和机制、心跳机制、看门狗机制)

  8. 说说你的项目的亮点

  9. auto 关键字 (不能定义数组)

  10. Qt 的事件过滤器 (事件的传递是由子类往父类上传的)

  11. 开放性问题:大量数据无序输入,怎么有序输出?(使用最大堆最小堆) (一面的面试官是个态度很好的年轻小哥)

汇川技术二面(12-4)(PASS8)

  1. 介绍项目组成 - 滤波器的类型 - 怎么确定使用什么滤波算法

  2. 比赛过程中的团队合作事情

  3. 数学建模比赛的收获

  4. 上学期间最有成就感的事情

  5. Linux 中的互斥锁和 XX 锁

  6. 简述 STL

  7. 常用的排序算法

  8. 以太网了解吗?

  9. 网络编程

  10. 职业规划

  11. 家庭背景

18.声网测试(12-2)

  1. 介绍音视频测评岗位的工作内容

  2. 用的什么协议

  3. 视频播放器、直播推流协议

  4. 文件传输、视频协议相关工作

  5. 讲解下用了音视频库的什么模块

19.不知名的公司的音视频开发岗(12-4)

  1. 做两道编程题:

  • 快速排序(函数参数只有 int array,int length)

  • 用两个线程实现循环加数

深拷贝与浅拷贝区别

C++ OOP 三大特性

多态的用法

项目:视频播放器用到 FFmpeg 哪些库

H264 编解码原理

  • 运动补偿

  • 熵编码

ALCode 视频解析工具的使用

直播工具使用了什么服务器

(地点在武汉,印象最深的一场面试,面试官很友好,给我讲了半小时的音视频岗位的优势。从此便决定了一定要做音视频开发)

20.腾讯会议客户端(12-4)

  1. 项目——视频播放器的功能

  • 视频中的视频信息、音频信息的数据怎么存放

课题中的难点

C++ 智能指针

  • shared_ptr 的特殊用法

C++ 内存管理

Windows 系统怎么预防死锁

怎么解决程序 crashed 问题

对音视频编码的了解

有几种 NAL,如果在视频中存放信息存放在哪个帧

怎么设置压缩码率?

21.恒生电子

一面(12-9)(PASS9)

  1. C++11 什么新特性好用 多线程

  2. 用队列处理数据有什么好处?

  3. 用过什么数据库?

  4. 多线程与多进程的区别?

  5. 你认为你的优缺点是什么?

二面(12-10)

  • 没问技术问题,只问背景问题。应该是 KPI

22.新思科技

一面(12-14)(PASS10)

  1. static 在 C  和 C++ 的用法

  2. virtual 与析构函数

  3. Linux 中用什么命令查找文件

  4. 在项目中使用过多态吗

  5. 用英文介绍自己的爱好

二面(12-18)

  1. 项目

  • 功能

  • 代码量

  • 花多长时间

STL

  • 怎么解决哈希冲突

长二进制反转

virtual 析构函数

写一个多态,展示内存泄漏

23.浩鲸科技(12-15)

  1. 操作系统:消息队列、进程消息

  2. strcpy 和 memcpy 的区别

  3. 多态具体怎么定义

  4. 指针、引用怎么在多态里面用的

24.映客直播

一面(12-17)(PASS11)

  1. 学过什么课程

  2. 指针和引用的区别

  3. 局部 变量与全局变量

  4. 内存的分类

  5. OOP 三大特性

  6. Linux 常用命令

  7. 简单聊聊直播推流工具

  8. 边下边播用什么协议

  9. 数据库的事务

  10. 进程和线程、进程的通信方式、线程的安全问题

  11. TCP 和 UDP 的区别

  12. HTTP 的返回码

  13. 怎么用两个栈实现一个队列

  14. 怎么获取二叉树的高度

二面(12-22)

  1. 除了 C++,学过其他语言吗

  2. MP4 包含了什么协议

  3. 抖音、直播分别用什么协议

  4. TS 流有什么内容

  5. 怎么传递视频信息

  6. 怎么解决视频卡顿问题

  7. 内存泄漏怎么排查

  8. 安卓的生命周期

  9. 设计模式有哪几种?单例模式有几种创建方式?

  10. Linux 的常用命令

  11. 用过 shell 吗

  12. 怎么通过 shell 获取 MD5 码?

  13. Linux 获取字符串的方式?

  14. 建议:多了解前沿的流媒体格式!

25.百富计算机(12-22)(PASS12)

  1. 多进程多线程用过吗?

  2. Linux 命令了解吗?

  3. FFmpeg 编译过吗?

  4. 音视频解码过程的格式

  5. 视频播放器开发的过程

  6. OpenGL 使用的过程

  7. 顶点着色器与片元着色器的不同

  8. VBO、FBO

  9. 画面闪烁是什么原因造成

26.埃森哲面试(12-24)

  1. 群面,3 个候选人 1 个面试官

  2. 公司介绍:世界 500 强  咨询公司 外企

  3. 遇到难题以及解决方法

  4. 在实习、项目中,怎么处理不属于自己工作范围内的工作

  5. 职业方向规划?技术专家还是项目管理

27.孩子王

一面(12-29)(PASS12)

  1. C++ 有几种构造函数

  2. STL 的迭代器失效,怎么解决

  3. C++ 与其他语言的区别?(指针、回收)

  4. 智能指针的用法

  5. 智能指针的使用场景:连接数据库

  6. STL 是复制性还是侵入性

  7. 红黑树比AVL的优势,为何用红黑树

  8. 红黑树的高度

  9. 数据库的锁、事务、引擎

  10. 场景题:

  • 用户的余额显示、余额减少等,要不要用事务?

  • 用户系统,有用户ID。加入有手机号注册,怎么验证是否注册

  • 用户扩大时,怎么扩容?

I/O 多路复用的理解

动态规划与贪心算法的区别(背包问题分析)

二面(1-8)

  1. 多线程的使用场景

  2. 多线程的锁

  3. 数据库为何用 SQLite

  4. 进程间的数据共享

  5. 怎么实现音视频同步

  6. 多线程和多进程的区别

  7. Linux 常用命令?

  8. 岗位必备技能是:C++ 基础、网络、数据库。是电商中台

28.富途证券后台开发(1-4)

  1. 先做几道题

  2. 说说从浏览器输入网站用到的协议

  3. auto addr = (type) malloc(size); memcpy(addr,"apple");操作系统满的时候会发生什么?

  4. MySQL 加快查询的方式

29.CETV(1-5)

  1. Qt 信号与槽的机制

  2. 为什么 new QWidget 不需要 delete

  3. vector 的内部机制

  4. 编译过程

  5. 虚函数表原理,虚表编译的过程

  6. new 和 malloc 的区别

  7. 智能指针内部原理

  8. 多线程

  9. TCP、UDP 的区别

  10. TCP 怎么保证可靠传输

  11. 在一个局域网中怎么连接两台电脑?

  12. 平时怎么学 C++

30.商汤科技(1-6)

  1. 简单介绍项目—— vector 怎么 clear

  2. TCP 粘包、丢包

  3. 进程的通信

  4. 内存泄漏

  5. 智能指针

  6. Qt 实现多线程

  7. QSS 属于第几个版本

  8. 视频播放器怎么音视频同步

  9. 设计模式

  • 举例工程模式

Qt 的 TableWidget 和 Table View 的区别

做题

  • 多态的选择题

  • 手写 Rational 类(包括<<   >>重载)

31.科曼医疗(1-7)(PASS13)

  1. 介绍硕士课题项目

  2. Qt 自定义控件方法

  3. 视频播放器

  4. Qt 多国语言

  5. QSS 主题样式

  6. 设计模式

  • 工厂模式的应用场景

  • 设计模式的优缺点

信号与槽、和事件的区别

视频与音频怎么同步

介绍公司的研发方向:

  • 应用软件开发

  • 下位机驱动开发

  • 单片机

  • Windows 服务器开发

32.思谋科技(1-11)

  1. 多态及其用处

  2. 静态多态包含什么类型

  3. 纯虚函数

  4. 虚析构函数

  5. 重载与重写的区别

  6. extern "C"{}

  7. const 的作用

  8. 指针和引用的区别

  9. C++11 新特性

  • 右值引用

  • STL

  • 哈希

强制类型转换

Qt 的优点、缺点

Qt 的核心机制

Qt Graph

信号与槽的优点和缺点是什么

Qt connect 函数的连接方式

TCP 三次握手的过程

手写代码:自定义 String 类(真的要每天都复习八股文

33.华阳国际设计(1-20)(PASS14)

  1. 实习的时候做什么工作

  2. 指针和引用的区别

  3. 空指针、悬垂指针

  4. TCP 的三次握手

  5. 部门分工:

  • 图形引擎(C#)

  • 平台开发(java、C++)

  • 建模(C++、OpenGL)

34.中软国际(外包公司)

一面(1-25)(PASS15)

  1. 多态、虚析构函数

  2. 强制类型转换

  3. 类能否嵌套

  4. vector 改变容量时要注意什么

  5. 对象移动

  6. unique_ptr 智能指针

  7. C++11 多线程

  • lock_guard 怎么自动处理的

  • 多线程怎么发送信号

  • 线程怎么退出

GDB 怎么调试段错误,怎么查看栈

Linux 怎么处理 core 文件

Git 用过吗?

二面(1-28)(PASS16)

  1. 多态的定义

  2. 代码的处理过程、汇编的作用

  3. new 和 malloc 的区别

  4. 内存的分类

  5. STL

  • vector 的用法

  • 项目中是怎么用的

Linux 用过什么指令

项目都是自己做的?

Qt 多线程用什么函数

计网用过什么协议

智能指针

快速排序的思路

MFC 用过吗

设计模式、单例模式

场景题:找出前 K 个最大元素的值(最大堆、最小堆的用法)

三面(1-28)——经典好问题,必须好好分析(PASS17)

  1. 写代码:找出数组中数量超过一半的元素

    int GetNum(int *array,int length) {unordered_map<int,int> mp;for(int i = 0;i<length-1;++i){++mp[array[i]];}for(int i = 0;i<length-1;++i){if(mp[array[i]] > length / 2){return array[i];}}return -1;//没有的话返回-1//加入数据很大怎么办?——先排序sort(array);//sort的原理是什么return(array[length / 2]);
    C++的 sort 函数是怎么实现的?
  2. 音视频:YUV 格式与 RGB 格式的区别

  3. 怎么实现一个服务端连接多个客户端?

  4. auto 的类型判断发生在什么阶段(编译期) 如果是在运行期的话会发生什么问题

  5. 多态的分类

  6. 类型转换

  7. 智能指针

  8. 锁的类型,自旋锁的原理

  9. GDB 的常用命令

  10. 内存的分类

  11. 一个栈多大?

35.中国电子系统(1-26)

  1. 实习的时候做的项目,举例做过的工作

  2. 做的软件项目的流程

  3. 单例模式的实现方法

  4. 观察者模式

  5. 哈希表的原理以及作用、怎么查找值

  6. 计网

  • 七层模型

  • IP 协议

  • 三次握手和四次挥手

  • 为什么要进行四次挥手

线程和进程

  • 从 CPU 的角度区别线程和进程

快速排序的思路、复杂度

FFmpeg

36.乐鑫嵌入式(1-27)

  1. 介绍视频播放器

  2. 介绍研究生课题

  3. 代码题:十进制字符串转十六进制字符串

  4. 选几个关键字描述自己

  5. 你的优点和缺点

  6. 你期望的工作

(应该是KPI)

37.中元汇吉(1-27)(PASS18)

  1. OOP 特性、虚函数

  2. 内存泄漏、智能指针

  3. STL

  4. 学过什么数据结构、举例二叉树的用法

  5. QT 信号与槽

  • 原理

  • 优势

  • 自定义结构体到信号与槽要注意什么

工厂模式、单例模式原理和用法

锁要注意什么

GDB 用过吗

项目中要怎么调试代码

MySQL 索引是什么

了解软件架构吗?MVC 模式了解吗?

怎么使用软件设计思维?是正向还是逆向?

38.Insta360(1-28)(PASS19)

  1. 视频播放器

  • YUV 是怎么传递到 OpenGL 的

  • AVFrame Parma 的意思

  • YUV 有很多采样格式,你采用什么采样格式

STL

  • vector 和 list 的区别

  • map 与 unordered_map 的区别(考虑到有序与否的区别、哈希函数)

  • C++11 的 inplace_push_back 与 push_back 的区别

unique_ptr 与 shared_ptr 的区别

lambda 表达式、怎么捕获外部变量

virtual 析构函数

多继承的问题

多线程与多进程的区别

  • 内存

  • 地址空间

多进程的锁

  • 自旋锁原理

  • 怎么避免死锁

socket 阻塞和非阻塞的区别

TCP 中间连接的时候断开会发生什么(重传、超时、等待状态、TCP 可靠连接原理)

进程内部的栈内存、堆内存、各自的增长方式

双链表怎么查找倒数第二个结点

OpenGL 常见的坐标系的变换顺序

39.wind金融(2-3)

  1. 第 1 个面试官

  • 写过多少行代码

  • C++ 怎么申请连续的内存

  • vector 怎么用

  • C++ 的垃圾回收机制

  • 工程模式是什么,3 种工工厂模式的区别

  • 排序算法有哪些,哪些的复杂度是稳定不变的

  • 多线程

  • 自旋锁是什么

  • 数据库用过吗

第 2 个面试官

  • 音视频怎么同步

  • 展示同步的代码

  • 视频播放器

  • 展示平衡功能项目

  • 多线程怎么同步

  • GDB 怎么调试

  • vector 是不是线程安全的,怎么写个线程安全的 vector

  • 数据库怎么 sip

  • C++11 的新特性

  • 指针和引用的区别

40.CVTE

一面(2-22)(PASS20)

二面(2-23)

41.腾讯企业微信客户端(2-26)

一面(2-26)(PASS21)

  1. 1 小时内做 3 到算法题

  • 反转单链表

  • 找出数组中最小的K个数

  • 长整数相加

讲解题目(做的不好,分析复杂度)

描述 Qt 的消息传递机制

Windows 消息机制有哪些

做题

  • 区别 const 指针与 const 变量

  • 引用的用法(左值引用与右值引用、引用不能改变绑定对象)

  • 多态的用法

二面(3-5)(PASS22)

  1. 信号与槽的底层原理;信号与槽怎么做到性能优化

  2. 哈希表与红黑树的对比:结构、查找

  3. Q t的多线程的信号与槽

  4. 虚函数表原理

  5. 构造函数调用虚函数可以吗?会发生什么?

  6. YUV 与 RGB 的区别

  7. 音视频同步的方法

  8. 数据库有几种范式

  9. HTTP 的底层模型用什么实现(TCP)

  10. 网络的七层模型,作用、传输单位分别是什么

  11. TCP 的三次握手

  12. 写一个快排;能否用非递归方式实现;什么时候复杂度最大?

三面(3-11)(PASS23)

  1. 继承、多态的定义

  2. 听过多用组合,少用继承吗

  3. Qt 的信号与槽原理,怎么了解这个原理的?

  4. 进程、线程的区别,对 OS 而言有什么目的

  5. 对 I、B、P 帧的了解、MOOV 的格式了解

  6. 音视频的了解

  7. PTS、DTS的区别

  8. YUV 与 RGB 的区别

  9. 音视频同步的方法

  10. 讲下视频播放器

  • 流程

  • 怎么使用多线程

  • 能否用一个线程实现

  • 考虑功能扩展吗

毕业课题

  • 如何采集、滤波、处理

  • 考虑数据采集中断的情况吗

  • 考虑 C/S 模式吗

实习

  • 文件传输是怎么实现的

  • 做过什么工作

平时怎么学习

四面(3-11)

  1. 给出一个二维 vector 表示点到原点的距离。一个五个点,5X5 的二维 vector。求从原点出发,再回到原点的最短路径,要求必须打印输出结果

  2. (条件概率)已知城市中蓝色:绿色车的比例是 15:85,目击者称看到蓝色车肇事逃逸,但是人区别蓝色和绿色的正确率是 80%。求真的是蓝色车肇事逃逸的概率

(三面、四面在同一天进行。据说有的人腾讯面了六面。我止步于吃已经很满足。代码确实不会写)

42.万兴科技

一面(3-2)(PASS23)

  1. Qt、C++ 分别用过多久?

  2. 代码量多少

  3. 比赛中你负责什么角色

  4. OpenGL 了解的深度、在 QT 中的用法

  5. FFmpeg 的了解

  6. Qt 用过多线程、网络吗

  7. Qt 3D 了解吗

  8. 实习过程中学会什么

  9. C++11 新特性;解释右值引用是为了解决什么问题?(移动语义)

  10. 浅拷贝和深拷贝的区别

  11. OOP 设计原则

  12. 博客有多少篇

  13. 喜欢看什么书

HR面(3-5)(PASS)

综合面(3-9)

  1. 对 FFmpeg 的使用

  2. 对音视频的了解

  3. 对 C++ 的了解

  4. 用过 C++ 的闭包吗?

  5. OpenGL 的了解

  6. 其他 offer

  7. 对公司文化的了解

  8. 你目前的学习方式是什么?

43.元戎启行

一面(3-10)(PASS24)

  1. 介绍一些康复器械项目

  2. C++11 的新特性

  • lambda 表达式

  • 多线程共享内容问题,共享对象存放在哪个空间

进程与线程

  • 多进程、多线程

  • 多进程通信的方式,有几种信号

OSI 七层模型

  • TCP 与 UDP 的区别

  • TCP 拥塞控制

要了解 MySQL

红黑树的定义

手撕代码:把有序链表转为平衡二叉树

  • 怎么遍历结点

  • 复杂度

  • 优化遍历方式

二面(3-15)

  1. 虚函数

  • 虚函数是类的定义出现还是对象的时候出现

  • 纯虚函数

钻石继承为何不能出现

智能指针

  • 环型引用

  • shared_ptr 的引用计数原理

多线程的原子类型

auto 关键字能给数组赋值,但是不能定义

用过 Qt 的什么模块

44.VIVO

一面(3-12)(PASS25)

  1. 讲一下对 OOP 的理解

  2. 讲一下单例模式

  • 多线程的单例模式

  • 互斥量为何能够用在多线程

数据库

  • 表是否一定要有主键

  • 主键与唯一索引的区别

  • left join ,right join,full join

  • 怎么建立索引

  • 索引怎么优化

HR面(3-19)

  1. 介绍家庭情况

  2. 对 IT 工程师的理解

  3. 实现过程的收获

  4. 举例压力大的实例,压力大的时候怎么解决

  5. 收了什么 offer,为什么拒了

  6. 你认为手机会怎么发展

  7. 举例说明你说服别人接收自己观点的一个例子

45.富途Windows客户端开发

一面(3-16)(PASS26)

  1. 虚表是怎么使用的?虚表指针存放在哪里?

  2. 构造函数能否为 virtual,能否调用虚函数?

  3. coding:两数之和,非有序

  4. coding:LeetCode61 ——给定链表,按照某个规定旋转链表

  5. 逻辑题:有 10 箱金子,,,,,,

  6. 网络:

  • TCP 与 UDP 的区别

  • TCP的窗口拥塞控制

OS:怎么避免死锁?

二面(3-19)(PASS27)

  1. 下面是有一个全局变量 a 和两个线程,这两个线程同时开始并发执行各自的代码, 在两个线程都执行结束后,请问 a 的值为______
    static int a = 0;

  • 线程1: for(int i=0; i<10;i++) a = a + 1;

  • 线程2:for(int i=0; i<10;i++) a = a + 1;

  1. 已知公司 OA 数据库有一个员工信息表,包含员工 ID,员工姓名,入职时间,和离职时间。财务审核时发现 201803 到 201808 这 6 个月,当时所有在职员工都少发了工资,现在老板需要了解有多少人受影响需要获得补偿。请写出查询语句。

select ID  where entryTime > 20180301  and leaveTime < 20180831
select ID where entryTime < 20180301 and leaveTime > 20180831
  1. 实验室有 100 个瓶子,其中有一瓶装有慢性毒药(第 3 天发作),另外 99 瓶装有蒸馏水。请问至少需要多少只小白鼠才能在3天内找出哪一瓶是慢性毒药?_______只

4.找出出现频率最高的前 K 个数,或者从海量数据中找出最大的前 K 个数

5.实现排序二叉树的插入方法

tyedef struct node {int data;struct node* left;struct node* right;
}*BiTree;
void insertBST(BiTree& bt, int data)
{if (!bt){BiTree ins = new Node;ins->data = data;ins->left = ins->right = nullptr;bt = ins;}else if (bt->data > data)insertBST(bt->left, data);elseinsertBST(bt->right, data);
}

综合面(3-23)

  1. 对公司的了解

  2. 最近的 offer?为何不要?

  3. 家庭成员、是否单身

  4. 用三个词形容自己

  5. 参加过的社团

  6. 为何选择医学信息工程

  7. 择业因素

  8. 兴趣爱好

  9. 学习方式

  10. 自身的优势

  11. 怎么完成学校到公司的过渡?

46.美的

一面(3-17)(PASS28)

  1. OOP 三大特点

  2. STL 常用容器

  3. 栈与堆的区别

  4. new 和 malloc 的区别

  5. 指针和引用的区别

  • sizeof 的区别

  • 自增的区别

  • 内存上绑定的区别

工厂方法模式

TCP 三次握手

内存泄漏是什么意思

数据库

  • 事务的定义、4 个特性

  • 脏读、幻读

  • 索引(数据结构、优缺点)

  • 锁的作用

Linux

  • 在文本中快速查找内容

  • 找出进程的P ID (PS)

  • 如何查看 OS 的大小(free)

工作问题

  • 举例说明遇到的难题以及解决方法

  • 列举工作上的过程

  • 说服别人接收你的观点的例子

  • 团队合作的例子

二面(3-17)(PASS28)

  1. 你的专业是做什么的?

  2. 做过窗口的信号共享吗?

  3. 项目的滤波算法是什么?

  4. 音视频项目的难题是什么?

  5. 你的项目来源是哪里?

  6. 遇到过程序崩溃的情况吗?

  7. TCP 的连接、释放过程

  • time_wait 状态分别是什么?

  • 分别发生在客户端和服务端的什么阶段?

(终于拿到所谓大厂 offer。但是是 IT 部门,不是研发部门,在佛山。所以拒了)

47.科大讯飞(3-23)

  1. 介绍康复训练系统

  • vector 如何处理数据

  • 数据库

视频播放器

  • 缓冲机制

  • OpenCV 平滑操作

是否用过 MySQL

生产者消费者模式

用过 socket 的 I/O 模型吗?

多线程的用法

  • 主线程

  • 次线程

  • 线程池

怎么操作文件系统

new 和 malloc 的区别

48.多益网络(3-24)(PASS)

  1. 介绍项目、视频播放器

  2. FFmpeg 怎么用的

  3. 视频文件是什么格式,怎么存放的

  4. 怎么设计视频播放器的暂停?后端是怎么处理的?进度条怎么显示的?

  5. 多线程怎么用的?

  6. 指针和引用的区别?在传递参数上有什么区别?

  7. 函数未定义时会怎么样?

  8. 怎么删除双向链表?

  9. 快排的思路

  10. 堆是不是二叉树

  11. 写代码:用 C++ 实现全排列

  12. 工作问题:如何看待加班?

49.冰川网络(4-2)

  1. 硕士毕业课题

  • 多线程

  • 怎么切换线程

  • 如何共享数据

  • C/S 模式是如何处理的?

  • 用 TCP 怎么传递消息?

TCP 与 UDP

  • 为何 TCP 没有 UDP 快

  • 用 UDP 怎么实现可靠的传输?

算法问题:网格中有 2 个点,怎么找到从 A 到 B 的最短路径?(用广度优先搜索)

数据库:为何索引的数据结构用 B-tree?

(因为数据库主要消耗在磁盘 I/O 上,所以要优化磁盘 I/O ,如果用红黑树,树的深度太高,消耗磁盘 I/O 太多,速度会太慢)

50.英特尔现场面(4-12)

  1. 做一份笔试,问的比较细节,操作系统比较重要,几个 C语言的关键字没用过

  2. 三个面试官轮流进来房间面试,一个面试官问半小时。问的技术问题不多,主要问项目细节。

  3. 其中一个面试官的一个问题用英语问,要求用英语回答并讨论。这个面试官告诉我好多面对项目的态度和看法,要发散思维,考虑用户体验。

(最后一家面试以英特尔结束,算是完美结束了。反正不留上海,不过就不过了)

‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧  END  ‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧‧关注我的微信公众号,回复“加群”按规则加入技术交流群。

欢迎关注我的视频号:

点击“阅读原文”查看更多分享,欢迎点分享、收藏、点赞、在看。

硬核 | 50 家企业 C++ 面经分享相关推荐

  1. 2021中国最具创新力企业榜发布,50家企业上榜

    福布斯中国再次携手易观分析,推出"2021中国最具创新力企业榜",依旧从商业模式.研发投入.自主知识产权.科技成果转化及自身成长性等维度出发,针对不同领域的发展现状.竞争情况以及发 ...

  2. C++ 50 家企业校招面经

    校招面经 大家好,我是唐唐. 昨天一位读者分享了自己的 C++ 面试经历.简单沟通后,读者双非本硕,自嘲注定就是炼狱模式.50 家公司的 C++ 面经也整理好了.本次就分享下面经.以后分享学习路线和心 ...

  3. 硬核知识,C/C++移植法则分享

    随着移动互联网和物联网技术的兴起,网络加密性要求以及HTTPS 流量不断提升,x86架构越发难以满足企业的需求,地位变得越来越不稳固. 近年来,在ARM优势急速凸显后,x86应用向ARM的迁移也成为一 ...

  4. 吐血整理50家企业真实大数据面试题!!学长实测,真实面试!!快收藏!

    文章目录 前言 京东面试题 58面试题 新浪面试题 搜狐面试题 360面试题 小米面试题 顺丰面试题 OPPO面试题 VIVO面试题 华为面试题 boss直聘面试题 搜狗金融面试题 瓜子二手车面试题 ...

  5. 面试官:多线程硬核50问!能回答一半就让你过

    前言 金九银十快要来了,整理了50道多线程并发面试题,大家可以点赞.收藏起来,慢慢品!~ 1.为什么要使用多线程 选择多线程的原因,就是因为快.举个例子: 如果要把1000块砖搬到楼顶,假设到楼顶有几 ...

  6. 硬核评测:企业上云的极速存储挑战,华为云全新极速IO云硬盘性能评测

    来源:至顶网 作者:董培欣 借助华为云全新一代极速IO云硬盘开启邀测的时机,至顶网评测实验室展开了一次华为云极速IO云硬盘与超高IO云硬盘的性能对比测试活动,并且尝试通过相关测试成绩,对云硬盘的应用能 ...

  7. 2018 中国准独角兽 TOP 50 夏榜发布!146 家投资机构、227 家企业参与

    7月6日,由创业黑马主办.i黑马协办的"2018独角兽峰会"在京举行.会上,i黑马正式发布"2018中国准独角兽TOP50夏榜"(以下简称"夏榜&qu ...

  8. 微软、华为海思、高通等 50 家公司源代码被泄露!

    一个木桶的盛水量,是由最短的那块板决定的.在安全领域,什么才是那条短板?亦或是人,亦或是工具. 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 一场场代码泄露事件的发生将安全问题再次推进 ...

  9. 泰达机器人董事长_50家企业的领袖汇聚一堂,共同探讨行业趋势走向

    "机器人是智能制造的核心和基础,我们肩负着未来经济最重要的驱动力,从任何角度来看,正所谓'三年小运,五年大运',未来机器人的'运'已经到来."3月13日,高工机器人董事长张小飞博士 ...

最新文章

  1. 今天买书了《JavaScript 权威指南》英文版
  2. Twitter-Snowflake,64位自增ID算法详解
  3. java list clear 垃圾回收_list.clear()vs list = new ArrayList Integer(); [重复]
  4. AppiumDriver java部分api
  5. SQL必知必会-视图
  6. 计算机需要会那些英语翻译,计算机专业英语翻译
  7. linux php 5.3 变慢,异常在 PHP 5.3 中的最佳实践
  8. 华为发布MetaAAU 能耗降低30% 性能节能双提升
  9. nginx并发性能测试
  10. Struts 2中文件上传
  11. Python 的OOP 面向对象编程基础
  12. ActiveX如何调用引用该ActiveX的网页中的JavaScript函数
  13. Android 修改屏幕亮度
  14. 你是儒系程序名猿,还是佛系开发大神?
  15. ts 报错:‘new‘ expression, whose target lacks a construct signature, implicitly has an ‘any‘ type.
  16. 前端高级——Node的变迁
  17. 阿里、百度、腾讯招聘 Java 程序员的技术标准,你达到要求了吗?
  18. 推荐几部和「隐秘的角落」同样好看的电视剧
  19. GO connectex: A connection attempt failed because the connected party did not properly respond 已解决
  20. Linux网络编程 入门

热门文章

  1. eclipse / Eclipse 3.4 / MyEclipse10.x / Rational 7.5 / netbeans 6.9
  2. 无人驾驶汽车系统架构汇总
  3. ASN.1笔记——基本类型详述
  4. 6点让吃鸡游戏成为热点
  5. 浏览器尺寸判断(兼容标准及低版本ie浏览器)
  6. 网络安全实验二 网络扫描及安全评估实验
  7. Wsyscheck20080126(V1.68.24)
  8. 电脑怎样连接虚拟串口服务器,PC机通过蓝牙虚拟串口进行通信
  9. java 如何创建一个数组_如何用Java创建一个数组?
  10. mysql索引优化有几种_mysql索引优化