硬核 | 50 家企業(yè) C++ 面經(jīng)分享
大家好,我是唐唐。
昨天一位讀者分享了自己的 C++ 面試經(jīng)歷。簡單溝通后,讀者雙非本碩,自嘲校招準(zhǔn)備注定就是煉獄模式。50 家公司的 C++ 面經(jīng)也整理好了。本次就分享下面經(jīng)。以后分享學(xué)習(xí)路線和心得。
讀者情況:雙非本碩,本科機(jī)械,碩士做的軟件開發(fā)課題。
學(xué)過 C++ 偏基礎(chǔ),但是面試前連多態(tài)都不會寫。研三經(jīng)歷煉獄校招,從零開始學(xué)習(xí),數(shù)據(jù)結(jié)構(gòu)和算法也是從零開始。
時間:2020 年 10 月- 2021 年 4 月
結(jié)果:幾乎面試了所有大廠,收到了 13 份 offer。雖然沒有進(jìn)大廠,但是拿到音視頻開發(fā) offer,音視頻開發(fā)是理想崗位,待遇也比較滿意。
1.六方云(10-21)
自我介紹 C++ 語法 左值引用與右值引用有什么區(qū)別,左值引用和右值引用的目的是什么 虛函數(shù)問了好多 什么是多態(tài) 虛函數(shù)和純虛函數(shù) 構(gòu)造函數(shù)和析構(gòu)函數(shù)能不能是虛函數(shù) std::move 是什么 計(jì)算機(jī)網(wǎng)絡(luò) TCP/IP 的連接和斷開過程 timewait 是什么 I/O 多路復(fù)用是什么 http 接口的函數(shù)用過嗎 操作系統(tǒng) 什么是線程、進(jìn)程 多線程和多進(jìn)程的優(yōu)缺點(diǎn) 項(xiàng)目 Qt信號與槽實(shí)現(xiàn)的機(jī)制 項(xiàng)目用的多線程是怎么實(shí)現(xiàn)的 怎么實(shí)現(xiàn)通信
2.萬集集團(tuán)(10-22)
自我介紹 項(xiàng)目:有做過嵌入式項(xiàng)目嗎 總結(jié):應(yīng)該是 KPI,他想找做嵌入式的多點(diǎn)
3.醫(yī)科達(dá)——電話面(10-23)
自我介紹 項(xiàng)目 多線程 網(wǎng)絡(luò)編程:連接方式 算法:快速排序 面向?qū)ο笕笏枷?/section> 設(shè)計(jì)模式,列舉一個 單例模式怎么處理多線程
4.聯(lián)影——電話面(10-24)
自我介紹 項(xiàng)目介紹 說說項(xiàng)目的原理 面向?qū)ο?/section> 設(shè)計(jì)模式 非智力問題: 怎么抗壓 怎么處理隊(duì)員之間的問題
5.萬興科技(10-24)
自我介紹 看過哪些 C++ 的書 多線程,怎么判斷線程結(jié)束 vector 中迭代器失效的情況 虛析構(gòu)函數(shù) FFmpeg 中對視頻和音頻的同步方法 map 的內(nèi)部 rtmp 協(xié)議
6.網(wǎng)易實(shí)習(xí)
一面(10-28)(PASS1)
引用和指針的區(qū)別 靜態(tài)鏈接庫與動態(tài)鏈接庫的區(qū)別 程序生成的過程 計(jì)算機(jī)圖形學(xué): 怎么對圖像進(jìn)行變換,變換矩陣是什么 還有其他簡單的 OpenGL 問題 其他忘了,,,,
二面(11-2)
怎么自己實(shí)現(xiàn) Qt 的信號與槽? 多態(tài) TCP 和 UDP 的區(qū)別 計(jì)算機(jī)圖像學(xué) 什么是插值? 會做數(shù)據(jù)可視化嗎? 其他忘了,面試官脾氣不是很好,,
7.中望軟件(10-31)(PASS2)
聊一下項(xiàng)目 CAD 軟件怎么使用 會不會 QT、MFC、STL 介紹中望公司的情況
(終于拿到第一份 offer!)
8.金山 WPS
電話一面(11-2)(PASS3)
假如定義了一個指針,后面接著一個循環(huán)并 return,會造成什么后果?(內(nèi)存泄漏) 其他忘了(沒有問項(xiàng)目)
電話二面(11-5)
知不知道 Qt5 對 OpenGL 有個支持性問題 音視頻切換的多線程怎么處理幀切換的問題 大數(shù)據(jù)處理題:建立一個數(shù)據(jù)結(jié)構(gòu),存儲 1 到 10 億的數(shù),要能夠去重和插入(答案:用兩個數(shù)組,建立二維表格) 找出一個 RGB 文件中出現(xiàn)最多的前十種顏色
9.傳音控股電話面(11-7)
直接問項(xiàng)目的 OpenGL 怎么繪制視頻,結(jié)果回答不好被嫌棄了; 死鎖怎么產(chǎn)生的?有沒有遇到過死鎖問題?(多線程不是一般般的重要!)
10.網(wǎng)易互娛樂(11-12)
先做算法題:找出數(shù)組中次數(shù)最多的前 k 個數(shù) 說下 C++ 新特性 auto變量的使用注意事項(xiàng) OpenGL 的著色器在每個渲染步驟是怎樣的? 設(shè)計(jì)模式、單例模式的線程安全問題
11.斗魚直播(11-12)
qt 的消息傳遞機(jī)制 HTTP 網(wǎng)絡(luò)協(xié)議好多內(nèi)容 怎么實(shí)現(xiàn) map<key,value> 的(key 是自定義類型) 單例模式 還有好多問題,幾乎把計(jì)算機(jī)基礎(chǔ)的難點(diǎn)都問了
12.富士康電話面(11-13)(PASS4)
做富士康的工業(yè)互聯(lián)網(wǎng)。看簡歷,沒問技術(shù)基礎(chǔ)。給了 offer,但是只有 7K,其他補(bǔ)貼加起來只有 10K,難怪沒人去
13.卡萊特電話面(11-17)(PASS5)
1.C 和 C++ 的區(qū)別 2.棧和堆的區(qū)別 3.雙鏈表和單鏈表的優(yōu)缺點(diǎn) 4.面向?qū)ο笕筇匦裕悍庋b、繼承、多態(tài),繼承的作用是什么 5.了解 Qt 和 MFC 嗎 6.工作地點(diǎn) 7.對薪資有什么要求
14.聯(lián)想面試(11-27)
C++ 和 java 的區(qū)別 描述 STL;vector 和 list 的區(qū)別 最近的項(xiàng)目——視頻播放器設(shè)計(jì) vector 存放數(shù)據(jù)的注意 視頻與音頻同步 多線程同步 設(shè)計(jì)模式、工廠模式 文件斷點(diǎn)續(xù)傳 用英語簡單描述自己的項(xiàng)目
15.新浪微博(12-1)
OOP 三大特性、繼承中三個修飾符的用法 C++ 的 static 關(guān)鍵字 TCP 連接過程中客戶端與服務(wù)端使用什么函數(shù)實(shí)現(xiàn)連接 智能指針,weak_ptr 能夠破壞環(huán)型引用的原理(引用計(jì)數(shù)的原理) 用兩個棧實(shí)現(xiàn)一個隊(duì)列
(禿頭架構(gòu)師面試,態(tài)度很好,叫我不要緊張。我印象深刻的一場面試之一)
16.廣和通電話面(12-1)(PASS6)
聊一下項(xiàng)目 說下項(xiàng)目解決過程你有沒有請教別人 說下最難忘的項(xiàng)目經(jīng)歷
17.匯川技術(shù)
一面(12-1)(PASS7)
項(xiàng)目簡介 STL、vector QML 與 QWidget 的區(qū)別 (QML 從 2.0 版本開始向移動端靠攏) 信號與槽機(jī)制、信號與槽與函數(shù)指針的比較 多線程下用信號與槽的優(yōu)缺點(diǎn) (connect函數(shù)的第五個參數(shù)實(shí)際上是用在多線程的情況下的) socket 的 TCP 的客戶端與服務(wù)端 怎么保證客戶端與服務(wù)端在突然斷網(wǎng)的情況下保證另一端知道?(飽和機(jī)制、心跳機(jī)制、看門狗機(jī)制) 說說你的項(xiàng)目的亮點(diǎn) auto 關(guān)鍵字 (不能定義數(shù)組) Qt 的事件過濾器 (事件的傳遞是由子類往父類上傳的) 開放性問題:大量數(shù)據(jù)無序輸入,怎么有序輸出?(使用最大堆最小堆) (一面的面試官是個態(tài)度很好的年輕小哥)
匯川技術(shù)二面(12-4)(PASS8)
介紹項(xiàng)目組成 - 濾波器的類型 - 怎么確定使用什么濾波算法 比賽過程中的團(tuán)隊(duì)合作事情 數(shù)學(xué)建模比賽的收獲 上學(xué)期間最有成就感的事情 Linux 中的互斥鎖和 XX 鎖 簡述 STL 常用的排序算法 以太網(wǎng)了解嗎? 網(wǎng)絡(luò)編程 職業(yè)規(guī)劃 家庭背景
18.聲網(wǎng)測試(12-2)
介紹音視頻測評崗位的工作內(nèi)容 用的什么協(xié)議 視頻播放器、直播推流協(xié)議 文件傳輸、視頻協(xié)議相關(guān)工作 講解下用了音視頻庫的什么模塊
19.不知名的公司的音視頻開發(fā)崗(12-4)
做兩道編程題: 快速排序(函數(shù)參數(shù)只有 int array,int length) 用兩個線程實(shí)現(xiàn)循環(huán)加數(shù) 深拷貝與淺拷貝區(qū)別 C++ OOP 三大特性 多態(tài)的用法 項(xiàng)目:視頻播放器用到 FFmpeg 哪些庫 H264 編解碼原理 運(yùn)動補(bǔ)償 熵編碼 ALCode 視頻解析工具的使用 直播工具使用了什么服務(wù)器
(地點(diǎn)在武漢,印象最深的一場面試,面試官很友好,給我講了半小時的音視頻崗位的優(yōu)勢。從此便決定了一定要做音視頻開發(fā))
20.騰訊會議客戶端(12-4)
項(xiàng)目——視頻播放器的功能 視頻中的視頻信息、音頻信息的數(shù)據(jù)怎么存放 課題中的難點(diǎn) C++ 智能指針 shared_ptr 的特殊用法 C++ 內(nèi)存管理 Windows 系統(tǒng)怎么預(yù)防死鎖 怎么解決程序 crashed 問題 對音視頻編碼的了解 有幾種 NAL,如果在視頻中存放信息存放在哪個幀 怎么設(shè)置壓縮碼率?
21.恒生電子
一面(12-9)(PASS9)
C++11 什么新特性好用 多線程 用隊(duì)列處理數(shù)據(jù)有什么好處? 用過什么數(shù)據(jù)庫? 多線程與多進(jìn)程的區(qū)別? 你認(rèn)為你的優(yōu)缺點(diǎn)是什么?
二面(12-10)
沒問技術(shù)問題,只問背景問題。應(yīng)該是 KPI
22.新思科技
一面(12-14)(PASS10)
static 在 C 和 C++ 的用法 virtual 與析構(gòu)函數(shù) Linux 中用什么命令查找文件 在項(xiàng)目中使用過多態(tài)嗎 用英文介紹自己的愛好
二面(12-18)
項(xiàng)目 功能 代碼量 花多長時間 STL 怎么解決哈希沖突 長二進(jìn)制反轉(zhuǎn) virtual 析構(gòu)函數(shù) 寫一個多態(tài),展示內(nèi)存泄漏
23.浩鯨科技(12-15)
操作系統(tǒng):消息隊(duì)列、進(jìn)程消息 strcpy 和 memcpy 的區(qū)別 多態(tài)具體怎么定義 指針、引用怎么在多態(tài)里面用的
24.映客直播
一面(12-17)(PASS11)
學(xué)過什么課程 指針和引用的區(qū)別 局部 變量與全局變量 內(nèi)存的分類 OOP 三大特性 Linux 常用命令 簡單聊聊直播推流工具 邊下邊播用什么協(xié)議 數(shù)據(jù)庫的事務(wù) 進(jìn)程和線程、進(jìn)程的通信方式、線程的安全問題 TCP 和 UDP 的區(qū)別 HTTP 的返回碼 怎么用兩個棧實(shí)現(xiàn)一個隊(duì)列 怎么獲取二叉樹的高度
二面(12-22)
除了 C++,學(xué)過其他語言嗎 MP4 包含了什么協(xié)議 抖音、直播分別用什么協(xié)議 TS 流有什么內(nèi)容 怎么傳遞視頻信息 怎么解決視頻卡頓問題 內(nèi)存泄漏怎么排查 安卓的生命周期 設(shè)計(jì)模式有哪幾種?單例模式有幾種創(chuàng)建方式? Linux 的常用命令 用過 shell 嗎 怎么通過 shell 獲取 MD5 碼? Linux 獲取字符串的方式? 建議:多了解前沿的流媒體格式!
25.百富計(jì)算機(jī)(12-22)(PASS12)
多進(jìn)程多線程用過嗎? Linux 命令了解嗎? FFmpeg 編譯過嗎? 音視頻解碼過程的格式 視頻播放器開發(fā)的過程 OpenGL 使用的過程 頂點(diǎn)著色器與片元著色器的不同 VBO、FBO 畫面閃爍是什么原因造成
26.埃森哲面試(12-24)
群面,3 個候選人 1 個面試官 公司介紹:世界 500 強(qiáng) 咨詢公司 外企 遇到難題以及解決方法 在實(shí)習(xí)、項(xiàng)目中,怎么處理不屬于自己工作范圍內(nèi)的工作 職業(yè)方向規(guī)劃?技術(shù)專家還是項(xiàng)目管理
27.孩子王
一面(12-29)(PASS12)
C++ 有幾種構(gòu)造函數(shù) STL 的迭代器失效,怎么解決 C++ 與其他語言的區(qū)別?(指針、回收) 智能指針的用法 智能指針的使用場景:連接數(shù)據(jù)庫 STL 是復(fù)制性還是侵入性 紅黑樹比AVL的優(yōu)勢,為何用紅黑樹 紅黑樹的高度 數(shù)據(jù)庫的鎖、事務(wù)、引擎 場景題: 用戶的余額顯示、余額減少等,要不要用事務(wù)? 用戶系統(tǒng),有用戶ID。加入有手機(jī)號注冊,怎么驗(yàn)證是否注冊 用戶擴(kuò)大時,怎么擴(kuò)容? I/O 多路復(fù)用的理解 動態(tài)規(guī)劃與貪心算法的區(qū)別(背包問題分析)
二面(1-8)
多線程的使用場景 多線程的鎖 數(shù)據(jù)庫為何用 SQLite 進(jìn)程間的數(shù)據(jù)共享 怎么實(shí)現(xiàn)音視頻同步 多線程和多進(jìn)程的區(qū)別 Linux 常用命令? 崗位必備技能是:C++ 基礎(chǔ)、網(wǎng)絡(luò)、數(shù)據(jù)庫。是電商中臺
28.富途證券后臺開發(fā)(1-4)
先做幾道題 說說從瀏覽器輸入網(wǎng)站用到的協(xié)議 auto addr = (type) malloc(size); memcpy(addr,"apple");操作系統(tǒng)滿的時候會發(fā)生什么?MySQL 加快查詢的方式
29.CETV(1-5)
Qt 信號與槽的機(jī)制 為什么 new QWidget 不需要 delete vector 的內(nèi)部機(jī)制 編譯過程 虛函數(shù)表原理,虛表編譯的過程 new 和 malloc 的區(qū)別 智能指針內(nèi)部原理 多線程 TCP、UDP 的區(qū)別 TCP 怎么保證可靠傳輸 在一個局域網(wǎng)中怎么連接兩臺電腦? 平時怎么學(xué) C++
30.商湯科技(1-6)
簡單介紹項(xiàng)目—— vector 怎么 clear TCP 粘包、丟包 進(jìn)程的通信 內(nèi)存泄漏 智能指針 Qt 實(shí)現(xiàn)多線程 QSS 屬于第幾個版本 視頻播放器怎么音視頻同步 設(shè)計(jì)模式 舉例工程模式 Qt 的 TableWidget 和 Table View 的區(qū)別 做題 多態(tài)的選擇題 手寫 Rational 類(包括<< >>重載)
31.科曼醫(yī)療(1-7)(PASS13)
介紹碩士課題項(xiàng)目 Qt 自定義控件方法 視頻播放器 Qt 多國語言 QSS 主題樣式 設(shè)計(jì)模式 工廠模式的應(yīng)用場景 設(shè)計(jì)模式的優(yōu)缺點(diǎn) 信號與槽、和事件的區(qū)別 視頻與音頻怎么同步 介紹公司的研發(fā)方向: 應(yīng)用軟件開發(fā) 下位機(jī)驅(qū)動開發(fā) 單片機(jī) Windows 服務(wù)器開發(fā)
32.思謀科技(1-11)
多態(tài)及其用處 靜態(tài)多態(tài)包含什么類型 純虛函數(shù) 虛析構(gòu)函數(shù) 重載與重寫的區(qū)別 extern "C"{} const 的作用 指針和引用的區(qū)別 C++11 新特性 右值引用 STL 哈希 強(qiáng)制類型轉(zhuǎn)換 Qt 的優(yōu)點(diǎn)、缺點(diǎn) Qt 的核心機(jī)制 Qt Graph 信號與槽的優(yōu)點(diǎn)和缺點(diǎn)是什么 Qt connect 函數(shù)的連接方式 TCP 三次握手的過程 手寫代碼:自定義 String 類(真的要每天都復(fù)習(xí)八股文)
33.華陽國際設(shè)計(jì)(1-20)(PASS14)
實(shí)習(xí)的時候做什么工作 指針和引用的區(qū)別 空指針、懸垂指針 TCP 的三次握手 部門分工: 圖形引擎(C#) 平臺開發(fā)(java、C++) 建模(C++、OpenGL)
34.中軟國際(外包公司)
一面(1-25)(PASS15)
多態(tài)、虛析構(gòu)函數(shù) 強(qiáng)制類型轉(zhuǎn)換 類能否嵌套 vector 改變?nèi)萘繒r要注意什么 對象移動 unique_ptr 智能指針 C++11 多線程 lock_guard 怎么自動處理的 多線程怎么發(fā)送信號 線程怎么退出 GDB 怎么調(diào)試段錯誤,怎么查看棧 Linux 怎么處理 core 文件 Git 用過嗎?
二面(1-28)(PASS16)
多態(tài)的定義 代碼的處理過程、匯編的作用 new 和 malloc 的區(qū)別 內(nèi)存的分類 STL vector 的用法 項(xiàng)目中是怎么用的 Linux 用過什么指令 項(xiàng)目都是自己做的? Qt 多線程用什么函數(shù) 計(jì)網(wǎng)用過什么協(xié)議 智能指針 快速排序的思路 MFC 用過嗎 設(shè)計(jì)模式、單例模式 場景題:找出前 K 個最大元素的值(最大堆、最小堆的用法)
三面(1-28)——經(jīng)典好問題,必須好好分析(PASS17)
寫代碼:找出數(shù)組中數(shù)量超過一半的元素
C++的 sort 函數(shù)是怎么實(shí)現(xiàn)的?int GetNum(int *array,int length) {
unordered_map<int,int> mp;
for(int i = 0;i<length-1;++i){
++mp[array[i]];
}
for(int i = 0;i<length-1;++i){
if(mp[array[i]] > length / 2){
return array[i];
}
}
return -1;//沒有的話返回-1
//加入數(shù)據(jù)很大怎么辦?——先排序
sort(array);//sort的原理是什么
return(array[length / 2]);音視頻:YUV 格式與 RGB 格式的區(qū)別 怎么實(shí)現(xiàn)一個服務(wù)端連接多個客戶端? auto 的類型判斷發(fā)生在什么階段(編譯期) 如果是在運(yùn)行期的話會發(fā)生什么問題 多態(tài)的分類 類型轉(zhuǎn)換 智能指針 鎖的類型,自旋鎖的原理 GDB 的常用命令 內(nèi)存的分類 一個棧多大?
35.中國電子系統(tǒng)(1-26)
實(shí)習(xí)的時候做的項(xiàng)目,舉例做過的工作 做的軟件項(xiàng)目的流程 單例模式的實(shí)現(xiàn)方法 觀察者模式 哈希表的原理以及作用、怎么查找值 計(jì)網(wǎng) 七層模型 IP 協(xié)議 三次握手和四次揮手 為什么要進(jìn)行四次揮手 線程和進(jìn)程 從 CPU 的角度區(qū)別線程和進(jìn)程 快速排序的思路、復(fù)雜度 FFmpeg
36.樂鑫嵌入式(1-27)
介紹視頻播放器 介紹研究生課題 代碼題:十進(jìn)制字符串轉(zhuǎn)十六進(jìn)制字符串 選幾個關(guān)鍵字描述自己 你的優(yōu)點(diǎn)和缺點(diǎn) 你期望的工作
(應(yīng)該是KPI)
37.中元匯吉(1-27)(PASS18)
OOP 特性、虛函數(shù) 內(nèi)存泄漏、智能指針 STL 學(xué)過什么數(shù)據(jù)結(jié)構(gòu)、舉例二叉樹的用法 QT 信號與槽 原理 優(yōu)勢 自定義結(jié)構(gòu)體到信號與槽要注意什么 工廠模式、單例模式原理和用法 鎖要注意什么 GDB 用過嗎 項(xiàng)目中要怎么調(diào)試代碼 MySQL 索引是什么 了解軟件架構(gòu)嗎?MVC 模式了解嗎? 怎么使用軟件設(shè)計(jì)思維?是正向還是逆向?
38.Insta360(1-28)(PASS19)
視頻播放器 YUV 是怎么傳遞到 OpenGL 的 AVFrame Parma 的意思 YUV 有很多采樣格式,你采用什么采樣格式 STL vector 和 list 的區(qū)別 map 與 unordered_map 的區(qū)別(考慮到有序與否的區(qū)別、哈希函數(shù)) C++11 的 inplace_push_back 與 push_back 的區(qū)別 unique_ptr 與 shared_ptr 的區(qū)別 lambda 表達(dá)式、怎么捕獲外部變量 virtual 析構(gòu)函數(shù) 多繼承的問題 多線程與多進(jìn)程的區(qū)別 內(nèi)存 地址空間 多進(jìn)程的鎖 自旋鎖原理 怎么避免死鎖 socket 阻塞和非阻塞的區(qū)別 TCP 中間連接的時候斷開會發(fā)生什么(重傳、超時、等待狀態(tài)、TCP 可靠連接原理) 進(jìn)程內(nèi)部的棧內(nèi)存、堆內(nèi)存、各自的增長方式 雙鏈表怎么查找倒數(shù)第二個結(jié)點(diǎn) OpenGL 常見的坐標(biāo)系的變換順序
39.wind金融(2-3)
第 1 個面試官 寫過多少行代碼 C++ 怎么申請連續(xù)的內(nèi)存 vector 怎么用 C++ 的垃圾回收機(jī)制 工程模式是什么,3 種工工廠模式的區(qū)別 排序算法有哪些,哪些的復(fù)雜度是穩(wěn)定不變的 多線程 自旋鎖是什么 數(shù)據(jù)庫用過嗎 第 2 個面試官 音視頻怎么同步 展示同步的代碼 視頻播放器 展示平衡功能項(xiàng)目 多線程怎么同步 GDB 怎么調(diào)試 vector 是不是線程安全的,怎么寫個線程安全的 vector 數(shù)據(jù)庫怎么 sip C++11 的新特性 指針和引用的區(qū)別
40.CVTE
一面(2-22)(PASS20)
二面(2-23)
41.騰訊企業(yè)微信客戶端(2-26)
一面(2-26)(PASS21)
1 小時內(nèi)做 3 到算法題 反轉(zhuǎn)單鏈表 找出數(shù)組中最小的K個數(shù) 長整數(shù)相加 講解題目(做的不好,分析復(fù)雜度) 描述 Qt 的消息傳遞機(jī)制 Windows 消息機(jī)制有哪些 做題 區(qū)別 const 指針與 const 變量 引用的用法(左值引用與右值引用、引用不能改變綁定對象) 多態(tài)的用法
二面(3-5)(PASS22)
信號與槽的底層原理;信號與槽怎么做到性能優(yōu)化 哈希表與紅黑樹的對比:結(jié)構(gòu)、查找 Q t的多線程的信號與槽 虛函數(shù)表原理 構(gòu)造函數(shù)調(diào)用虛函數(shù)可以嗎?會發(fā)生什么? YUV 與 RGB 的區(qū)別 音視頻同步的方法 數(shù)據(jù)庫有幾種范式 HTTP 的底層模型用什么實(shí)現(xiàn)(TCP) 網(wǎng)絡(luò)的七層模型,作用、傳輸單位分別是什么 TCP 的三次握手 寫一個快排;能否用非遞歸方式實(shí)現(xiàn);什么時候復(fù)雜度最大?
三面(3-11)(PASS23)
繼承、多態(tài)的定義 聽過多用組合,少用繼承嗎 Qt 的信號與槽原理,怎么了解這個原理的? 進(jìn)程、線程的區(qū)別,對 OS 而言有什么目的 對 I、B、P 幀的了解、MOOV 的格式了解 音視頻的了解 PTS、DTS的區(qū)別 YUV 與 RGB 的區(qū)別 音視頻同步的方法 講下視頻播放器 流程 怎么使用多線程 能否用一個線程實(shí)現(xiàn) 考慮功能擴(kuò)展嗎 畢業(yè)課題 如何采集、濾波、處理 考慮數(shù)據(jù)采集中斷的情況嗎 考慮 C/S 模式嗎 實(shí)習(xí) 文件傳輸是怎么實(shí)現(xiàn)的 做過什么工作 平時怎么學(xué)習(xí)
四面(3-11)
給出一個二維 vector 表示點(diǎn)到原點(diǎn)的距離。一個五個點(diǎn),5X5 的二維 vector。求從原點(diǎn)出發(fā),再回到原點(diǎn)的最短路徑,要求必須打印輸出結(jié)果 (條件概率)已知城市中藍(lán)色:綠色車的比例是 15:85,目擊者稱看到藍(lán)色車肇事逃逸,但是人區(qū)別藍(lán)色和綠色的正確率是 80%。求真的是藍(lán)色車肇事逃逸的概率
(三面、四面在同一天進(jìn)行。據(jù)說有的人騰訊面了六面。我止步于吃已經(jīng)很滿足。代碼確實(shí)不會寫)
42.萬興科技
一面(3-2)(PASS23)
Qt、C++ 分別用過多久? 代碼量多少 比賽中你負(fù)責(zé)什么角色 OpenGL 了解的深度、在 QT 中的用法 FFmpeg 的了解 Qt 用過多線程、網(wǎng)絡(luò)嗎 Qt 3D 了解嗎 實(shí)習(xí)過程中學(xué)會什么 C++11 新特性;解釋右值引用是為了解決什么問題?(移動語義) 淺拷貝和深拷貝的區(qū)別 OOP 設(shè)計(jì)原則 博客有多少篇 喜歡看什么書
HR面(3-5)(PASS)
綜合面(3-9)
對 FFmpeg 的使用 對音視頻的了解 對 C++ 的了解 用過 C++ 的閉包嗎? OpenGL 的了解 其他 offer 對公司文化的了解 你目前的學(xué)習(xí)方式是什么?
43.元戎啟行
一面(3-10)(PASS24)
介紹一些康復(fù)器械項(xiàng)目 C++11 的新特性 lambda 表達(dá)式 多線程共享內(nèi)容問題,共享對象存放在哪個空間 進(jìn)程與線程 多進(jìn)程、多線程 多進(jìn)程通信的方式,有幾種信號 OSI 七層模型 TCP 與 UDP 的區(qū)別 TCP 擁塞控制 要了解 MySQL 紅黑樹的定義 手撕代碼:把有序鏈表轉(zhuǎn)為平衡二叉樹 怎么遍歷結(jié)點(diǎn) 復(fù)雜度 優(yōu)化遍歷方式
二面(3-15)
虛函數(shù) 虛函數(shù)是類的定義出現(xiàn)還是對象的時候出現(xiàn) 純虛函數(shù) 鉆石繼承為何不能出現(xiàn) 智能指針 環(huán)型引用 shared_ptr 的引用計(jì)數(shù)原理 多線程的原子類型 auto 關(guān)鍵字能給數(shù)組賦值,但是不能定義 用過 Qt 的什么模塊
44.VIVO
一面(3-12)(PASS25)
講一下對 OOP 的理解 講一下單例模式 多線程的單例模式 鎖 互斥量為何能夠用在多線程 數(shù)據(jù)庫 表是否一定要有主鍵 主鍵與唯一索引的區(qū)別 left join ,right join,full join 怎么建立索引 索引怎么優(yōu)化
HR面(3-19)
介紹家庭情況 對 IT 工程師的理解 實(shí)現(xiàn)過程的收獲 舉例壓力大的實(shí)例,壓力大的時候怎么解決 收了什么 offer,為什么拒了 你認(rèn)為手機(jī)會怎么發(fā)展 舉例說明你說服別人接收自己觀點(diǎn)的一個例子
45.富途W(wǎng)indows客戶端開發(fā)
一面(3-16)(PASS26)
虛表是怎么使用的?虛表指針存放在哪里? 構(gòu)造函數(shù)能否為 virtual,能否調(diào)用虛函數(shù)? coding:兩數(shù)之和,非有序 coding:LeetCode61 ——給定鏈表,按照某個規(guī)定旋轉(zhuǎn)鏈表 邏輯題:有 10 箱金子,,,,,, 網(wǎng)絡(luò): TCP 與 UDP 的區(qū)別 TCP的窗口擁塞控制 OS:怎么避免死鎖?
二面(3-19)(PASS27)
下面是有一個全局變量 a 和兩個線程,這兩個線程同時開始并發(fā)執(zhí)行各自的代碼, 在兩個線程都執(zhí)行結(jié)束后,請問 a 的值為______ static int a = 0;
線程1: for(int i=0; i<10;i++) a = a + 1;線程2: for(int i=0; i<10;i++) a = a + 1;
已知公司 OA 數(shù)據(jù)庫有一個員工信息表,包含員工 ID,員工姓名,入職時間,和離職時間。財務(wù)審核時發(fā)現(xiàn) 201803 到 201808 這 6 個月,當(dāng)時所有在職員工都少發(fā)了工資,現(xiàn)在老板需要了解有多少人受影響需要獲得補(bǔ)償。請寫出查詢語句。
select ID where entryTime > 20180301 and leaveTime < 20180831
select ID where entryTime < 20180301 and leaveTime > 20180831
實(shí)驗(yàn)室有 100 個瓶子,其中有一瓶裝有慢性毒藥(第 3 天發(fā)作),另外 99 瓶裝有蒸餾水。請問至少需要多少只小白鼠才能在3天內(nèi)找出哪一瓶是慢性毒藥?_______只
4.找出出現(xiàn)頻率最高的前 K 個數(shù),或者從海量數(shù)據(jù)中找出最大的前 K 個數(shù)
5.實(shí)現(xiàn)排序二叉樹的插入方法
tyedef struct node {
int data;
struct node* left;
struct node* right;
}*BiTree;
void insertBST(BiTree& bt, int data)
{
if (!bt)
{
BiTree ins = new Node;
ins->data = data;
ins->left = ins->right = nullptr;
bt = ins;
}
else if (bt->data > data)
insertBST(bt->left, data);
else
insertBST(bt->right, data);
}
綜合面(3-23)
對公司的了解 最近的 offer?為何不要? 家庭成員、是否單身 用三個詞形容自己 參加過的社團(tuán) 為何選擇醫(yī)學(xué)信息工程 擇業(yè)因素 興趣愛好 學(xué)習(xí)方式 自身的優(yōu)勢 怎么完成學(xué)校到公司的過渡?
46.美的
一面(3-17)(PASS28)
OOP 三大特點(diǎn) STL 常用容器 棧與堆的區(qū)別 new 和 malloc 的區(qū)別 指針和引用的區(qū)別 sizeof 的區(qū)別 自增的區(qū)別 內(nèi)存上綁定的區(qū)別 工廠方法模式 TCP 三次握手 內(nèi)存泄漏是什么意思 數(shù)據(jù)庫 事務(wù)的定義、4 個特性 臟讀、幻讀 索引(數(shù)據(jù)結(jié)構(gòu)、優(yōu)缺點(diǎn)) 鎖的作用 Linux 在文本中快速查找內(nèi)容 找出進(jìn)程的P ID (PS) 如何查看 OS 的大小(free) 工作問題 舉例說明遇到的難題以及解決方法 列舉工作上的過程 說服別人接收你的觀點(diǎn)的例子 團(tuán)隊(duì)合作的例子
二面(3-17)(PASS28)
你的專業(yè)是做什么的? 做過窗口的信號共享嗎? 項(xiàng)目的濾波算法是什么? 音視頻項(xiàng)目的難題是什么? 你的項(xiàng)目來源是哪里? 遇到過程序崩潰的情況嗎? TCP 的連接、釋放過程 time_wait 狀態(tài)分別是什么? 分別發(fā)生在客戶端和服務(wù)端的什么階段?
(終于拿到所謂大廠 offer。但是是 IT 部門,不是研發(fā)部門,在佛山。所以拒了)
47.科大訊飛(3-23)
介紹康復(fù)訓(xùn)練系統(tǒng) vector 如何處理數(shù)據(jù) 數(shù)據(jù)庫 視頻播放器 緩沖機(jī)制 OpenCV 平滑操作 是否用過 MySQL 生產(chǎn)者消費(fèi)者模式 用過 socket 的 I/O 模型嗎? 多線程的用法 主線程 次線程 線程池 怎么操作文件系統(tǒng) new 和 malloc 的區(qū)別
48.多益網(wǎng)絡(luò)(3-24)(PASS)
介紹項(xiàng)目、視頻播放器 FFmpeg 怎么用的 視頻文件是什么格式,怎么存放的 怎么設(shè)計(jì)視頻播放器的暫停?后端是怎么處理的?進(jìn)度條怎么顯示的? 多線程怎么用的? 指針和引用的區(qū)別?在傳遞參數(shù)上有什么區(qū)別? 函數(shù)未定義時會怎么樣? 怎么刪除雙向鏈表? 快排的思路 堆是不是二叉樹 寫代碼:用 C++ 實(shí)現(xiàn)全排列 工作問題:如何看待加班?
49.冰川網(wǎng)絡(luò)(4-2)
碩士畢業(yè)課題
多線程 怎么切換線程 如何共享數(shù)據(jù) C/S 模式是如何處理的? 用 TCP 怎么傳遞消息? TCP 與 UDP
為何 TCP 沒有 UDP 快 用 UDP 怎么實(shí)現(xiàn)可靠的傳輸? 算法問題:網(wǎng)格中有 2 個點(diǎn),怎么找到從 A 到 B 的最短路徑?(用廣度優(yōu)先搜索)
數(shù)據(jù)庫:為何索引的數(shù)據(jù)結(jié)構(gòu)用 B-tree?
(因?yàn)閿?shù)據(jù)庫主要消耗在磁盤 I/O 上,所以要優(yōu)化磁盤 I/O ,如果用紅黑樹,樹的深度太高,消耗磁盤 I/O 太多,速度會太慢)
50.英特爾現(xiàn)場面(4-12)
做一份筆試,問的比較細(xì)節(jié),操作系統(tǒng)比較重要,幾個 C語言的關(guān)鍵字沒用過 三個面試官輪流進(jìn)來房間面試,一個面試官問半小時。問的技術(shù)問題不多,主要問項(xiàng)目細(xì)節(jié)。 其中一個面試官的一個問題用英語問,要求用英語回答并討論。這個面試官告訴我好多面對項(xiàng)目的態(tài)度和看法,要發(fā)散思維,考慮用戶體驗(yàn)。
(最后一家面試以英特爾結(jié)束,算是完美結(jié)束了。反正不留上海,不過就不過了)
