0%

百度实习面经-研发岗

今年的4月底,叫一个师兄内推,有机会去到百度面试后台开发的岗位。下面就记录一下过程吧,由于准备是不怎么充分,最后就跪了。

一面:一上来就问了什么时候能来实习,果断的说7月到10月都可以一直来,现在到7月一星期可以来3到4天。然后就问熟悉C语言或者C++吗,没复习过C++,果断说了C语言用得比较多。然后他就针对一个static的问题问了很久,我按照网上的答案说了,静态的局部变量比较好解析,然后解析了静态全局变量的问题,我说限定作用域,但是只能在一个c文件里初始化。本来就不太懂,然后他就举例说:在一个.c文件中static初始化了一个变量,第二个.c文件就不能初始化吗?然后我说不能,估计打错了,然后他就问有没有其他办法调用。囧,然后我说.c不能include另一个.c吧,他就说,那我在一个.h里面声明,我就说不建议在.h那里初始化一个变量吧。囧,一直没进正题。然后我就看他死揪着不放,就硬着头皮说:我觉得.c可以这样定义,但是这个变量的作用域就只有这个文件,应该跟其他文件不干扰,后面加了一句,这是我猜的,因为我也没这样写过。
然后第二个问题是static一个函数怎么办,当时一时犯晕说了应该函数执行效率高一点吧,然后他说不对,inline才是这样的效果,这个是用来限制函数作用域的,这个以前看过忘了。
然后就叫介绍一下排序算法吧:冒泡,选择,插入,归并,快速,堆排序这些,然后他就说你挑两个说说时间和空间复杂度吧,立马挑了快排和堆排序。堆排序没说明白,说了第一次建立堆要用O(n)复杂度,重构的logN没解析清楚,当时就说了可能忘记了堆的一个特点。他表示同意。然后再解析快排。后来他又问了怎么排序一个链表,我想了想,归并应该可以吧,然后他说归并要用空间换时间,有没有一个O(1)的算法,我就没想到,他提示了一下,选择排序,我说这个可以,但是时间复杂度高,我就提出了每次找到最大节点后,改变指针。他又提示一下有没有不改变指针的,我当时就是不改变指针怎么排序,他说交换链表的值。囧。
后面就又问了什么是3次握手和4次握手,我说不知道什么是4次握手,就解释了3次握手,然后他说你不知道终止通信的4次握手吗?我说那不是4次挥手吗?囧。然后就解释一下,然后他问为什么是4次,我说因为3次的话不能保证被动端有没有停止。也要被动端主动发起一个FIN报文。然后他说你说得也差不多,但是最重要的原因是主动方发了FIN报文后不能再发数据了,但是能收数据,被动方收到FIN之后,可以再发一段数据给主动方,然后再自己发一个FIN关闭。
然后就说写一段代码吧。就写了一个两个有序链表合并的。
写完代码就又问了一下你说一下浏览器输入一个www.baidu.com的数据通信流程吧。然后说了先发DNS报文解析域名IP,然后封装HTTP协议,发给服务器端,然后就服务器放回html的数据格式。浏览器收到后就解析。根据里面的内容在请求一些javascript,图片等。这论坛看过有人这样说,我也这样说了。但是说了之后,他又跟我提了一些东西,例如DNS和HTTP协议是应用层的,下面是TCP层,在下面是IP层之类的。所以我后来感觉还说漏了一些东西,就是HTTP协议是TCP协议的,然后TCP怎么封装到数据链路层,然后怎么通过路由之类的,不知道要不要加上这些东西。
然后问了一下有什么问题,就问了一下后台开发是做什么的,他说包括3部分,其实没听懂哪3部分,我就问了一下那个需要的人力多,他说都需要。囧。然后就叫我在这里等一下。
二面,一个挺严肃的人拿着手提进来,好像挺忙的
开始就问项目里面的问题,扯了一下,他说其实没听明白,就画图再扯了一下。
然后就问了一下socket建立的过程,说了blind,listen,connect,send,receive,close之类的,然后他说blind之前还有一步,我说不知道。
就说写程序吧,第一道题是在一个双向的链表中,插入一个节点,输入条件是给出插入的位置和插入的节点,挺简单的,考虑一下如果插入的位置是最后一个节点的情况。
第二道题是字符串的反转,提示说这个字符串很大,我说很大就怎么反转,他又说了输入参数是字符串的指针和一个size。然后我又问了一个很囧的问题,输入的size算不上算上结束符’\0’。他访问我,你说?立马囧了,估计这发问引起了不好的印象,立马写了一个,头尾调换的代码,考虑一下尾指针在哪就行了,很囧,漏写了i++之类的语句,立马叫我检查了一下。
后来写完代码,又问了我一下本科时候的项目,又乱扯一通。
然后说你了解python吗,我说在GAE编过一个程序,爬图片和网址,他就问爬网址是用哪一个库,我说是大四写了,忘记了,囧。
然后就问你熟悉C++吗,我说最近项目都用C,说移植性好,不怎么记得了。囧
他说了一句:“好吧”。就说叫我在这里等一下。
然后我觉得好像有三面的时候,他又进来了,说今天的面试就到这里吧,面试结果在5.1后会通知的。
囧,回来的途中一直在想会不会二面的跟大BOSS商量一下之后,说这也没啥好问的,不面了。。。