史上最全!C++後端開發面試題與知識點匯總(附答案)

2020-12-21 面試哥

以下匯總C++後臺開發面試題與知識點,還有其他崗位的相關題庫和資料,想要什麼崗位的可以留言哦~

附面試題目:

一、基礎知識

1、基本語言

說一下C++和C的區別說一下C++中static關鍵字的作用說一說c++中四種cast轉換請說一下C/C++ 中指針和引用的區別?給定三角形ABC和一點P(x,y,z),判斷點P是否在ABC內,給出思路並手寫代碼怎麼判斷一個數是二的倍數,怎麼求一個數中有幾個1,說一下你的思路並手寫代碼請你說一下你理解的c++中的smart pointer四個智能指針:請回答一下數組和指針的區別請你回答一下野指針是什麼?請你介紹一下C++中的智能指針請你回答一下智能指針有沒有內存洩露的情況請你來說一下智能指針的內存洩漏如何解決請你回答一下為什麼析構函數必須是虛函數?為什麼C++默認的析構函數不是虛函數請你來說一下函數指針請你來說一下fork函數請你來說一下C++中析構函數的作用請你來說一下靜態函數和虛函數的區別請你來說一說重載和覆蓋請你說一說strcpy和strlen請你說一說你理解的虛函數和多態請你來回答一下++i和i++的區別請你來寫個函數在main函數執行前先運行請你來說一下智能指針shared_ptr的實現請你來說一下C++裡是怎麼定義常量的?常量存放在內存的哪個位置?請你來回答一下const修飾成員函數的目的是什麼?如果同時定義了兩個函數,一個帶const,一個不帶,會有問題嗎?請你來說一說隱式類型轉換說說你了解的類型轉換請你來說一說C++函數棧空間的最大值請你來說一說extern「C」請你回答一下new/delete與malloc/free的區別是什麼請你說說你了解的RTTI請你說說虛函數表具體是怎樣實現運行時多態的?請你說說C語言是怎麼進行函數調用的?請你說說C語言參數壓棧順序?請你說說C++如何處理返回值?請你回答一下C++中拷貝賦值函數的形參能否進行值傳遞?請你回答一下malloc與new區別請你說一說select請你說說fork,wait,exec函數請你回答一下靜態函數和虛函數的區別

2、容器和算法

請你來說一下map和set有什麼區別,分別又是怎麼實現的請你來介紹一下STL的allocaotr請你來說一說STL迭代器刪除元素請你說一說STL中MAP數據存放形式請你講講STL有什麼基本組成請你說說STL中map與unordered_map請你說一說vector和list的區別,應用,越詳細越好請你來說一下STL中迭代器的作用,有指針為何還要迭代器請你說一說epoll原理n個整數的無序數組,找到每個元素後面比它大的第一個數,要求時間複雜度為O(N)請你回答一下STL裡resize和reserve的區別請你說一說stl裡面set和map怎麼實現的

3、類和數據抽象

請你來說一下C++中類成員的訪問權限請你來說一下C++中struct和class的區別請你回答一下C++類內可以定義引用數據成員嗎?

4、面向對象與泛型編程

請你回答一下什麼是右值引用,跟左值又有什麼區別?

5、編譯與底層

請你來說一下一個C++源文件從文本到可執行文件經歷的過程?請你來回答一下include頭文件的順序以及雙引號」」和尖括號的區別?請你回答一下malloc的原理,另外brk系統調用和mmap系統調用的作用分別是什麼?請你說一說C++的內存管理是怎樣的?請你來說一下C++/C的內存分配請你回答一下如何判斷內存洩漏?請你來說一下什麼時候會發生段錯誤請你來回答一下什麼是memory leak,也就是內存洩漏請你來說一下共享內存相關api請你來說一下reactor模型組成請自己設計一下如何採用單線程的方式處理高並發請你說說C++如何處理內存洩漏?請你說說select,epoll的區別,原理,性能,限制都說一說請你說一說C++ STL 的內存優化、6、C++11

請問C++11有哪些新特性?請你詳細介紹一下C++11中的可變參數模板、右值引用和lambda這幾個新特性。

