C C 程式設計 一些面試題

2021-08-22 06:13:37 字數 3490 閱讀 3151

1、如何判斷程式是c程式還是cpp程式

根據巨集__cplusplus

#include using namespace std;

void main()

2、c++和c的不同

3、引用和指標的區別:

4、int id[sizeof(int)];

const int a = 5;    int b[a];

int c = 5; const int a = a;    int b[a];

5、靜態全域性變數的作用域是本檔案內部。static int a;

6、c++函式中值的傳遞方式有幾種?

7、對於乙個頻繁使用的短小函式,在c語言中應用巨集定義實現,在c++中用inline函式實現。

8、c++中的virtual和inline的含義分別是什麼?

9、vc中,編譯工具條內的debug和release選項是什麼含義

10、函式assert用法

11、const和#define比較,const有什麼優點

12、有了malloc/free為什麼還有new/delete

13、如果在申請動態記憶體時找不到足夠大的記憶體塊,malloc和new將返回null指標,宣告記憶體申請失敗。你是怎麼處理記憶體耗盡的

14、c++是不是型別安全語言。

15、用c++寫個程式,判斷乙個os是16為的還是32位還是64位。

void main()

16、多型類中的虛函式表是編譯時建立還是執行時建立

17、轉移字元的判斷

void func(int *arr)

void main()

; func(a);

system("pause");

}

19、變數的指標含義是變數的位址

20、記憶體的分配方式有幾種?

21、float a, b, c,問等式(a+b)+c == (b+a)+c,和(a+b)+c == (a+c)+b是否成立

22、全域性變數和區域性變數有什麼區別?是怎麼實現的?os和編譯器是怎麼知道的?

23、heap和stack的差別

(1)堆疊空間分配區別

(2)堆疊快取方式區別

(2)資料結構的堆和棧:

24、explicit和protected是什麼意思

(1)explicit

#include using namespace std;

class string ;

string(const char *p) {};

};void main()

(2)protected

25、重複多次fclose乙個開啟過一次的file *fp指標會有什麼結果,並請解釋。

26、為什麼陣列名作為引數,會改變陣列的內容,而其他型別如int卻不會改變變數的值

27、如果不使用常量,直接在程式中填寫數字或者字串,將會有什麼麻煩

28、為什麼要使用堆

29、const關鍵字由哪些作用

30、是不是父類寫了乙個virtual函式,如果子類覆蓋它的函式不加virtual,也能實現動態

31、物件導向的3個基本特徵

(1)封裝:就是對資料進行許可權控制

(2)繼承:[**重用]

(3)多型[乙個介面多個操作]

42、過載、重寫、重定義的區別

43、多型的作用

44、當乙個類a中沒有宣告任何成員變數與成員函式,這是sizeof(a)?,如果不是0,編譯器為什麼沒有讓它為0

45、如class a中定義並實現了虛函式int func(),b中也實現了int func.呼叫情況&如果func不是虛函式?

(1)是虛函式:[指標或者引用實現多型]

#define _crt_srcure_no_warnings

#include #include using namespace std;

class aa

};class bb:public aa

};void main()

(2)非虛函式

#define _crt_srcure_no_warnings

#include #include using namespace std;

class aa

};class bb:public aa

};void main()

46、c++裡面的是不是所有的動作都是main函式引起的?如果不是,請舉例

#define _crt_srcure_no_warnings

#include #include using namespace std;

class aa ;

~aa() ;

};aa a; //列印aa create:全域性變數優先於main函式,呼叫了aa的建構函式

void main()

47、內聯函式在編譯時要做編譯檢查。巨集定義不,只是替換

48、析構函式和虛函式的用法和作用

49、new與malloc的區別

50、結構體中不可以定義虛函式。

51、c++程式中:

52、不可以被宣告為虛函式的有

53、c++的模板

54、在c++的乙個類中宣告乙個static成員變數有沒有用?

55、c++中為什麼要用模板類

56、函式模板和列模板的區別?

57、在類中如何使用const

58、c++中所有的運算子都能夠過載嗎?

59、基類的析構函式不是虛函式,會帶來什麼問題

60、main函式指向之前,還會執行什麼**?

61、有兩個變數a和b,不允許使用條件判斷符,找出最大值。

62、如何列印出當前原始檔的檔名和當前行號

63、~((int)0)  輸出-1

64、結果是12

int i = 5, j = 7;

cout << (i++ + j) << endl;   //++的優先順序大於+

65、寫乙個能夠做左值的函式

int &max(int &x, int &y)

void main()

66、函式返回乙個區域性變數

int add_n(int n)

void main()

67、

void main()

; int i = 3;

cout << *(array+i) << endl; //4

system("pause");

}

68、

一些面試題

q 您在什麼情況下會用到虛方法?它與介面有什麼不同?a 當在繼承類中想重寫某一方法時會用到虛方法 虛方法是類的成員函式,介面相當於抽象類.q override與過載有什麼區別?a override 就是覆蓋的意思,覆蓋父類的同名方法,而過載則是通過參數列來呼叫方法.q 值型別與引用型別有什麼區別?a...

一些面試題

1.如何檢視埠8080的程序 netstat anp grep 8080 lsof i 8080 2.在 tmp目錄下建立test.txt檔案,內容為 hello,world 用乙個命令寫出來。echo hello,world tmp test.txt 3.敘述下列服務的預設埠號。ftp 20,21...

一些面試題

1.給你乙個長度為n的鍊錶。n很大,但你不知道n有多大。你的任務是從這n個元素中隨機取出k個元素。你只能遍歷這個鍊錶一次。你的演算法必須保證取出的元素恰好有k個,且它們是完全隨機的 出現概率均等 解 先選中前k個,從第k 1個元素到最後乙個元素為止,以k i i k 1,k 2,n 的概率選中第i個...