华为C++软件开发面试

一面

  • 自我介绍
  • 开始问项目
    介绍一下这个项目吧,然后问了项目中遇到什么苦难,又问了一些细节的方面。
  • 说一下内容对齐
    我:不太清楚...
  • 了解C++stl吗?然后问了map的底层
  • 申请内存有哪些方法?
  • 手撕代码,大致就是统计两个字符串中的相同字母和不同字母数量
    写完后对我的代码规范提了点意见,if后面写上大括号之类的,然后问我还有哪些不规范的地方,我:变量命名混乱...
  • vector的底层怎么实现的?
    我:动态数组,他又追问,具体是怎么做的?我:...
  • 指针和引用有什么区别?
  • 之后就是问我有什么要问的没就结束了

二面

  • 同样自我介绍,项目相关
  • 看到我做过数模,问我具体细节
  • 对面向对象的理解?
    我:不同于C,面向对象三大特性,继承、封装、多态,然后他追问这些特性怎么体现的?
  • 重载和重写的区别?
  • 手撕代码,输入一个表示气温的数组,找到每个数到它后面大于这个数的第一个数的距离,如[2,5,6,3,4,8],输出[1,1,3,1,1,0]
    我:没想到更好的,只能暴力法,最后他给结果截了屏
  • 了解过多线程吗?
    我:不了解...
  • 知道C++的锁吗?
    我:不清楚...
  • 好的,你有什么要问的吗?
    ...
    结束

    总结

    面向对象没问我太深入,不然我可能啥都答不上来,但是二面还是稀里糊涂地过了。面试前还是要好好复习一下基本知识,笔试之后就少刷点算法题,毕竟手撕相对简单一点,还是要慢慢提高自身能力。

猜你喜欢

转载自www.cnblogs.com/leflew/p/12449836.html