[笔试题目] 美团2015年9月后端开发工程师笔试题
由于題目是我通過草稿回顧,可能表述不清,但是內容大致一樣。希望該博客內容對你有所幫助,題目所有權歸美團公司所有,我只是想分享給大家學習,還望貴公司海涵~
面試職位
- 應聘職位:后端開發工程師
- 崗位描述:
- 崗位要求:
- 面試時間:2015年9月19日
- 面試題型:90分鐘 16單選+4多選+2編程
單選題
第1題 從A->B路程中有段扶梯,某人途中需要綁鞋帶,問那種情況更快?
- A.路上綁鞋帶時間快
- B.扶梯上綁鞋帶時間快
- C.時間一樣
- D.扶梯路程和綁鞋帶時間左右
第2題 X86平臺上,int型變量內存中從低到高地址為:0x12、0x34、0x56、0x78,當網絡發送該數據時,正確的發送順序是:
- A.0x12 0x34 0x56 0x78
- B.0x78 0x56 0x34 0x12
- C.0x34 0x12 0x78 0x56
- D.0x56 0x78 0x12 0x34
補充知識
操作系統:http://www.cnblogs.com/renyuan/archive/2013/05/26/3099766.html
第3題 按入棧序列式ABCDE,不可能出棧的序列式:
- DECBA
- DCEBA
- ECDBA
- ABCDE
經典的考察出棧題目:
如果在草稿紙上畫出入棧圖就非常容易了。此時入棧ABCD
D => E
C => C
B => B
A => A
出D人E再出CBA,出DC入E再出BA,最后是如一個出一個,而E出后必須先D后C,故ECDBA錯誤。
第4題 x=9999,輸入如下函數,求返回結果count值:
int func(x) {int count=0;while(x) {count++;x=x&(x-1);}return count; }- A.8
- B.9
- C.10
- D.12
該題目非常的親切,why? 答案:A
因為最近做leetcode分享過該段代碼:Number of 1 Bits - 計算二進制1的個數。同時你需要知道如果把一個十進制數字轉換為2進制。
9999(十進制) = 10011100001111(二進制)
鏈接:[LeetCode] Number of 1 Bits & Reverse Integer - 整數問題系列
第5題 HTTP使用()來保證信息安全的。
- A.SET
- B.FPSEC
- C.SSL
- D.SSH
答案:C
HTTPS是以安全為目標的HTTP通道,簡單講是HTTP的安全版。即HTTP下加入SSL層,HTTPS的安全基礎是SSL,因此加密的詳細內容就需要SSL。
SSL(Secure Sockets Layer 安全套接層),及其繼任者傳輸層安全(Transport Layer Security,TLS)是為網絡通信提供安全及數據完整性的一種安全協議。TLS與SSL在傳輸層對網絡連接進行加密。
第6題 下列關于競爭和死鎖正確的是:
- A.競爭一定導致死鎖
- B.死鎖一定由競爭引起
- C.競爭可能引起死鎖
- D.防止死鎖可以防止競爭
第7題 公司局域網上 ping www.meituan.com沒有涉及到的網絡協議是:
- A.ARP
- B.DNS
- C.TCP
- D.ICMP
ping命令和ICMP協議(Internet Control and Message Protocal,Internet控制消息協議)有著密切的關系,它是TCP/IP協議族的一個子協議,用于在IP主機、路由器之間傳遞控制消息。
使用ICMP協議中的回送請求和回答報文。ICMP在網路層,ping不使用高層的TCP或UDP協議。但要使用IP協議。ping命令是應用層直接使用網絡層協議的例子。
如果主機A要Ping主機B,他會先檢查自己的MAC地址,如果沒有B的MAC地址,就會向外發送一個ARP廣播包。
第8題 9個球,其中一個質量和其他不同,一個天平,最多幾次查找能夠找到?
- A.2
- B.3
- C.4
- D.5
個人感覺像二分查找問題
第9題 SQL92標準SQL,代碼執行順序是什么?
select foo,count(foo) from pokes where foo>10 group by foo having count(*)>5 order by foo- FROM->WHERE->GROUP BY->HAVING->ORDER BY->SELECT
- FROM->GROUP BY->WHERE->HAVING->ORDER BY->SELECT
- …
- …
第10題 多個源文件組成C程序,經過編輯、預處理、編譯、鏈接生成可執行程序,下列哪個可以發現被調用的函數未定義?
- A.預處理
- B.編譯
- C.鏈接
- D.執行
重點題目 正確答案:C
解析:本題考查的是程序編譯過程的基本知識。對于編譯型程序設計語言C,在程序編寫完成后執行前,主要進行預處理、翻譯為目標代碼和鏈接庫函數等關鍵步驟。在這三步中,預處理分析程序中的宏定義并替換宏引用,翻譯主要針對一個編譯單元(通常對應一個源文件)進行,將該編譯單元翻譯為中間代碼,鏈接過程將各個編譯單元中變量和函數的引用與其定義綁定,確保程序中使用的所有變量和函數都存在對應實體。所以,未定義的函數引用只能在鏈接過程中發現。
第11題 下列序列不可能是二叉樹后序遍歷的結果的是:
- A.1 2 3 4 5
- B.3 5 1 4 2
- C.1 2 5 4 3
- D.5 4 3 2 1
二叉樹后序遍歷即最后一個結點為root根結點,答案中A到B對應的5 2 3 1分別為各自的root根結點。
第12題 一個線性表:31、18、67、56、45、41。h(key)=key%7計算散列地址,存在A[0…6]中,采用線性探測方法解決沖突,成功概率查找的平均查找長度是多少?
- A.1.5
- B.1.7
- C.1.9
- D.2.1
- E.不同以上答案
考察:哈希表沖突解決方法和平均查找長度 答案:E
處理沖突的方法包括:開放定址法、再哈希法、鏈地址法。其中開放地址法包括線性探測再散列法、二次探測再散列法和隨機探測再散列法。
按照h(key)=key%7計算:
31%7=3——1次
18%7=4——1次
67%7=4——2次
56%7=0——1次
45%7=3——4次
41%7=6——3次
平均查找長度:ASL=(1+1+2+1+4+3)/6=2,故答案選E。
第13題 下列哪個不是進程的基本狀態?
- A.阻塞態
- B.執行態
- C.就緒態
- D.完成態
非常基本的操作系統三個狀態題目,注意三態轉換。答案:D
第14題 ip不合10.11.12.91/28同一子網的是:
- A.10.11.12.85/28
- B.10.11.12.88/28
- C.10.11.12.94/28
- D.10.11.12.97/28
子網劃分、同一子網是重點問題 答案:D
/28是子網掩碼的位數,IP地址可以看為二進制的32為數,你把IP二進制轉換為二進制,如果他們的子網掩碼位數都是一致的,則說明他們在同一子網下,如果不同即在不同子網內。
理論上是IP與子網做AND運算,得出結果一樣就代表在同一網段內。例如:(轉二進制方法整除2)
/28轉換為二進制: 11111111,11111111,11111111,1111000
10.11.12.91中91轉換為二進制位0101,1011 前4位與子網掩碼AND為0101 0000
10.11.12.85中85 =》0101,0101 同樣前四位為0101 0000
10.11.12.88中88 =》0101,1000 同樣前四位為0101 0000
10.11.12.95中94 =》0101,1110 同樣前四位為0101 0000
10.11.12.97中97 =》 0110,0001 輸出結果為0110 0000
第15題 7個頂點有向圖至少有多少條邊才能成為一個強連通圖?
- A.6
- B.7
- C.8
- D.12
答案:B 記住以下幾點:
1.在一個無向圖中,頂點的度數之和是邊數的兩倍;有向圖中,任意一條邊AB(A->B)都會給A提供一個出度,給B提供一個入度。故:
頂點的度之和 = 2*頂點入度之和 = 2頂點出度之和 = 頂點入度之和+頂點出度值和 = 邊數的兩倍
2.具有n個頂點的無向圖,至少應該有(n-1)條邊,才能確保是一個連通圖,若采用鄰接矩陣表示,該矩陣的大小是n*n
3.具有n個頂點的有向圖,至少應該有n條弧才能確保是強連通圖的。在有向圖G中,如果對于任何兩個不同的點a、b,從a到b和從b到a都存在路徑,則稱G是強連通圖,強連通圖必須從任何一點出發都可以回到原處,每個節點至少要一條出路。
第16題 0,1….500共501個數升序排列,每次去奇數序位數丟掉,剩下的數的奇數序位數丟掉,最后剩下的數是多少?
- A.249
- B.253
- C.255
- D.257
- E.499
- 不是以上答案
多選題
第17題 HTTP協議中POST和GET下列有哪些區別?
- A. 數據位置
- B. 明文密文
- C. 數據安全
- D. 長度限制
- E. 應用場景
第18題 C++ STL常用容器和類里,下面哪些可支持下標“[]”運算?
第19題 C代碼開發,如下類型結構體:
typedef struct list_t {struct list_t next;struct__list_t prev;char data[0]; }list_t;最后一行 char data[0]的作用是:
- A. 方便管理內存緩沖區
- B. 減少內存碎片化
- C. 標識結構體結束
- D. 沒有作用
第20題 a^b來表示a的b次冪,下列正確的是:
- A. 2.1^3.1 > 3.1^2.1
- B. 2.1^3.1 < 3.1^2.1
- C. 2.1^4.1 > 4.1^2.1
- D. 2.1^4.1 < 4.1^2.1
答案:BC
編程題
第21題 六種面額:1、5、10、20、50和100,每種幣值數量足夠多,編寫程序求組成N元(N為0~10000的非負整數)的不同組合個數。
注意規定或枚舉會出現RE超市 動態規劃應該可以做
第22題 給定非負整型數組arr和整數limit,兩次從arr中隨機抽取元素(可能抽到一個同元素),獲得整數x和y,計算和s=x+y,求所有不超過limit的s值中最大數。
int function(int *arr, int length,i nt limit) {
}
也是非常簡單的一道題,需要注意的是可能抽到同一個元素,如[1],1,2 結果輸出2。
總結
個人感覺美團的這套題目不錯,但是考得比較廣,包括:操作系統、數據庫、網絡、網絡安全、編程、數學等知識。如果只專注于某課比較吃虧,同時編程題目不是很難,相對阿里、騰訊題目廣度更廣,但深度要淺些。也可能和我報的部門有關,最后上面答案是我自己做的,可能存在錯誤不足之處。
總之,一句話:希望對你有所幫助,能內推的盡量內推避免這些雜七雜八的知識~
(By:Eastmount 2015-9-20 晚上1點 http://blog.csdn.net/eastmount/)
總結
以上是生活随笔為你收集整理的[笔试题目] 美团2015年9月后端开发工程师笔试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [C/C++基础知识] 一篇就让你彻底搞
- 下一篇: 程序人生:无他,唯心向尔