從小廠到騰訊T2.3OFFER,我所整理的面試題(含答案)

在這裏插入圖片描述

騰訊C++第一輪面試題目:
不會做彆着急 ,文末有答案

1、自我介紹(自由發揮)

2、301和302的區別?

3、紅黑樹是什麼樣的數據結構?紅黑樹和B數的區別?

4、堆和棧的區別?

5、談一下對樂觀鎖和悲觀鎖的認識
在這裏插入圖片描述

6、結構體struct和聯合體union的區別

7、三次握手的具體實現,time_wait原理?

8、C和C++的特點與區別

9、計算機網絡中不同層有用到哪些協議?

如果這上面這些問題你只會一半,你第一輪就要被淘汰,接下來你就要繼續死磕C++啦!
在這裏插入圖片描述

騰訊T3C++開發工程師面試總結
c/c++ 面試題庫 v1.0

  1. 基礎部分

1.1. 語言

一、 C 和 C++的特點與區別?

二、 闡述 C++的多態

三、 闡釋 c++虛函數的實現

四、 C 和 C++內存分配問題

  1. 高級部分

2.1. 網絡

五、 畫出三次握手和四次揮手流程圖

六、 請闡釋 https 建立連接過程

七、 畫出 OSI 和 TCP/IP 協議棧的對應關係

八、 請闡釋 ARQ 協議的原理和過程

九、 請闡釋滑動窗口協議原理和過程

操作系統.

十、 進程通信方式有哪些?哪種效率最高?

十一、 線程間的通信方式

十二、 請分別闡釋進程和線程的概念,並分析異同?

數據庫

十三、 MySQL 中 myisam 與 innodb 的區別

十四、 innodb 引擎的 4 大特性

十五、 MyISAM 和 InnoDB selectcount(*)哪個更快,爲什麼

十六、 Redis 支持的數據類型?

十七、 什麼是 Redis 持久化?Redis 有哪幾種持久化方式?優缺點是什麼?

十八、 redis 通訊協議(RESP ),能解釋下什麼是 RESP?有什麼特點?…

十九、 Redis 有哪些架構模式?講講各自的特點

數據結構

二十、 線性表

二十一、 二叉樹 .

二十二、 紅黑樹

二十三、 平衡樹

二十四、 Radix 樹

二十五、 八叉樹

二十六、 梅克爾樹

算法

二十七、 排序算法

選擇/冒泡/快速/堆排等

二十八、 一致性哈希算法

二十九、 paxos 算法

三十、 raft 算法

答案部分

  1. 基礎部分

1.1.語言

一、 C 和 C++的特點與區別?

參考答案:

答:(1)C 語言特點:

  1. 作爲一種面向過程的結構化語言,易於調試和維護;

  2. 表現能力和處理能力極強,可以直接訪問內存的物理地址;

  3. C 語言實現了對硬件的編程操作,也適合於應用軟件的開發;

  4. C 語言還具有效率高,可移植性強等特點。

(2)C++語言特點:

  1. 在 C 語言的基礎上進行擴充和完善,使 C++兼容了 C 語言的面向過程特點,又成爲了

一種面向對象的程序設計語言;

  1. 可以使用抽象數據類型進行基於對象的編程;

  2. 可以使用多繼承、多態進行面向對象的編程;

  3. 可以擔負起以模版爲特徵的泛型化編程。

二、 闡述 C++的多態

參考答案:

編譯時多態:主要指泛型編程

運行時多態:

C++的多態性用一句話概括:在基類的函數前加上 virtual 關鍵字,在派生類中重寫該函數,

運行時將會根據對象的實際類型來調用相應的函數。如果對象類型是派生類,就調用派生

類的函數;如果對象類型是基類,就調用基類的函數。

  1. 用 virtual 關鍵字申明的函數叫做虛函數,虛函數肯定是類的成員函數;

  2. 存在虛函數的類都有一個一維的虛函數表叫做虛表,類的對象有一個指向虛表開始的

虛指針。虛表是和類對應的,虛表指針是和對象對應的;

  1. 多態性是一個接口多種實現,是面向對象的核心,分爲類的多態性和函數的多態性。;

  2. 多態用虛函數來實現,結合動態綁定.;

  3. 純虛函數是虛函數再加上 = 0;

  4. 抽象類是指包括至少一個純虛函數的類;

純虛函數:virtual void fun()=0;即抽象類,必須在子類實現這個函數,即先有名稱,沒

有內容,在派生類實現內容。

三、 闡釋 c++虛函數的實現

參考答案:

簡單地說,每一個含有虛函數(無論是其本身的,還是繼承而來的)的類都至少有一個與

之對應的虛函數表,其中存放着該類所有的虛函數對應的函數指針。

例:
在這裏插入圖片描述

其中:

B 的虛函數表中存放着 B::foo 和 B::bar 兩個函數指針。

D 的虛函數表中存放的既有繼承自 B 的虛函數 B::foo,又有重寫(override)了基類虛函

數 B::bar 的 D::bar,還有新增的虛函數 D::quz。

虛函數表構造過程:

從編譯器的角度來說,B 的虛函數表很好構造,D 的虛函數表構造過程相對複雜。下面給出

了構造 D 的虛函數表的一種方式(僅供參考):
在這裏插入圖片描述

虛函數調用過程

以下面的程序爲例:
在這裏插入圖片描述

由於答案部分太多了,就不一一表現出來了,大家如果想要獲取此份騰訊T2.3級面經的PDF答案,可以私信我“面試”即可獲取

在這裏插入圖片描述
在這裏插入圖片描述

已整理到PDF文檔,面試題+答案

資料獲取方式:私信我資料免費獲取

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章