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