社招C++后台面試-拿到offer
之前在一家小公司上班,主要是做C語言的嵌入式軟件開發,涉及過一點點C++。工作大概三年,然后去試試大公司,這個面試題是我拿到offer后4個月才拖拖拉拉的開始寫,題目大概記得,但是自己怎么回答的忘記了。
一面-視頻面試
- 棧和堆的區別,怎么解決棧的溢出問題
- #define的作用,有什么具體用法,在編譯中會怎么樣
- 大小端轉換
- 同步和異步的區別
- 內存池的了解
- STL中map和hashmap的區別,使用場合,hash建立需要注意什么
- 傳輸過程中文件完整性的判斷。為什么使用md5,可不可以用文件大小判斷
這個映象比較深,因為上家公司在下載軟件版本升級的時候是先連接了安全網關的情況下,也就是默認下載環境是安全的情況下如何判斷。
之前是使用了md5校驗,但是被問到在安全的情況下,直接判斷文件大小是不是可以用文件大小判斷。 - 講了下交叉編譯和調試方式
- mips和mipsel的區別,el是什么意思
- 剩下就是http的常規問題了,3次握手和4次揮手,沒有什么特別的了。
- 數據庫的使用,因為只使用過sqlite3,被問到為什么要使用sqlite3,用文本存儲不行嗎。
二面-視頻面-手撕代碼-攝像頭對着本子寫
- 字符串中找不含重復字符的最長字串的長度
eg: abcdddabc -> 4 - 字符串中找最大重復字串
eg: abcdddabc -> abc - 峰值元素是指其大於左右兩邊相鄰的元素。找峰值元素的下標
[1,2,3,1], 峰值元素為3,輸出2 - 給定一個數組,將數組元素向右移K個位置,k>=0
eg:[1,2,2,3,4,5] k=2 -> [4,5,1,2,2,3] - 實現一個單例類
- 互聯網和傳統行業的區別
三面-現場
主要是聊你的項目,主要是為什么做這個項目,你這樣做這個功能的目的是什么,帶來了什么效果