二、作業系統

你說一下進程與線程的概念,以及為什麼要有進程線程,其中有什麼區別,他們各自又是怎麼同步的你說一說Linux虛擬地址空間你說一說作業系統中的程序的內存結構你說一說作業系統中的缺頁中斷你回答一下fork和vfork的區別問如何修改文件最大句柄數?你說一說並發(concurrency)和並行(parallelism)問MySQL的埠號是多少,如何修改這個埠號你說一說作業系統中的頁表尋址請你說一說有了進程,為什麼還要有線程?請問單核機器上寫多線程程序,是否需要考慮加鎖,為什麼?請問線程需要保存哪些上下文,SP、PC、EAX這些寄存器是幹嘛用的請你說一說線程間的同步方式,最好說出具體的系統調用請你說一下多線程和多進程的不同請你說一說進程和線程的區別遊戲伺服器應該為每個用戶開闢一個線程還是一個進程,為什麼?請你說一說OS缺頁置換算法請你說一說進程和線程區別請你說一下多進程和多線程的使用場景請你說一說死鎖發生的條件以及如何解決死鎖請問虛擬內存和物理內存怎麼對應請你說一說作業系統中的結構體對齊,字節對齊請問進程間怎麼通信請你說一下虛擬內存置換的方式請你說一下多線程,線程同步的幾種方式請你講述一下互斥鎖(mutex)機制,以及互斥鎖和讀寫鎖的區別請回答一下進程和線程的區別請你說一說進程狀態轉換圖,動態就緒,靜態就緒,動態阻塞,靜態阻塞A a = new A; a->i = 10;在內核中的內存分配上發生了什麼?給你一個類,裡面有static,virtual,之類的,來說一說這個類的內存分布請你回答一下軟連結和硬連結區別請問什麼是大端小端以及如何判斷大端小端請你回答一下靜態變量什麼時候初始化請你說一說用戶態和內核態區別請問如何設計server,使得能夠接收多個客戶端的請求死循環+來連接時新建線程的方法效率有點低,怎麼改進?請問怎麼喚醒被阻塞的socket線程?請問怎樣確定當前線程是繁忙還是阻塞?空閒的進程和阻塞的進程狀態會不會在喚醒的時候誤判?請問就緒狀態的進程在等待什麼?請你說一說多線程的同步,鎖的機制兩個進程訪問臨界區資源,會不會出現都獲得自旋鎖的情況?假設臨界區資源釋放,如何保證只讓一個線程獲得臨界區資源而不是都獲得?windows消息機制知道嗎,請說一說C++的鎖你知道幾種?說一說你用到的鎖請你說一說死鎖產生的必要條件?請你說一說什麼是線程和進程,多線程和多進程通信方式請你說一說內存溢出和內存洩漏進程和線程的區別,你都使用什麼線程模型請你來說一說協程系統調用是什麼,你用過哪些系統調用請你來手寫一下fork調用示例請你來說一說用戶態到內核態的轉化原理請你說一下源碼到可執行文件的過程請你來說一下微內核與宏內核你說一下殭屍進程請問GDB調試用過嗎,什麼是條件斷點請你來介紹一下5種IO模型請你說一說異步編程的事件循環請你回答一下作業系統為什麼要分內核態和用戶態請你回答一下為什麼要有page \,作業系統怎麼設計的page \server端監聽埠,但還沒有客戶端連接進來,此時進程處於什麼狀態?請問如何設計server,使得能夠接收多個客戶端的請求死循環+來連接時新建線程的方法效率有點低,怎麼改進?就緒狀態的進程在等待什麼?請你說一下多線程的同步,鎖的機制兩個進程訪問臨界區資源,會不會出現都獲得自旋鎖的情況?假設臨界區資源釋放,如何保證只讓一個線程獲得臨界區資源而不是都獲得?請問怎麼實現線程池Linux下怎麼得到一個文件的100到200行請你來說一下awk的使用請你來說一下linux內核中的Timer 定時器機制三、計算機網絡

