乙份C 面試題(個別有答案)

2021-05-25 12:23:24 字數 3025 閱讀 2958

單選

1. win32下的執行緒的哪乙個優先順序最高?()

a. thread_priority_highest                 b. thread_priority_idle

c. thread_priority_time_critical        d. thread_priority_above_normal

2. 下面四個選項中,哪乙個不是winmain函式的引數?()

a. hinstance                                b. int

c. lpstr                                        d. wparam

3. vc++的編譯器中,運算子new底層的實現是什麼?

a. virtualalloc()                            b. heapalloc()

c. globalalloc()                            d. allocateuserphysicalpages()

多選 1. vector::iterator過載了下面哪些運算子?()

a. ++                                    b. >>

c. *(前置)                             d. ==

2. createfile()的功能有哪幾個?()

a. 開啟檔案                                b. 建立新檔案

c. 檔案改名                                d. 刪除檔案

3. 下面哪些是控制代碼(handle)?()

a. hinstance                                b. hwnd

c. hdc                                    d. hfont

判斷題

1. 乙個類必須要有乙個不帶引數的建構函式。

2. 你不能寫乙個虛的建構函式。

3. 類裡面所有的函式都是純虛函式時才是純虛類。

4. const成員函式對於任何本類的資料成員都不能進行寫操作。

5. 函式中帶預設值的引數必須位於不帶預設值的引數之後。

6. char*p= "test"; p[0] = 'r';

7. cout << "test";

8. stl::list不支援隨機訪問迭代器。

9. stl::vector的效率比stl::list高。

10. vc和vc++是一回事,而vc++是一種比c++更難一些的語言。

問答題

1. #include "filename.h"和#inlcude的區別?

2. c++函式中值的傳遞方式有哪幾種?

3. 實現雙向鍊錶刪除乙個節點p,在節點p後插入乙個節點,寫出這兩個函式;

4. c++裡面是不是所有的動作都是main()引起的?如果不是,請舉例。

5. 請問c++的類和c裡面的struct有什麼區別?

6. 請講一講析構函式和虛函式的用法和作用?

7. 全域性變數和區域性變數有什麼區別?是怎麼實現的?作業系統和編譯器是怎麼知道的?

8. 多型overload和override的區別。

9. 完成以下程式

10. 解釋堆和棧的區別。

11. 非c++內建型別a和b,在哪幾種情況下b能隱式轉化為a?[c++中等]

12. c++中的空類,預設產生哪些類成員函式?[c++易]

13. 寫乙個函式,完成記憶體之間的拷貝。[考慮問題是否全面]

14. 建構函式和析構函式是否可以被過載,為什麼?

1. 程序和執行緒的區別

程序是系統進行資源分配和排程的單位;執行緒是

cpu 排程和分派的單位,乙個程序可以有多個執行緒,這些執行緒共享這個程序的資源。

2. 成員變數和成員函式前加

static

的作用它們被稱為常成員變數和常成員函式,又稱為類成員變數和類成員函式。分別用來反映類的狀態。比如類成員變數可以用來統計類例項的數量,類成員函式負責這種統計的動作。

3. malloc

和new

的區別new

是c++

的關鍵字。

malloc

在分配記憶體時必須按給出的位元組分配,

new 可以按照物件的大小自動分配,並且能呼叫建構函式。可以說

new 是物件的物件,而

malloc

不是。本質上

new 分配記憶體時,還會在實際記憶體塊的前後加上附加資訊,所以

new 所使用的記憶體大小比

malloc

多。 4.

堆和棧的區別

棧:由編譯器自動分配、釋放。在函式體中定義的變數通常在棧上。

堆:一般由程式設計師分配釋放。用

new 、

malloc

等分配記憶體函式分配得到的就是在堆上。

棧是機器系統提供的資料結構,而堆則是

c/c++

函式庫提供的。棧是系統提供的功能,特點是快速高效,缺點是有限制,資料不靈活;而堆是函式庫提供的功能,特點是靈活方便,資料適應面廣泛,但是效率有一定降低。棧是系統資料結構,對於程序

/ 執行緒是唯一的;堆是函式庫內部資料結構,不一定唯一。不同堆分配的記憶體無法互相操作。棧空間分靜態分配和動態分配兩種。靜態分配是編譯器完成的,比如自動變數

(auto)

的分配。動態分配由

alloca

函式完成。棧的動態分配無需釋放

( 是自動的

) ,也就沒有釋放函式。為可移植的程式起見,棧的動態分配操作是不被鼓勵的!堆空間的分配總是動態的,雖然程式結束時所有的資料空間都會被釋放回系統,但是精確的申請記憶體

/ 釋放記憶體匹配是良好程式的基本要素。

5. 不呼叫

c++/c

的字串庫函式,請編寫函式

strcpy

乙份C 面試題(個別有答案)

單選 1.win32下的執行緒的哪乙個優先順序最高?a.thread priority highest b.thread priority idle c.thread priority time critical d.thread priority above normal 2.下面四個選項中,哪乙...

乙份Hive面試題及答案

1 某檔案的許可權為 d rw r r 用數值形式表示該許可權,則該八進位制數為 該檔案屬性是 0644 目錄 2 結束後台程序的命令是 kill 9 程序號 3 為指令碼程式指定執行許可權的命令及引數是 chmod x 指令碼 4 linux檔案許可權一共10位長度,分成四段,第三段表示的內容是 ...

乙份不錯的php面試題 附答案 (筆試題)

一 基礎題 1.寫出如下程式的輸出結果 str1 null str2 false echo str1 str2 相等 不相等 str3 str4 0 echo str3 str4 相等 不相等 str5 0 str6 0 echo str5 str6 相等 不相等 2.寫出如下程式的輸出結果 a1 ...