2020华为勇敢星实习面经

2020华为实习

  • 0 写在前面
  • 1 简历
  • 2 机试
  • 3 一面
    • 3.1 C cdecl规范等
    • 3.2 项目
    • 3.3 linux相关
  • 4 二面
    • 4.1 int(*a)[10] 和 int *a[10]
    • 4.2 局部变量
    • 4.3 关键字 const volatile
  • 5 整个流程时间

0 写在前面

华为的实习是面向大三和研二的同学的,根据我查阅的资料,大概每年都是4月份就可以递交简历(网申),包括很多别的大厂,(当然我只投了华为hhh),在此向大家推荐 牛客网 ,里面有很多的相关资料,包括BAT,头条等等。
本人目前是大三,应聘的是嵌入式软件,据我在签约会上粗略观察,很多还是研究生的,所以我的这篇面经(面试部分)仅供大家参考,因为不清楚这部分会不会有难度区分对待。
PS:网上的机考肯定是不区分,但是不难,大家不用担心。

1 简历

接下来稍微说一下简历部分吧,可能还是项目部分比较重要,其他的获奖什么的当然有就填上了,技术面的时候可能围绕项目或者底层知识开展。所以不要吹太过了,正常写就行,扬长避短即可。如果你没啥项目的话,学校的实验添油加醋写一写,或者基础搞好一点,总之肯定要有点准备的。印象中,网上填写的简历会有一个完成度,我当时填了60,70%,好像最低是30%大概。所以大家还是要认真填的,有的不想填也无所谓其实。

2 机试

投完简历后,等着就好了,大概一周左右会有笔试通知,就是在牛客网上写三道算法题,建议大家提前熟悉环境!再说一遍,提前熟悉环境
主要是EOF和多组用例的问题,当时我上机的时候就A了一个题,三个题,过一个就可以了。那个题就是一个输入比较复杂的问题,ACM大佬请无视。我当时看了眼18年的题,感觉挺简单的,起码能过俩题,就裸考的基本,但不巧那次输入比较麻烦,还好有惊无险。
所以如果大家没有什么比赛经历的,还是建议稍微练一练,牛客网上都有原题应该,或者差不多的模拟题,不用练太多,你要是想三题都A那还是要多练练的。如果只是为了过,什么DP,高级数据结构等等,都不用管,第一题一般都是个简单排序,贪心,字符串一类的。

3 一面

从机试到一面时间不确定,因为一面时间都是统一的,北京地区都是去文津路酒店,在清华那块,当天人很多,所以建议大家还是多关注牛客网的信息(我真不是拖,但是感觉这里面消息还是挺多的,很多申请的,互相看看情况挺好的)。像什么一面通知之类的,肯定会有帖子讨论的,如果你看到大家都收到了面试通知,应该过不久你也会有的… 当然没有的话就要反思一下简历的问题了…
一面的话,研发类的是一对一,一间大屋子,里面就是几十个面试的和应聘的同时进行,所以没有那么紧张,我反正一和那个老哥聊起来就不紧张了,结束发现已经快一个小时了hhh
一上来就是一些普通的介绍,这个稍微聊两句就行,不用特意准备我觉得,打铁还是自身硬主要是自己的知识和项目,但你也别介绍个学校专业磕巴就行…
过去一个月了,我还有印象的简题目单说下吧,这里我也不提供标准答案了,反正自己也很菜…感觉当时有一半都不是很清楚hhh。

3.1 C cdecl规范等

因为我项目上说写过mips cpu,然后Bootloader我也搞过,(但是技术老哥好像不搞mips,不搞Bootloader,很僵硬),说着说着问起函数调用的问题。mips里面有一个$ra寄存器,保留返回地址,异常或者中断的话是CP0的epc寄存器。mips里面也有参数传递的寄存器,忘了叫啥了。
然后老哥就问如果参数传递多于4个,(mips里面可以用的应该是4个,不确定),怎么办,或者说C语言调用一个函数的时候,具体怎么实现的,了不了解cdecl什么的…
然后应该也是这部分,问的打印printf("%s"),输出啥…不懂 对c内部的理解还不到位…
然后我就懵逼了,他说我才知道是用堆栈啥的,但其实还有个栈帧的概念…当时啥都不知道…后来做了清华ucore的实验才明白点… 具体不明白的请自行百度吧…或者看看清华ucore操作系统实验lab1。

3.2 项目

然后简历上围绕项目(其实很简单的东西)说了说,每个人都不一样,我就不说个性问题了,然后我在简历上写了makefile,gdb等等,感觉这个可能通用点… 现场手写了点 就很简单的编译一个文件啥的,gdb怎么加断点,看寄存器是啥指令等等,真的不难。或者说makefile复杂的我现在还是看的云里雾里的,但是他要求没那么高的。

3.3 linux相关

开始很简单啦,说说命令什么的,然后怎么改变权限chmod,chmod对应的几位代表啥(前三个是当前用户rwx,然后是所在group的,最后是other),改变属于哪个用户,哪个组chown,chgrp, 然后问了一个问题,文件有x可以理解,那为什么文件夹也有x呢…?
然后再次懵逼,后来知道就是基本的ls cd 啥的是不行的…(当然可能不只这个,我理解的比较浅显)
其他的暂时想不起了,总之我感觉我答的一般般… 如果大家答得不好也不要什么心里影响,只要他最后让你去二面就行(让你回学校就真凉了)。

4 二面

二面和一面是同一天的,至少2019年北京地区研发类是这个情况且是终面,有人管一面叫技术面,二面叫综合面,我倒不这么认为。就华为的面试来看,二面还是以技术问题为主的。

4.1 int(*a)[10] 和 int *a[10]

哎,枯了,第一个问题我前两天还看过,当时答反了… 第一个a 是指向一个长度为10的int型数组的指针, 第二个是10个 int型指针… 我的理解,建议大家敲代码或者再看看别的印象会深刻一些。

4.2 局部变量

void sum (int a,int b)
{
	int c;
	c = b;
	b = a;
	a = c; 
}

int main()
{
int x=3,y=5;
sum(x,y);
}

问能不能交换,自然是不能的,追问如何能,一开始脑抽说全局变量… 两秒之后说了指针,

void sum (int *a,int *b) 
{  	
	int c = *b;
	*b = *a;  
	*a = c; 
} 
int main()
{
 int x=3,y=5;
 sum(&x,&y);
}

4.3 关键字 const volatile

很简单…volatile主要就是用于那些快速变化的变量…我个人的理解就是,向内存里面取这个变量的值而不是寄存器里面的… 当然还很浅显。课上学过标答,啥并行设备,多线程什么的,我当时想了想,反正我也没用过多线程里面的volatile就没说。

暂时印象就这么些,不难,心态放好就行。

5 整个流程时间

4.3 机试
4.9 收到短信,参加11号的招聘会
4.28 收到短信,拿到offer,29号签约座谈会
5.17 收到邮件:offer意向书
5.21 收到邮件:填写入职信息,办理入职手续

最后,有什么问题,欢迎大家留言,能力范围内,尽可能解答,顺带关注一下就更好了hhh。

你可能感兴趣的:(huawei)