面試總結1 CVTE面試總結

2021-07-06 08:03:49 字數 3599 閱讀 9265

七月份投了cvte內推進行了**面試,由於準備得不是很充分,答得不是很好。面試內容主要包括:c++基礎、資料庫、網路程式設計、linux基礎等。題目如下:

1、介紹一下 c++中的引用?

答案網上都有就不重複了。

2、 陣列可以引用嗎?(當時好像答錯了)

答:不能建立陣列的引用是說,陣列的元素不能是引用。而int (&b)[3] = a;b本身是乙個引用,b不是陣列。b的引用是陣列名a.如果建立陣列的元素的引用,則為:int& b[3];但是int& b[3];c++不支援,因為引用不可以作陣列中的元素。
原因是它不支援傳統意義的複製,傳統意義的複製:int a = b;a和b在記憶體中分別占用,內容一致。如果int &a = b;因此這種複製,記憶體中a並不分配新的記憶體,自然會錯誤。
一句話,你可以建立對陣列的引用,但你不能建立乙個元素都是引用的陣列。

3、 多型和引用關係?

答案網上都有就不重複了。

4、  new和malloc區別?為什麼在c++中使用new?他們的返回型別是否相同?

答:(1)malloc與free是c++/c語言的標準庫函式,new/delete是c++的運算子。它們都可用於申請動態記憶體和釋放記憶體。

(2)對於非內部資料型別的物件而言,光用malloc/free無法滿足動態物件的要求。物件在建立的同時要自動執行建構函式,物件在消亡之前要自動執行析構函式。由於malloc/free是庫函式而不是運算子,不在編譯器控制許可權之內,不能夠把執行建構函式和析構函式的任務強加於malloc /free.

(3)因此c++語言需要乙個能完成動態記憶體分配和初始化工作的運算子new,以乙個能完成清理與釋放記憶體工作的運算子delete.注意new/delete不是庫函式。

new 建立的是乙個物件,malloc分配的是一塊記憶體

返回型別不同:malloc 函式返回的是 void * 型別,void* 表示未確定型別的指標。malloc 向系統申請分配指定size個位元組的記憶體空間new 返回指定型別的指標,並且可以自動計算所需要大小

5、 怎麼確認乙個類中物件的個數?(推薦effective c++系列裡面講得很全面)

class allmembers

allmembers(const allmembers&)  //

拷貝建構函式

~allmembers() //

析構函式

static size_t

number()  //

返回例項化物件個數

private:

static size_t num;     //

物件計數器};

6、 講講智慧型指標?(可以看看boost庫)

7、 tcp為什麼採用四次揮手

答:udp速度快

9、 shell 查詢當前目錄和子目錄下的.c檔案?

答:find. -name *.c

10、資料庫中查詢兩個表中相同的資料(name)?

答:select a.* from a,b where a.id = b.id and a.name = b.name
11、說一說c++11的新特性

12、static和const有什麼區別?

13、http和tcp的區別

答:tpc/ip協議是傳輸層協議,主要解決資料如何在網路中傳輸,而http是應用層協議,主要解決如何包裝資料

14、linux下檔案系統刪除乙個檔案

15、close_wait和time_wait的區別

time_wait 是主動關閉鏈結時形成的,等待2msl時間,約4分鐘。主要是防止最後乙個ack丟失。由於time_wait的時間會非常長,因此server端應儘量減少主動關閉連線。

close_wait是被動關閉連線是形成的。根據tcp狀態機,伺服器端收到客戶端傳送的fin,則按照tcp實現傳送ack,因此進入close_wait狀態。但如果伺服器端不執行close(),就不能由close_wait遷移到last_ack,則系統中會存在很多close_wait狀態的連線。此時,可能是系統忙於處理讀、寫操作,而未將已收到fin的連線,進行close。此時,recv/read已收到fin的連線socket,會返回0。

16、資料庫3正規化

1

、第一正規化(

1nf)

在任何乙個關聯式資料庫中,第一正規化(

1nf)是對關係模式的基本要求,不滿足第一正規化(

1nf)的資料庫就不是關聯式資料庫。所謂第一正規化(

1nf)是指資料庫表的每一列都是不可分割的基本資料項,同一列中不能有多個值,即實體中的某個屬性不能有多個值或者不能有重複的屬性。如果出現重複的屬性,就可能需要定義乙個新的實體,新的實體由重複的屬性構成,新實體與原實體之間為一對多關係。在第一正規化(

1nf)中表的每一行只包含乙個例項的資訊。簡而言之,第一正規化就是無重複的列

2

、第二正規化(

2nf)

第二正規化(

2nf)是在第一正規化(

1nf)的基礎上建立起來的,即滿足第二正規化(

2nf)必須先滿足第一正規化(

1nf)。第二正規化(

2nf)要求資料庫表中的每個例項或行必須可以被唯一地區分。為實現區分通常需要為表加上乙個列,以儲存各個例項的唯一標識。第二正規化(

2nf)要求實體的屬性完全依賴於主關鍵字。所謂完全依賴是指不能存在僅依賴主關鍵字一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成乙個新的實體,新實體與原實體之間是一對多的關係。為實現區分通常需要為表加上乙個列,以儲存各個例項的唯一標識。

第二正規化就是非主屬性非部分依賴於主關鍵字。
3

、第三正規化(

3nf)

滿足第三正規化(

3nf)必須先滿足第二正規化(

2nf)。簡而言之,第三正規化(

3nf)要求乙個資料庫表中不包含已在其它表中已包含的非主關鍵字資訊。例如,存在乙個部門資訊表,其中每個部門有部門編號(

dept_id

)、部門名稱、部門簡介等資訊。那麼在圖

3-2的員工資訊表中列出部門編號後就不能再將部門名稱、部門簡介等與部門有關的資訊再加入員工資訊表中。如果不存在部門資訊表,則根據第三正規化(

3nf)也應該構建它,否則就會有大量的資料冗餘。簡而言之,第三正規化就是屬性不依賴於其它非主屬性。

面試總結 1

1.1 鍊錶翻轉和多路歸併 1.1 兩個棧實現乙個佇列,兩個佇列實現乙個棧 1.2 兩個字串之間的距離的衡量 1.3 最長回文子串 1.4 二叉樹的後序遍歷迭代形式 1.5 二叉樹的映象 1.6 huffman的編碼 1.7 無序陣列找第k大數 2 b 樹和紅黑樹的區別 3 排序的總結 4 概率和排...

java面試總結1

一.假設有乙個池塘,裡面有無窮多的水.現有2個空水壺,容積分別為5公升和6公升.問題是如何只用這2個水壺從池塘裡取得3公升的水?6公升的叫做a,5公升的叫做b 1 裝a滿,把a倒入b滿,a的剩下1公升 2 b倒空,把a的1公升倒入b,這時候a和b分別為0和1 3 再裝a滿,倒入b讓它滿,由於b的可裝...

spark面試總結1

粗粒度模式 coarse grained mode 每個應用程式的執行環境由乙個dirver和若干個executor組成,其中,每個executor占用若干資源,內部可執行多個task 對應多少個 slot 應用程式的各個任務正式執行之前,需要將執行環境中的資源全部申請好,且執行過程中要一直占用這些...