C 經典面試題

2021-06-21 07:37:13 字數 1339 閱讀 8076

1.輸入乙個字串,將其逆序後輸出。(使用c++,不建議用偽碼)

#include using namespace std;

void main()

a:p = malloc(1024); 應該寫成: p = (char *) malloc(1024);

沒有釋放p的空間,造成記憶體洩漏。

8.下面的**有什麼問題?並請給出正確的寫法。

void dosomething(char* p)}a:

sscanf(p, "%s%d", str, n); 這句該寫成: sscanf(p, "%s%d", str, &n);

9. strcpy拷貝的結束標誌是查詢字串中的\0 因此如果字串中沒有遇到\0的話 會一直複製.

下面**有什麼問題?

void test3(char* str1) }

==陣列越界

12.下面**有什麼問題?

#define max_srm 256

dsn get_srm_no()

系統會初始化static int變數為0,但該值會一直儲存,所謂的不可重入...

14.寫出執行結果:

union v

x; unsigned char c;

} v;

v.c = 100;

printf("%d", v.x.s3);

結果 3

15.用c++寫個程式,如何判斷乙個作業系統是16位還是32位的?不能用sizeof()函式

a1:16位的系統下,

int i = 65536;17.在不用第三方引數的情況下,交換兩個引數的值

#include void main()

方法二:

i^=j;

j^=i;

i^=j;

方法三:

// 用加減實現,而且不會溢位

a = a+b-(b=a)

cout << i; // 輸出0;int i = 65535;cout << i; // 輸出-1;32位的系統下,int i = 65536;cout << i; // 輸出65536;int i = 65535;cout << i; // 輸出65535;a2:int a = ~0;if( a>65536 ) { cout<<"32 bit"<

c 經典面試題

1 標頭檔案中的 ifndef define endif 幹什麼用?答 防止該標頭檔案被重複引用。2 include 和 include filename.h 有什麼區別?答 對於 include 編譯器從標準庫路徑開始搜尋 filename.h 對於 include filename.h 編譯器從...

C 經典面試題

c 知識總結目錄索引 二 哪些函式不能宣告成虛函式 三 為什麼析構函式和建構函式內不能呼叫虛函式 四 為什麼析構函式最好宣告成虛函式 五 實現乙個不能被繼承的類 六 實現乙個類定義出來的物件都在堆上面 七 實現乙個類定義出來的物件都在棧上面 八 實現乙個類,定義出的物件不能在堆上 九 用c語言實現繼...

C 經典面試題

最近看一些面試題,覺得如果自己被問到了,並不能很利落的回答出來。一是從來沒有這個意識,二是沒有認真的梳理下。11.引用與指標有什麼區別?參 1 引用必須被初始化,指標不必。2 引用初始化以後不能被改變,指標可以改變所指的物件。3 不存在指向空值的引用,但是存在指向空值的指標。可以參考下 在 5 題中...