汇顶 笔试 一面 二面 软件开发工程师-嵌入式软件开发

时间:2022-07-23 19:30:20

汇顶的面试真是让我自信心大跌,不过还是要总结一下的。

1.笔试

宣讲会上,很多人,好多人站着,坐在地上的也有,老总说,本科起薪13万,硕士起薪16万,还有一大堆的福利待遇,听得心痒痒的。1个小时的宣讲会完了,就去其他教室笔试。软件开发的一个大教室,估计有200人,都是笔试软件开发的。大家并排坐着,然后发2套卷子,蓝色一套,黄色一套,题目完全不同,每列一套题目,呵呵,这倒是防止了同桌对答案的问题。不错。题目倒不会很难,很多都是在网上找得到的。不过硬件的问题就很多不会了,例如单片机的矩阵键盘,以及OC门,还有数学题。会的当然简单,不会的就不会了。

2.一面

半夜里发来的短信,说我通过了笔试,哈哈,好开心。就去面试了,在酒店里,问的问题,很常规,和笔试的题目难度差不多。不过也问了中断,SPI和IIC的内容,这两个倒是没回答好。一面30分钟,回去等通知。看了面试名单,大概80人,估计是刷掉了五分之四。

3.二面

一面当天晚上7点就收到,兴奋,紧张,赶紧复习,问辅导员拿3方,没拿到,说下个月才可以拿到,和hr联系,说可以晚点签约。第二天我就去面试了,本以为和昨天一样,应该可以过,但是没想到结果是那么惨烈,进入二面的就20人,二面的技术官问了我大概6道题目左右,基本都不会。我就记录下来先:

第一题是,不用乘除法,算出x/3的结果,x是整数,结果也取整。(5分钟写出3种方法,面试官说很简单)

我憋了10分钟,憋不出一种,晕死,没做过这种题目,乘法倒是做过。

回来后问了群里的同学,500人的群倒是能想出一种办法,就是循环减3,看能减多少次。


第二题,简单得多,是就是将一个四位数的整数进行编码,编码方法是:将每一位数都加上5,结果除10,所得余数取代该位数,最后第一位和第四位交换,第二位和第三位交换。返回编码后的结果(int)。例如:1234的编码结果返回9876。

int fun(int a)//a是要编码的数字。
{
int aa[4];
aa[0]=a%10;
aa[1]=a%100/10;
aa[2]=a%1000/100;
aa[3]=a/1000;
for (int i=0;i<4;i++)
{
aa[i]+=5;
aa[i]%=10;
}
return (aa[0]*1000+aa[1]*100+aa[2]*10+aa[3]);
}

我优化了2次,删去了2个for语句,写出了上面的代码,他要我继续优化。恩恩,看来我水平有限,真的看不出有什么可以继续优化的了,谁要是能优化的,可以说一下哈。


第三题,将2,4,6,8用加减乘除计算出23。(结果要精确,每个数字只能用一次,其他加减乘除和括号随便用,5分钟)

好开心,以为很简单,接着当然就是不断的测试了,1分钟过去了,没弄出结果,5分钟过去了,8分钟过去了,结果放弃了。

回来后也是问了群里的人,大家算了很久,不过还是有人弄出来了,哎太不容易了。结果是:4*(6-(2/8))


第四题,是我自己的问题,他问我的项目,视频监控,他就问内核中的数据如何传给用户层。说了一些,不全,没了。


这个时候,面试官也不是很爽了,就问了单片机,我说单片机不是很熟,他说没关系,很简单的,就问我4X4矩阵键盘的实现。我心想,矩阵键盘很简单,应该还能记起来一些,主要就是用行列扫描的方法。不过他说问我,怎么设置IO口,怎么判断是哪一个键,差不多就是用代码写出来。(2年前学过单片机,现在差不多忘记了)就这样没了。


这个二面用了一个半小时,就在弄上面那5题,感觉太惨烈了。最后当然就是说让我回去等通知了,结果明摆着了。


不过我并不孤单,哈哈,20个人的面试,面了一整天,我是下午3点去的,等了一个小时,这个小时里,就有3个人被刷了,四五个岗位,招的人不知道有没有10个。而且我那个岗位貌似就我一个小本科。其他的学历都比我高,但是和他们交流的时候,那个师兄一面的时候居然答得比我还差些。不知道他过了没,有没有可能是不同的面试官,问题不一样呢?算了,继续努力,在奋斗找到好工作。