面试面经 · 华为
【华为】C++后端一面(语言基础+网络分层+手撕字符串处理)
【华为】C++后端一面
基本信息
| 项目 | 内容 |
|---|---|
| 公司 | 华为 |
| 岗位 | C++ 软件开发(OD/校招) |
| 轮次 | 技术一面 |
| 时间 | 2025年6月 |
| 面型体感 | 标准基础筛选,不刁钻但要求扎实 |
| 结果 | 通过 |
面试题目(按提问顺序)
- 自我介绍,介绍个人背景、项目经历和开发技能
- C++ 和 C 的区别有哪些?(面向对象、泛型编程、异常处理等)
- #define 和 const 的区别?(编译期 vs 预处理、类型安全、调试友好度)
- 堆和栈的区别?new/delete 和 malloc/free 的区别?
- C++11 有哪些新特性?(智能指针、auto、右值引用、lambda 等)
- 多态是什么?虚函数的实现机制?(vtable 和 vptr)
- vector 和 list 的区别?vector 的扩容机制是怎样的?
- STL 中有哪些常用容器和算法?
- 计算机网络七层模型 / 五层模型?各层的主要协议?
- TCP 三次握手和四次挥手?为什么不能两次握手?
- HTTP 和 HTTPS 的区别?HTTPS 的加密过程?
- 什么是死锁?产生的四个必要条件?如何预防和解除?
- 进程间通信方式有哪些?
- DFS 和 BFS 的区别和适用场景?
- 介绍一下负责项目的架构和具体功能模块
- 手撕代码(本地 IDE 编译运行):字符串处理题(如:给定字符串如 "$ad$$gf$",算出最后一个 $ 符号前的字母数量)
面试感受 / 反馈
- 一面是标准的基础筛选,不追求刁钻但要求基本功扎实
- C++ 基础题要能"可追问":不能只答一句话,要能展开到原理和工程应用
- 手撕代码需要在本地 IDE 完成,要提前熟悉编译运行流程
- 面试官会看三个方面:语言基础、数据结构体系、现场编码能力
准备建议
- C++ 基础高频题要准备到"三层深度":概念→原理→工程应用
- 手撕代码要在本地 IDE 练习,不只是在 LeetCode 网页上写
- 网络分层、死锁、进程通信是必考项
- 机试分数也很重要(满分 400),建议提前刷 LeetCode/牛客算法题
反问示例
- 部门主要做什么方向的业务?
- 后续工作中可能会用到哪些技术栈?