关于笔试:只要前期复习到位,笔试还是很好过的,但是当然 分数 越高越好,否则后面会被面试官鄙视的。题目可能难度较大,但是要把会做的 都做 对,如果时间比较紧可以适度放弃部分不会的题目。
关于面试:
温馨提示:如果时间紧急不想看经过,直接看序号标记的面试官问我的问题吧
9.14 晚上6点半 一面 30min
提前一个小时到了酒店,签到完就坐那里等,虽然还没来得及吃晚饭,但是还是想多看下总结的知识点,不希望一面答的太差。
到了6点30多了,准备去问要不要直接上去,一个负责签到的就过来告诉我们我们是今天最后一批面试的,直接到对应房间外等前一个面试完就可以进去。怀着忐忑的心来到了我的房间号门外,一看里面就面试官一人,就敲了门进去。
面试官估计挺累了,没有让我自我介绍,看了几秒我的简历后直接开始问问题(这个有点让我措手不及,因为之前还思考了蛮久怎么自我介绍的),问的问题主要如下(只回忆起这些,提示是我答案的要点,仅供参考):
1,不使用第三个数(临时变量)交换两个整形数
提示:方式1加法,a=a+b;b=a-b;a=a-b;(缺点,可能出现a+b超过范围);方式2位运算,a^=b;b^=a;a^=b;(对数值类型通用)
2,0000到9999这1万个数中有多少个数字7(请不要理解为多少个数包含7)
提示:方式1,可以通过找规律的方式,比如1到10,1到100,1到1000分别多少个7;方式2,对每一位单独考虑,共四位,每一位出现7的概率是1/10;方式3,每次固定一位,变换其他位,比如固定千位为7,那么就有1000个,依次计算,得到最终结果4000
3,如何实现一个随机播放音乐,要求能够方便查看上一首播放的是什么,方便交换即将播放的歌曲顺序
提示:先对歌曲编号为0~999(比如有1000首歌),用洗牌算法(不懂的请自行百度)将序号顺序打乱,之后开始播放,这样播放中用户可以对歌曲再次调整顺序,调整时同步调整序号。
4,6根火柴能最多摆出多少等边三角形
提示:正六角星(8个等边三角形)
5,如何实现俄罗斯方块游戏形状的移动和旋转
提示:先用矩形将下落方块围住标记,再记录方块当前的左下角位置,移动时记录坐标变化(可以百度看更高端的答案)
6,tcp连接过程
提示:答出三次握手、四次挥手分别发送了什么内容、处于什么状态(最好一边画图一边解释)
7,tcp流量控制
提示:答出滑动窗口,拥塞控制,慢启动,可以附带答上快重传、快恢复和超时重传(显得自己知道的比较多咯)
8,SendMessage与PostMessage的区别
提示:从阻塞和非阻塞的角度答,也可以结合windows消息机制中的WM_COPYDATA方式的进程间通信答(此处只能由SendMessage()发送)
9,截图软件如何实现(关于自己做的)
提示:这个作为了解就行,毕竟只是我自己做着玩他看到了就问的。通过GDI获取图形缓冲区位图数据,再通过相应库函数将位图数据转换为JPG压缩数据保存,再实现全局热键设定,监控键盘热键是否按下。
10,图像滤波方法及特点(关于项目)
提示:同上。均值滤波,中值滤波,高斯滤波等
面了30分钟就说到这里了,没让我问他问题。
9月15中午查微信状态变为复试,晚8点半通知参加二面。
9.16 早上9点半 二面(压力面) 30min
二面之所以叫压力面,就是全程会让你很大压力(当然这点对很牛的大神0点伤害)。反正我的二面过程中感觉比较压抑,虽然面试官看起来比较温和,但是句句咄咄逼人,从鄙视我的学校开始(普通一本院校。。),然后说我高考肯定考的不好。
全程并没有让我写代码之类(不知道是不是特例,我本以为会让写代码的),问了较多简历上相关的东西,但是一直不对我持肯定态度,要么质疑要么沉默,只让思考了一个正规点的题目,就是说出1到1000里有多少个7(只能说和一面的重复了,无语…)。
不过也问了蛮多生活中学习的例子,比如怎么解决新问题,经常看什么论坛和博客,看到了什么内容(分享给他),然后问c++对比c除了抽象还有一些什么新特性(不管我回答什么,如果有问题,就直接提出,没有他就一脸沉默,不过大概这就是制造心理压力吧)。
面完之后我自我感觉并不好,最后没让我问他问题,我冒昧的问了他我的表现,让他做一下评价,他说我是第一个不好做评价,要等所有面试完了他才筛选。
ps:建议自己简历上的一定要有深层的准备,感觉他问了一些关于我项目中的非常规问题,然后看随机应变能力,还有要保持平和心态,把自己想说的表达清楚。二面下来可能会觉得很差,但是不要气馁,也许只是中了他的招,边等通知边准备其他面试吧,别太受伤~
pps:我面试中没有让写代码,这个可能是特例,常见写代码的面试题还是要准备的,以剑指offer,程序员面试金典,编程之美这几本书为主,完全掌握之后笔试中面试题基本都是小case了(ppps:不过我还没看完,囧)
因为压力面的确有蛮大压力,本以为过的几率不大,继续准备百度面试了,然后在9月16号中午微信状态变为进入hr面,晚上7点收到三面通知。
9月17 中午2点半 hr面(也是终面) 20min
hr面就比较轻松了,让我做了一下简单的自我介绍(终于碰到自我介绍的了。)然后开始对着简历问一些深入的问题,不一定关于技术的,但是和项目和实习经历有关,问你遇到了哪些问题,怎么解决的。为什么选择这个职位(然后悲剧的发现tx的系统出了问题,把我的职位搞错了,他说帮我联系复试面试官给我确认职位,蛮温和的),考不考研(楼主答不考研,原因balabala…此处省略若干字),为什么不考研。之后问了一些生活上学习上之类的问题,就问我还有什么要问的,这个自己把握好问题就行,把提前准备的问题说出来。
回来后不久微信上查询的状态就变为已完成所有面试环节了,据淼姐表示,hr面基本不刷人的,有少部分人hr面之后状态会变为“你不适合该职位”,如果是这个状态就不妙了~
—————————————————————我是分割线———————————————————
最后,感谢面试中一直提供各种帮助信息的牛客网大神唐淼以及提供练习平台的牛客网,向默默奉献的他们致敬~
再最后,希望这个面经对大家有点帮助,祝大家各种面试都能顺利通过,拿offer拿到手软~
ps:支持牛客,多刷题多提高自身能力才是重点,各种别人的经验也只是辅助自己提高罢了(感觉我话好多,如果耽误了大家太多时间,在此表示抱歉)