看到大家都在牛客上写面经, 我也来凑一下热闹, 本人是一所普通高校的研究生 (非 211,985 高校), 自动化专业 (非计算机) 上个星期拿到了网易内推 C++ 研发岗位的 offer, 在这里要感谢师姐给予的内推的机会, 同时感谢牛客, 从八月初开始一直都在牛客上刷题, 从牛客上学到了很多很多, 牛客真是一个特别好的网站
对于一个非计算机专业的学生, 基本上所有的计算机知识都要自己去摸索, 一路走来真的有点不容易, 下面是网易三次面试遇到的一些问题在这里总结一下 (我问到的知识都比较基础, 可能是因为我是非计算机专业的学生吧):
网易一面 (33 分钟):
网易一面是电话面试, 当天接到电话特别鸡冻, 中间电话还断了一次, 不过面试官很 nice, 断了以后又立马给我打过来了, 下面是我电话面试遇到的问题:
(1) 多态性都有哪些?(静态和动态, 然后分别叙述了一下虚函数和函数重载)
(2) 动态绑定怎么实现?(就是问了一下基类与派生类指针和引用的转换问题)
(3) 类型转换有哪些?(四种类型转换, 分别举例说明)
(4) 操作符重载 (+ 操作符), 具体如何去定义,?(让把操作符重载函数原型说一遍)
(5) 内存对齐的原则?(原则叙述了一下并举例说明)
(6) 模版怎么实现?
(7) 指针和 const 的用法?(就是四种情况说了一下)
(8) 虚函数纯虚函数虚函数与析构函数?(纯虚函数如何定义, 为什么析构函数要定义成虚函数)
(9) 内联函数 (讲了一下内联函数的优点以及和宏定义的区别)
(10) const 和 typedef(主要讲了 const 的用处, 有那些优点)
(11) 排序算法有哪些? 快速排序怎么实现的? 最好时间复杂度, 平均时间复杂度
(12) 链接指示: extern C(作用)
(13) c 语言和 c++ 有什么区别?(大体讲了 一下, 继承多态封装异常处理等)
一面面试了 33 分钟, 问的都很基础, 问的基本全是 c++ 的基础知识, 最后面试官问我有什么问题要问的, 我问接下来还能进入二面吗? 然后面试官说这个面试要综合评价过以后才能决定, 然后他又问我如果进了网易能过来实习吗? 我当时爽快的就说可以啦
网易二面 (50 分钟):
隔了一个礼拜后收到了网易二面的预约电话, 当时 hr 的语气感觉面试的人很多的样子, 都安排不过来, 本来要给我安排在第三天面试的, 我说第三天有事 (华为提前批面试), 后来安排到了第二天, 感觉自己都没太准备, 当时特别紧张
网易二面是现场面试, 面试官依然很和蔼 (自己运气比较好), 在我介绍的时候, 面试官开始看简历, 貌似根本没有听我的自我介绍, 上来就问到项目的事情, 其实我的项目是搞 PLC 的, 和 c++ 研发一点关系也没有, 所以他不是特别感兴趣, 因为我简历上写了自己会用 qt 进行界面设计, 他就上来问 qt, 可是我都是好久以前看过的书了, 当时上来就问蒙了, 大体说了一下, 感觉表现的特差, 幸好当时我转移话题, 一直强调自己 c++/c 还有数据结构及算法比较擅长, 终于面试官被我转移到了我擅长的方面了, 下面是我面试过程中问的一些问题, 供大家参考:
(1) qt 类中的一些继承关系?
(2) qt 的信号与槽机制?
(3) qt 有那些类, 控件?
(4) plc 是个什么玩意?
(5) strcpy 函数的编写?(这个函数很熟悉, 后来阿里校招面试也让现场编写了)
(6) 数据结构中二叉树的非递归遍历?(现场画图举例讲解的, 所以大家面试的时候尽量多动笔)
(7) c++ 中四种类型转换机制?
(8) 继承机制中对象之间是如何转换的?
(9) 继承机制中引用和指针之间如何转换?
(10) 虚函数, 虚函数表里面内存如何分配?(这个考前看过了, 答的还不错)
(11) 如何实现只能动态分配类对象, 不能定义类对象?(这个牛客上的题目, 我把如何只能动态分配和只能静态分配都讲了一下)
(12) stl 有哪些容器, 对比 vector 和 set?
(13) 红黑树的定义和解释?
(14) const 关键字的作用?(const 成员函数, 函数传递, 和 define 的区别)
(15) 静态成员函数和数据成员有什么意义?
(16) 模版特化的概念, 为什么特化?
(17) explicit 是干什么用的?
(18) strcpy 返回类型是干嘛用的?
(19) 内存溢出有那些因素?
(20) new 与 malloc 的区别, delet 和 free 的区别?
(21) 为什么要用 static_cast 转换而不用 c 语言中的转换?
(22) 异常机制是怎么回事?
(23) 迭代器删除元素的会发生什么?
(24) 必须在构造函数初始化式里进行初始化的数据成员有哪些? (25) 类的封装: private,protected,public
(26) auto_ptr 类:
二面问的东西也还是很基础, 稍微比一面深一点, 前面的项目回答的比较差, 当时就心情很差, 后来转到 c++ 基础回答的还好, 最后面试完了, 我问面试官自己表现怎么样, 有哪些地方需要提高, 面试官说我的基础挺扎实的, 多做做项目, 最后面试官和我说还有 hr 面
网易 3 面 - HR 面 (10 分钟):
当时二面完了以后都中午了 11 点 40 多了, 本来二面面试官要带我去吃饭的, 后来 hr 又决定让我面试完再吃, 后悔 hr 面没给我机会继续和二面面试官交流啊, hr 面问的比较少, 就问了一些生活, 学习方面的问题, 当时感觉他们挺忙的, 以下是我记录下来的 hr 面试的内容:
(1) 你在学校或者实习做过什么项目
(2) 讲一下你最有意义的一次项目经历
(3) 以后的职业规划
(4) 以后准备留在杭州, 你父母考虑过吗? 你女朋友
(5) 还有投过其他公司的简历吗?
等等
hr 面主要看你的交流能力, 以及语言的组织能力, 大家正常发挥就好了, 最后师姐带我去食堂吃饭了, 网易的食堂环境不错的, 吃饭免费, 后来又参观了一下里面的健身场所, 当时看了就特别向往
接下来的时间就是焦急的等待, 后来据说有人收到 c++,java 的 offer 了, 过了好几天自己还是没消息, 就以为是跪了, 就完全没有报任何希望了, 上个星期突然又给发 offer 了, 惊喜来的太突然!!!!!!!!!!
面试总结:
面试过程中, 如果项目经验不是很丰富或者不是很相关, 一定要把基础打好, 多看书, 有些书值得看两遍三遍有时间可以多去牛客网上刷题, 不管是编程题还是基础选择题, 都值的去做, 遇到不会的多上网查找, 网上很多人博客上总结的很好, 同时自己也要学会整理知识点, 常考点找工作需要坚持, 需要不断努力, 同时要有个好心态, 最后祝愿大家都可以拿到自己满意的 offer
来源: http://www.jianshu.com/p/dce042a68d06