面试及总结
今天去百度大厦面试,职位是测试开发工程师(暑期实习),面试官是一位漂亮、友善的JJ
第一道很简单,问程序在内存有几个数据区,堆和栈区有啥区别
第二道是两个有序数组(可能升序或降序),要求合并到一个大数组中,使其仍然有序,讲了大体思路,并用C简单写了实现代码
第三道是给出int型的x、 y两个数,要求不借助第三个变量交换x和y的值,
啊。从大一开始学C,碰到过用value传参、引用传参、指针传参、宏定义交换x和y,但都要用到辅助变量,这次遇到JJ给的不借助第三变量交换x 和y,还真是第一次,My god。。。 第一反应,卡壳了,不过也到觉得很新鲜,特别好奇
JJ似乎也看出了我不会,于是说:你先想一会吧,在纸上写写,尽量写出算法代码。 哎 我没遇到过,不过第七感马上告诉我:这算法肯定不难,但很有技巧,可能是脑筋急转弯,想出来了就会豁然开朗,可惜此刻只缘我身在庐山中,不会呀
于是乎,我就抛开了指针、引用之类的,想用异或、求反、求交等逻辑运算,还画出了00001,000010之类的来比较,可怜一时半会也倒弄不出来,JJ提示我想想有数学运算试试,于是我把考研那会的三角运算的加减乘除都想了个遍,也凑合了一个(x+y)和(x-y)的四则运算,可怜想不出下一步该如何做,哎,再加上突然遇到这个简单的不能再简单的问题却搞不定,再百度处女面心脏也跳得厉害,急得我坐在中央空调的大厦里,就像掉进了热锅里的蚂蚁 ——急得流汗了,这天好热啊,哈哈,JJ看出来了,于是就跳过了
第四题有1.txt、2.txt。。。。n.txt的n个文件,要求查出含有字符串“love”的文件,并返回文件名。 我初看太容易了,直接用shell命令 find + grep搞定,可怜JJ要求我用高级语言写伪代码,我于是小声的问了JJ可以用库函数么,她说行. OK 直接str.substring()或者split()在strcmp()搞定. 结果JJ似乎不太满意,似乎感觉这样做效率太低了,哎, 我也想直接一个char的去比较,但感觉太麻烦,效率哟
第五道题就是让我测试一台自动售货机,我想百度应该只测试程序,于是我就没说测试按键、电源、硬币纸币等物理特性,直接跳到了测试程序逻辑部分,要用等价划分法、边界值分析法以及经验评估法,并讲了塞钱又强行拉出、正常购物、购完物继续再塞钱三个区间,再在正常购物两侧的区间进行边界值测试以及凭经验测试经常容易出错的地方,JJ看了看我,没说话,继续。。
第六道题以后就是一些概念题了,如死锁的四个条件、进程通信的方式(我只想到了管道、消息、全局变量、信号量四个)、空机测试(JJ似乎把宕dang机读成了空kong机,不过当时我没反应过来,我管理实验室两台服务器也没遇到过宕机。可怜我当时不知道她空机的意思可能就是宕机,哎 反应的确不够敏捷,于是JJ问我懂不懂,我说没遇到过空机,于是JJ也就没再问了)
我记得就这些题,JJ说话很和气,待人也很好,最后JJ问我有什么问题,x和y交换,我的心结呀心结。 于是我第一个问题就是问JJ如何不用变量交换x和y的值,JJ笑而不语,留给我当“家庭作业”,让我回家自己查查 哎,现在可是恍然大悟啊,我的思路用异或和数学加减运算,现在网上看了,豁然开朗啊,就简单的三句,汗 (当天下午面试后回实验室,我就立即用四种方法补做完家庭作业百度面试及总结2 ,但不知道还有没有去百度补交作业的机会啦)。JJ问我还有什么问题,我对身后的那个闪闪发光的太空舱,很感兴趣,于是问JJ那太空舱是干什么的,JJ说是休息的,赞啊 百度睡觉的地儿,居然那么的梦幻、可爱——发光的太空舱,哈哈 ^_^ ,JJ看着我好奇的目光,又笑啦 :可能笑我好幼稚的孩子呀 就这样,百度初面OVER la ;我看看手机时间,从我13:25提前五分钟预约面试官(原定13:30面试),到14:14面试结束后签到离开,一共仅用了49分钟,其中还包括上楼、下楼、走路、寒暄等时间,看看周围的GGJJ还在面试ing,JJ做事很干练啊,赞
huhu,总体感觉面试题都不是很难,只是当时考虑、描述不是很清楚,x和y那道easyest题,思维一下子就短路啦,把我的自信打击得荡然无存。
罢啦罢啦,继续等吧,不管结果如何,能够去百度面试,遇到这么友善、干练、聪明JJ,这次百度之行,也算值啦 哈哈
==============================================================================
下面传一张百度总部的照片,就当留做面试的纪念、奋斗的目标吧 呵呵