你的研究方向是無線傳感器網絡,請問怎麼確保節點傳輸存儲的可靠性請你說一下TCP怎麼保證可靠性,並且簡述一下TCP建立連接和斷開連接的過程請你說一說TCP的模型,狀態轉移請回答一下HTTP和HTTPS的區別,以及HTTPS有什麼缺點?請你說一說HTTP和HTTPS的不同請你說一說HTTP返回碼請你說一說IP位址作用,以及MAC地址作用請介紹一下作業系統中的中斷請回答OSI七層模型和TCP/IP四層模型,每層列舉2個協議請你說一說TCP的三次握手和四次揮手的過程及原因搜索baidu,會用到計算機網絡中的什麼層?每層是幹什麼的請你說一說TCP擁塞控制?以及達到什麼情況的時候開始減慢增長的速度?請問TCP用了哪些措施保證其可靠性請你說說TCP/IP數據鏈路層的交互過程請你說說傳遞到IP層怎麼知道報文該給哪個應用程式,它怎麼區分UDP報文還是TCP報文請問你有沒有基於做過socket的開發?具體網絡層的操作該怎麼做?(其實就是網絡編程的基本步驟)請問server端監聽埠,但還沒有客戶端連接進來,此時進程處於什麼狀態?請問TCP三次握手是怎樣的?請問tcp握手為什麼兩次不可以?為什麼不用四次?請你來說一下TCP擁塞控制?TCP和UDP的區別和各自適用的場景請你來說一下TCP三次握手四次揮手的過程,為什麼tcp連接握手需要三次, time_wait狀態請你來說一說http協議請你來說一下GET和POST的區別請你來說一下socket編程中伺服器端和客戶端主要用到哪些函數請你來說一下數字證書是什麼,裡面都包含那些內容請你來介紹一下UDP的connect函數請你講述一下TCP三次握手,四次揮手,以及為什麼用三次握手?請你說一下阻塞,非阻塞,同步,異步請你講述一下Socket編程的send() recv() accept() socket()函數?請你說一下http協議會話結束標誌怎麼截出來?請你說一說三次握手請你說一說四次揮手請你說一說TCP/IP數據鏈路層的交互過程四、資料庫

1、資料庫基礎

請你說一下資料庫事務以及四個特性請你說一說資料庫的三大範式請你介紹一下資料庫的ACID特性請你說一說資料庫索引請你說一說資料庫事務請你說一說資料庫事務隔離請你說一說inner join和left join請你聊一聊資料庫事物的一致性請你說說索引是什麼,多加索引一定會好嗎k-v存儲中,key有哪些要求?介紹資料庫中的WAL技術

2、Mysql

請你說一說mysql的四種隔離狀態請你介紹一下mysql的MVCC機制請問SQL優化方法有哪些請你說一下MySQL引擎和區別

3、Redis

請你回答一下mongodb和redis的區別請你說一下mysql引擎以及其區別請你來說一說Redis的定時機制怎麼實現的請你來說一說Redis是單線程的,但是為什麼這麼高效呢?請問Redis的數據類型有哪些,底層怎麼實現?請問Redis的rehash怎麼做的,為什麼要漸進rehash,漸進rehash又是怎麼實現的?請你來說一下Redis和memd的區別請問Redis怎麼實現的定期刪除功能請你說一說Redis對應的命令和數據類型...五、算法與數據結構

1、樹

請你來說一說紅黑樹和AVL樹的定義,特點,以及二者區別請你聊一聊哈夫曼編碼請你回答一下map底層為什麼用紅黑樹實現請你介紹一下B+樹請你說一說map和unordered_map的底層實現請你回答一下map和unordered_map優點和缺點請你回答一下epoll怎麼實現的請你說一說C++兩種map請問紅黑樹了解嗎請你說一說紅黑樹的性質還有左右旋轉請你說一說紅黑樹的原理以及erase以後迭代器的具體分布情況?請你實現二叉樹的層序遍歷並輸出手寫代碼:二叉樹序列化反序列化

2、堆與棧

