我投的是移動研發(fā),北京的崗位。筆試時間是9.21?偨Y(jié)一下,百度的題有一個特點:考的很細(xì)甚至細(xì)到一行代碼,一個變量的命名。
筆試考了7道題,上一篇博客已經(jīng)貼出來了。分析一下百度的筆試。三道問答題:
1.問答題:
1)TCP/UDP的區(qū)別,以及各自在應(yīng)用層的協(xié)議舉例。
2)Android/IOS 中固化數(shù)據(jù)的方式。
3)下面這個函數(shù)的缺陷:(這個有點想不起來了,好久不研究 了,印象不深刻了)
char * initMem(char *p)
{
p=(char *)malloc(100);
return p;
}
void test()
{
char *p=null;
initMem(p);
printf(p);
}
2.編程題:
1)用C/C++實現(xiàn)字符串的反轉(zhuǎn)。
2)(1,2,3(4,5,6),7,8)打印出1,2,3,4,5,6,7,8,即去括號,若出現(xiàn)括號不匹配,標(biāo)識錯誤。
3)分別實現(xiàn)二叉查找數(shù)root中兩個節(jié)點的最近相連的雙親節(jié)點:遞歸,非遞歸函數(shù)。
4.系統(tǒng)設(shè)計題:
是一個基于終端上的LBS+IM功能的架構(gòu)設(shè)計,包括四個功能:
1)用戶打開LBS服務(wù)
2)用戶通過短信or 微信邀請好友加入LBS
3)用戶查詢打開LBS的用戶;
4)用戶選擇LBS用戶并發(fā)送IM 文本or 語音信息。
劃出架構(gòu)設(shè)計圖、功能圖,分析這樣設(shè)計是如何考慮的。
第一道基本都會,只要計算機專業(yè)基礎(chǔ)課程好好復(fù)習(xí)了沒啥問題,
第二題考的是Android的,這個估計得靠自己做過并且總結(jié)了。
第三道考的是對一段函數(shù)的評價,(這個我做的也不好,長時間不搞C了,指針實在是不敢亂用啊)我主要關(guān)注的是健壯性以及是否浪費空間這兩層。
三道編程題,這個就不說了,如果自己寫過很多代碼,注意代碼的整潔性和健壯性應(yīng)該問題不大,而且近幾年好像沒咋考過很難的算法,足見百度是更注重基礎(chǔ)的。
系統(tǒng)設(shè)計題,靠個人分析了,今年踩了個狗屎運,IM+LBS是我的畢設(shè),把我做的項目的體系結(jié)構(gòu)劃了劃,說了說劃分模塊,設(shè)計模式選擇的理由。