標籤:

C++ 研發實習生面試通常會被問到什麼問題?


C++很廣啊,需要看你面試的小組是做什麼的,更重要的跟面試官有關,面試官的風格十分迥異。

我面試實習生是從簡歷問的,我不知道別人是怎麼看的,我一般默認簡歷寫的都是他願意和我聊的,所以我會去用問題去驗證他的技能。如他寫了會Shell,我就會出問題有關Shell的,他寫了會操作系統,我就會問操作系統的問題,所以不完全是C++,大部分時間都是針對簡歷。

然後我會問一些C++以及STL的問題,以及知不知道C++11?然後希望他能關注C++最新的一些東西。我也會出一些數據結構與演算法題,但是不是直接出,而是從他寫的簡歷挖出來的,然後延伸出來。

最後我會結合項目組做的一些東西問問,比如編譯原理,Clang等,但是不抱有希望,還是第一點簡歷那裡最重要,時間花費的最多。

若面試失敗,我雖然不會明說,但是他一定可以感覺出來,因為這時候我會告訴他哪裡還有欠缺,給出一些建議,順便推薦一些書給他。


我面試的時候一般都會問 RAII,如果掌握了 RAII 會繼續問深入一些的問題;如果連這個都沒掌握,簡歷里掌握的語言又寫了 C++ 的話,那我一般認為可能連 C 都沒掌握好,仔細問一些 C 的問題基本上都能印證我的看法,再加上編程題看代碼風格就能看出 C 基礎是否紮實了。


虛函數的內部實現幾乎是必問的


基本的題目大概有以下幾個

1、用指針、引用或直接傳值來分配內存,哪個能成功,哪個會泄露

2、static在不同場景下的不同意義

3、vector和list有什麼區別

4、什麼是多態

5、new和malloc的區別

6、常量指針與指向常量的指針

7、原地逆轉鏈表

8、判斷鏈表是否有環

9、繼承、多重繼承、虛函數表等對sizeof的影響


聽參加面試的學長,學姐講的。

重中之重的:虛函數和虛函數表(繼承和多態),RAII(C++裡面最重要的思想之一),內存管理(引申到智能指針),字元串相關(std::string和字元串函數),C++11中的一些新特性(auto, lambda等)

此外,STL啦,網路編程啦,多線程啦,也是常光顧的。


C++ 語言上的話我一般就三個方面:

一個是指針和內存分配,看看對內存管理和訪問有沒有概念

一個是虛函數,看看對類和繼承的理解

最後看看對方對 C++11 和 C++14 有沒有了解,看看對語言有沒有基本的好奇和關注。


1、運算符的優先順序問題

2、選擇語句的所有用法與注意事項 (switch)

3、字元串處理函數的使用,要將所有的字元串函數熟練的使用,並自己能編寫(strlen等)

4、指針比較重要,幾乎關係到指針的基礎內容都可能會出。

5、數組和指針的一起使用

6、宏定義,幾乎每個筆試題都會考,宏定義也是很重要的,一個好宏會比一個函數的功能強大

7、字元


因人而異,成與不成有時候也看緣分。

面演算法會比較多,比如斐波那契,鏈表反轉等。

面業務也會有,可能會挑幾個系統業務踩過的坑,試試你的問題分析能力。

還有面一些腦筋急轉彎,不一而足。

但最終演算法是重中之重,沒有信心就去leetcode刷一遍。

最後,祝你好運!


實習生看基礎啊,學校課本上的東西。

至於C++根本不是重點。


樓上說的基本都會,然而沒什麼卵用。三月以來被面試過十多次了,都是c++開發,結果只有一兩個問過樓上各位提到的c++相關問題,其他都是在問項目以及系統設計題。


推薦閱讀:

怎麼返回容器中部分內容的引用?
C++中將一個成員函數定義為const的會有助於提高性能嗎?
C++LNK2019錯誤如何解決?
對於 C++ 的疑惑?

TAG:面試 | C |