Surf the Internet,在网上找的内推渠道,一共三次面试,一面电话技术面,二面视频技术面,三面HR面。
一面
- 1.自我介绍
- 2.extern与include的区别
- extern表明变量或者函数是定义在其他其他文件中的。
- include相当于把include .h文件直接带入到本源文件里。
- 尽量不要在.h里定义变量,一个.h文件可能会被多个.c源文件包含,这样编译的时候就会报重复定义的错误。
- 3.队列和栈的区别
- 队列:先进先出
- 栈:先进后出,栈是向低地址拓展的数据结构。
- 由两个栈可以实现队列的功能。
- 4.关键字static的作用是什么
- 在C语言中,关键字static有三个明显的作用:
- 1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。静态局部变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为0。
- 2). 在文件内,一个被声明为静态的变量可以被本文件内所用函数访问,但不能被本文件外其它函数访问。它是一个本地的全局变量。
- 在C++中:
- 静态数据成员:用于修饰 class 的数据成员,即所谓“静态成员”。
- 类的静态数据成员的存在不依赖与于任何类对象的存在,外部访问类的静态成员能直接通过类名来访问。
- 类的静态成员函数无法直接访问普通数据成员(可以通过对象名间接的访问),而类的任何成员函数都可以访问类的静态数据成员。
- 在C语言中,关键字static有三个明显的作用:
- 5.说一些你了解的排序算法
- 八大排序算法,我只研究了几个。其中最常用的就是冒泡排序,在就是对快速排序、希尔排序、选择排序、插入排序有所了解。
- 6.知道他们的时间复杂度与空间复杂度吗
- 冒泡 O(n2)O(1),选择 O(n2)O(1),插入O(n2)O(1),希尔O(nlogn)O(1),快速 O(nlogn)O(nlogn)。这题答的不好,排序算法还是得好好记住,正所谓面试造航母,工作拧螺丝,后面的这些排序算法我在工程中根本没应用过,不过面试就喜欢问这些。
- 7.请大概介绍一下你简历里面所写的三个项目。
- 8.Linux的内存管理有所了解吗
- 只知道点MMU与页等概念,其他的没有做了解,这题没有作答。贴一下百度的答案
- 9.Linux内核与底层驱动有所了解吗
- 相关的项目经验中对USB串口使用较多,没有其他的底层驱动项目经验····
一面大概问了38分钟,面试的氛围来看,应该是同事面,没有很大的架子,也没有急切的追问,问的东西都是C语言的,比较基础,三个项目中面试官问了一些他感兴趣的点,只简要的介绍了一下项目功能,项目讲完我就已经口干舌燥了~
二面
二面用的牛客网的视频面。 面试官简单的寒暄了一下,就让我挑一个自己最满意的项目介绍。这次的项目介绍就非常仔细,问了很多细节。大概如下:
- 项目中的分工是怎样的?
- 用的电路是的怎样驱动的?
- MCU的PWM模式,频率给的1K,然后问为什么给这么高的频率?
- 串口的波特率是多少,波特率的频率还有什么,为什么选用这个频率,波特率频率过高有什么影响?
- 这个项目中有什么难点和创新点?
- 项目做完最大的收获是什么?
- 平时是怎么管理代码版本的?
- 平时的学习习惯?
- 短期和长期的一个工作计划?
- 最后用牛客网的平台写了一道关于字符串操作的代码,面试官就给了几分钟,让我写下伪代码。
二面一共面了七十几分钟,写代码的时候,还漏了一个步骤,但是思路是正确的,面试最后评价到····
三面
终面是HR面
- 0.给自己前面两轮面试打分
- 1.毕业后您最期望加入哪些企业?为什么?
- 2.毕业1年内的计划,和长期的职业规划
- 3.第一志愿工作城市
- 4.期望薪资
- 5.关于加班的看法
- 6.家庭情况
- 7.女朋友的情况
- 8.映象中很遗憾的事情
- 9.怎样放松压力的
- 10.财务压力小了后是怎样规划的
- 11.评价自己的性格