請說一說你理解的stack overflow,並舉個簡單例子導致棧溢出請你回答一下棧和堆的區別,以及為什麼棧要快手寫代碼:兩個棧實現一個隊列請你來說一下堆和棧的區別請你說一說小根堆特點

3、數組

請你回答一下Array&List, 數組和鍊表的區別一個長度為N的整形數組,數組中每個元素的取值範圍是[0,n-1],判斷該數組否有重複的數,請說一下你的思路並手寫代碼

4、排序

請你來手寫一下快排的代碼請你手寫一下快排的代碼請問求第k大的數的方法以及各自的複雜度是怎樣的,另外追問一下,當有相同元素時,還可以使用什麼不同的方法求第k大的元素請你來介紹一下各種排序算法及時間複雜度請你說一說你知道的排序算法及其複雜度請問海量數據如何去取最大的k個請你說一說Top(K)問題請問快排的時間複雜度最差是多少?什麼時候時間最差請問穩定排序哪幾種?請你介紹一下快排算法;以及什麼是穩定性排序,快排是穩定性的嗎;快排算法最差情況推導公式

5、哈希

請你來說一說hash表的實現,包括STL中的哈希桶長度常數。請你回答一下hash表如何rehash,以及怎麼處理其中保存的資源請你說一下哈希表的桶個數為什麼是質數,合數有何不妥?請你說一下解決hash衝突的方法請你說一說哈希衝突的解決方法

6、動態規劃

請你手寫代碼:最長公共連續子序列手寫代碼:求一個字符串最長回文子串手寫代碼:查找最長回文子串

7、鍊表

請你手寫代碼,如何合併兩個有序鍊表手寫代碼:反轉鍊表判斷一個鍊表是否為回文鍊表,說出你的思路並手寫代碼請你手寫鍊表反轉什麼是單向鍊表,如何判斷兩個單向鍊表是否相交

7、高級算法

如果讓你做自然語言理解(NLU),在處理語言規則的時候大概會用到什麼算法請問加密方法都有哪些什麼是LRU緩存請你說一說洗牌算法

8、字符串

給你一個字符串,找出第一個不重複的字符,如「abbbabcd」,則第一個不重複就是c

六、項目相關

請你回答一下git中Merge和rebase區別

七、設計模式

請問你用過哪些設計模式,介紹一下單例模式的多線程安全問題請問你了解哪些設計模式?請問如何保證單例模式只有唯一實例?你知道的都有哪些方法?請你說一說OOP的設計模式的五項原則請你說說工廠模式的優點?請你說一下觀察者模式請你介紹一下單例模式單例模式中的懶漢加載,如果並發訪問該怎麼做?裝飾器模式和單例模式,使用單例模式應該注意什麼八、場景題

給你兩個球,100層樓,每個球在一定高度扔下去會碎,怎麼用最少的次數給判斷是幾層樓能把求摔碎?

九、分布式與架構

分布式緩存和分布式存儲的設計

