华为od软件开发C语言机、面经验
个人情况:
20年某211师范专业毕业,本科有涉及C语言课程,简单软件开发,工作两年只有从事文化课教师经验,22年跨考计算机研,初试过国家线50+,复试未录取,调剂没有好的学校,遂再次就职。机缘巧合之下得到了华为机试机会,开始准备:
4月7号收到hr小姐姐推荐开始在力扣和牛客刷题,共计力扣100道左右,牛客华为题库100道,同时这期间一直在牛客上看机考帖子,看大家做的题目。最终达到力扣周赛四道题目前两题轻松完成,后两题随缘,有时有思路但是算法超时,有时几乎无从下手。4月26号机考题目大致如下:
1. 给定两个已经排序的数组和一个整数R,在第二个数组中找到第一个数组中数字首个不大于R的数,组成数对输出,比如输入:
1、4、5、7、8、10、60
3、4、6、9、15、29、62
3
输出:
1,3
4,4
5,6
7,9
8,9
60,62
2. 输入第一个数字表示一条马路种多少棵树,第二个数字表示死掉了多少棵,第三行数字死掉树的编号,第四行补种多少棵树,最后输出补种后连续最大树棵数。树木编号从1开始。
10
3
2,7,9
1
输出
6
3.类似于正则表达式匹配问题:点表示可以匹配一个字符,*表示匹配0个或多个,输入两个字符串,输出是否可以匹配:
输入
abcdefg
a.*f.*
输出
TRUE
最后本人390分通过,第三题通过率95,第一题是第一次见,第二题在好多帖子里面见过,第三题在牛客华为题库里面见过类似的。所以本人运气还算比较好。
4月26号考完给hr发消息,过了1小时候后,被告知通过,并且发给性格测试,晚上8点左右完成给hr发消息,1小时左右被告知通过(hr小姐姐人超好,感动哭)。同时和我说技术一面的事情,我原本打算往后拖一拖,自己多点时间准备,但是要求我五一前要完成技术一面,因此
4月29号技术一面,面试大哥人也挺好,太难的也没问,问到我不会的,也不会深究。
1. 自我介绍
2. C语言相关八股(变量的内存分配,内存拷贝memcpy与memmove的区别,条件编译等等,这一块儿自己表现一般,基础的可以答的上来,有一些小的细的方面不知道,所以老实回答不清楚,面试大哥也没为难)
3. 项目相关,因为没有相关工作项目经历,只能拿一个学校项目来问,我的项目是一个组队系统,实现了个人注册,登陆,创建队伍,加入队伍,解散队伍,队伍搜索,简单的信箱功能,前端直接访问数据库。然后针对我这个开始了很多问题。项目中自己的主要任务(除了素材寻找,其它都是我设计开发的),安全性,实用性,数据表设计,优化,sql语句等。
4. 手撕代码,给一组数据,找出前k个小的数据。轻松搞定。
5. 反问给我的一些建议:加深C语言基础,自己项目的实用性思考,Linux学习(因为中间问了我一些相关知识,我说这个系统我一点没接触过,所以面试大哥也放过我了)
整体而言在项目这一块儿问的比较多,因为不是商业项目,重点是学校项目和商业项目靠拢等。
面试完后我又和hr小姐姐说了,大概一小时后被告知通过,然后说等五一假期结束了给我安排二面。
------------------华丽丽的分割线-------------------------
五一期间根据一面经验,加深了C知识,进行学校项目和商业项目比较,对商业项目深入了解,重点在B站学习了Linux系统基础,命令,shell编程基础,在该系统下C语言编译,windows下通过xshell和xftp进行Linux的访问与上传下载。
------------------华丽丽的分割线-------------------------
5月9号二面,说实话,自我感觉自己二面表现很差,我准备的东西一点没有被问到(伤心)
1.自我介绍
2.
*C语言内联函数(回答不知道)
*C++与C的主要区别(面相对象,类)
*C++特点(封装,继承,多态?)此时我已经开始发懵了,因为C++这一块儿我并不熟悉,这些答案是在看前人面试帖子时候看到的答案。
*什么是多态(回答自己记不清了,并实话自己对C++并不熟悉)
3. 进程和线程区别,进程通信方式,自旋锁(这一块儿自己并没有准备,都是看一些先人的面试帖子有同样的问题,考研时候的一些储备,有类似印象所以回答上来了)
4. 问数据结构相关(这一块儿比较熟)
线性表
完全二叉树
二叉树先序遍历
平衡二叉树
... ... ...
5. 手撕代码
一道很简单的代码题:类似于奥运会排序,输入多个国家以及金银铜数量,输出国家排序
因为一些自己写代码时候的墨迹和输入方面出了点问题自己重返工了,浪费了大量时间,最后没有完成,而面试官还有下一场面试,所以最后说清楚了自己的思路,以及对自己的代码进行了介绍然后草草结束了。面试结束半小时内,自己根据题目印象把代码调整补充完整,然后发给hr小姐姐,问说如果可以的话,发给面试官,不可以的话就算了。
此时我心里凉了大半节,代码没有按时完成,简直哭死了。第二天三次问hr小姐姐二面结果,小姐姐总是耐心的说面试官还没有给她结果,让我等等,晚上10点多,hr小姐姐给发消息通过了。(此时激动到难以言表,这是考研复试碰壁以来最激动的时刻,感谢面试官放手,感谢hr小姐姐)
两场面试下来自我感觉:
1. 手撕代码的题目不难,但是要认真仔细对待,否则就出现前述第二面情况,着急死,2. 不同面试官所问问题侧重点不一样,我的第一位面试大哥重点在我的项目,Linux等,与平时工作贴合比较高。二面的时候重在数据结构和操作系统,八股方面比较注重。也不知道是就我这样,还是大部分是这个样子。
3. 面试问题也不要求全部知道,能回答7-8成,代码写出来应该就问题不大。
最后再次感谢hr小姐姐的帮忙和面试大哥放手。
等待后续面试中... ... ...