相關焦點

  • 作業幫後端一面、二面涼經
    8.場景題,插入一萬個元素之後會不會擴容,擴容擴多少9.JDK1.7和1.8中hashmap的區別?在1.7和1.8擴容有什麼區別,我說了1.8是先插入後擴容,又問我為啥要先插入呢,先擴容不是更好?10.hashmap擴容過程,開始問我,那你知道ConrrentHashMap的擴容過程呢?
  • CFDL戰隊面試答題活動全部答案匯總 CFDL戰隊面試答案大全
    CFDL戰隊面試答題活動在最近正式的開啟了,在其中之要玩家答對了問題的答案的話就可以獲得很多獎勵,下面就來為大家詳細的介紹一下全部CFDL戰隊面試答題活動答案大全。
  • 2020Web前端開發面試題及答案解析匯總-開課吧
    2020Web前端面試題問題:Web前端面試中HR面你的目的有哪些?錄風險評估,這部分是評估候選人是否具備穩定性,是否會帶來額外的管理風險,是否能上勝任工作,比如頻繁的跳槽會帶來穩定性的風險,HR會慎重考慮這點,比如在面試中候選人體現出了「槓精」潛質,HR會擔心候選人在工作中會難以與他人協作或者不服從管理,帶來管理風險,再比如,雖然國家明確規定在招聘中不得有性別、年齡等歧視,但是個大齡已婚婦女會有近期產的可能性,可能會有長期的產假
  • 特崗結構化面試經典100題解析答案資料
    【導讀】華圖寧夏教師招聘考試網同步華圖教育發布:特崗結構化面試經典100題解析答案資料,詳細信息請閱讀下文!如有疑問請加【2019寧夏教師招聘考試交流群匯總】 ,更多資訊請關注寧夏教師微信公眾號(ningxiajsht),寧夏教師招聘考試培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:ht18295188220
  • 教師資格證結構化面試經典100題答案及解析分享
    【導讀】華圖寧夏教師招聘考試網同步華圖教育發布:教師資格證結構化面試經典100題答案及解析分享,詳細信息請閱讀下文!如有疑問請加【2019寧夏教師招聘考試交流群匯總】 ,更多資訊請關注寧夏教師微信公眾號(ningxiajsht),寧夏教師招聘考試培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:ht18295188220
  • 教師結構化面試經典100題答案及解析查看
    【導讀】華圖寧夏教師招聘考試網同步華圖教育發布:教師結構化面試經典100題答案及解析查看,詳細信息請閱讀下文!如有疑問請加【2019寧夏教師招聘考試交流群匯總】 ,更多資訊請關注寧夏教師微信公眾號(ningxiajsht),寧夏教師招聘考試培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:ht18295188220
  • 初中數學「二次函數」最全知識點匯總!
    今天,給大家整理的是初中數學「二次函數」最全知識點匯總,全文共分為8個部分:知識點總結、學習口訣、易錯分析巧、選解析式、動態最值專題、解題技巧、變式13解、題型歸類,基本囊括了初中數學「二次函數」全部的考點、重難點,強烈推薦家長轉給孩子!
  • 最新Java集合面試題,你必須知道的
    現在春招招聘熱火進行中,無論你是找工作還是打算跳槽的程序,數據結構這是面試官必問的一個題目,面試真的太重要了,本人通過最近面試遇到的問題,今天整理常見的Java集合面試題以及答案分享給大家。Java集合常見面試題:1,數組和集合有什麼區別?答:數組是固定的長度,存儲的基本數據類型是引用數據類型,存儲的元素必須是同數據類型的;集合的長度是可以變,只能存儲引用數據類型,存儲發對象可以是不同數據類型。
  • 超全,最新區塊鏈面試匯總50題(附答案)
    區塊鏈區塊鏈在市場上有巨大的需求,您可以作為區塊鏈開發人員擁有出色的職業生涯。但是,區塊鏈職業理想者之間競爭激烈,要通過面試並非易事。為了幫助您在區塊鏈工作面試中表現最佳,面試哥根據複雜性將面試問題分為初級和高級兩部分。區塊鏈面試問題-初級1. 什麼是區塊鏈?回答:區塊鏈是不間斷的經濟交易數字分類帳,可以進行編程,以記錄不僅是金融交易,還可以記錄幾乎所有有價值的東西。
  • Java架構師常見基礎面試題(附答案)
    但你知道企業在招聘面試時會提問什麼嗎?接下來千鋒廣州Java小編就給大家分享一些基礎面試題答疑。1、什麼是Spring框架?Spring框架有哪些主要模塊?Spring框架是一個為Java應用程式的開發提供了綜合、廣泛的基礎性支持的Java平臺。
  • 一道趣味面試題,絕大多數人都是「複製」答案,千篇一律照貓畫虎
    好像是2012年南京大學自主招生的一道趣味面試題,用4個0來算24點你會算嗎?南京是一個風景秀美的好地方,長江、紫金山、玄武湖……只是曾經被日本來的那夥強盜燒殺搶掠無惡不作的令人髮指的行徑所汙染過,總是會令人想起曾經悲慘的歷史,國人當自強不息,中華民族當讓四方來賀。說到南京就會想起歷史,下面回到此篇。
  • 程式設計師:5年php開發,發展有限準備轉go,網友:你還會轉回來的!
    如果是搞編程工作,第一個基本條件就是必須會一門計算機語言,這是入門編程行業的首要條件了,隨著工作經驗的積累,就會發現計算機語言只是一個工具而已,最重要的是編程思想及一些程式設計師的必備素養。經常有人會問到一個5年的程式設計師應該要掌握多少門計算機語言,這個問題沒有固定答案,如果必須要一個答案,我想應該是這樣,首先要精通一門主流語言,在這個基礎之上,看個人精力而定了,如果一門語言都不精通,會的語言再多也是沒有什麼競爭力的。近期有一名程式設計師網友分享了他的一些情況。
  • 人民日報:五年級數學必考應用題100道(附答案),考試衝刺滿分
    人民日報:五年級數學必考應用題100道(附答案),考試衝刺滿分五年級是小學階段難度提升最大的階段,語數外三門主科難度都加深,沒有好的學習方法和思維模式,成績很容易掉隊。數學是五年級階段提升最大的。其實在整個小學學習階段來講,數學知識點總體都不難,很多同學數學成績提升不上去,就是因為在容易丟分的題型上丟分,那就是應用題。上了五年級一定要重視這個問題,五年級之前考點都非常的基礎,上了五年級之後應用題是最拉分的。這也是同學們最難掌握的題型。應用題沒有立馬提升的捷徑,平時多練習和總結才是最為關鍵的。
  • 犯罪大師的全部題答案攻略:crimaster全部題答案匯總一覽[多圖]
    犯罪大師的全部題答案是什麼呢?在crimaster犯罪大師的眾多兇案當中,想要全部的解開線索非常的困難,不少朋友在案件的推理過程中絞盡腦汁都沒有正確的解答答案,那麼今天小編就為大家分享犯罪大師的全部題答案攻略:crimaster全部題答案匯總一覽,希望大家能夠喜歡。感興趣的朋友們一起來看看吧!
  • 衡中老師:初中數學勾股定理練習題(附答案),建議初中生列印
    衡中老師:初中數學勾股定理練習題(附答案),建議初中生列印在初中階段,數學也算是難點科目了。其中在初中階段,很多同學都會在勾股定理中丟分,勾股定理也是初中數學的基礎知識,但是隨著數學難度加深,混合了其他知識一起考的話,也算是難點了。
  • 事業單位結構化面試的測評要素??人際交往意識與技巧匯總
    > |  事業單位考試 | 事業單位匯總簡章     本篇內容中公事業單位(http://www.zgsydw.com/)提供結構化面試知識點《事業單位結構化面試的測評要素——人際交往意識與技巧匯總》,文章內容包括人際交往的定義、人際交往意識與技巧例題解析
  • 遊戲製作人面試題匯總及個人思考
    >7、管理能力可以看一下我目前做的第一版匯總:面試題框架一 常規流程和專業能力中的成就/失敗限於篇幅原因,本篇主要是講常規流程和專業能力中的成就/失敗。專業能力面試題:成就/失敗系列:4、你工作中最自豪的事情是什麼?
  • 物理老師真厲害:初中物理1-4冊易錯題全匯總,共1000道,快收藏
    物理老師真厲害:初中物理1-4冊易錯題全匯總,共1000道,快收藏學習物理最重要的就是熟練掌握物理基礎概念和公式定理,才能抓住物理的實質問題和關鍵問題。不過在物理的學習中,哪怕是你的知識點掌握得再好,試卷也很少出錯,但是對於很多學生來講,始終會有一些經常出錯的題目,這類題目我們稱之為易錯題。物理作為初中所有科目中比較難的學科,同學們的易錯點也比較多,想要「啃」透初中物理的易錯題,首先對相對應的知識點進行整理和複習。
  • 國考面試輔導班全封閉_國家公務員專題信息網
    02、國考試題多做多練   選擇近五年的國考試題進行練習,做到對考試內容有一定的了解,認識到自身的不足之處,後面可以針對性的學習相應知識點。這裡建議小夥伴們購買我們的2021國考衝刺密卷,裡面試題和知識點都有,很適合考生們考前做題練習。