有趣的C語言問題 測試你對C語言的熟悉程度

2021-05-04 17:15:54 字數 2284 閱讀 9944

下面這個程式輸出什麼?

enum ;

int main()

while(false);

return 0;

}

你相信麼?下面這個程式輸出的兩行東西不一樣!

#include

#define f(a,b) a##b

#define g(a)   #a

#define h(a) g(a)

int main()

下面的程式看似完全正確。你能看出它為什麼通不過編譯嗎?

看出問題前不要去試著編譯,不然你會後悔你沒看出來這個低階的語法錯誤。

#include

void os_solaris_print()

void os_windows_print()

void os_hp-ux_print()

int main()

return 0;

}

為什麼下面這個程式的輸出不是none?看你多久才能看出來。

#include

int main()

return 0;

}

下面這個程式輸出什麼?

#include

int main()

下面這個程式輸出什麼?

#include

int main()

return 0;

}

下面這個程式輸出什麼?

#include

int main()

下面這個程式輸出什麼?

#include

#include

#define sizeof(arr) (sizeof(arr)/sizeof(arr[0]))

#define printint(expr) printf("%s:%d/n",#expr,(expr))

int main()

;int i;

for(i=0;i

int main()

下面這個程式輸出什麼?

#include

int main()

為什麼下面這個程式的輸出不是10?我故意取消了語法高亮:)

#include

#define printint(expr) printf("%s : %d/n",#expr,(expr))

int main()

下面這個程式輸出什麼?

#include

int main()

下面這段**是否合法?

#include

#define printint(expr) printf("%s : %d/n",#expr,(expr))

int max(int x, int y)

int main()

這是什麼意思?有什麼潛在的問題?

#define swap(a,b) ((a) ^= (b) ^= (a) ^= (b))

這是什麼意思?

#define roundup(x,n) ((x+n-1)&(~(n-1)))

一些c語言的教材上會給出乙個很經典的巨集定義

#define isupper(c) (((c) >= 'a') && ((c) <= 'z'))

但這種巨集定義的方法存在不足之處,一旦遇到下面這種情況就出問題了:

char c;

/* ... */

if(isupper(c++))

為了避免這種問題,應該怎樣來定義isupper?

怎樣用printf函式列印"i can print %"?別忘了百分號是用於格式化輸出的。

不用任何比較運算子,寫乙個程式找出三個數中的最小數。

不用+號,(用位運算)實現加法運算。

最有趣的乙個問題:不用分號,寫乙個hello world程式。

這是有可能的,而且辦法非常簡單,只用到了最基本的語法規則。

實在想不出來再看答案吧(白色的):

#include

int main()

}

有趣的C語言測試題

1.gets 函式 問 請找出下面 裡的問題 include int main void 2.strcpy 函式 問 下面是乙個簡單的密碼保護功能,你能在不知道密碼的情況下將其破解嗎?include int main int argc,char argv if flag else return 0 ...

12個有趣的C語言問題

摘要 12個c語言面試題,涉及指標 程序 運算 結構體 函式 記憶體,看看你能做出幾個!1.gets 函式 問 請找出下面 裡的問題 include int main void 答 上面 裡的問題在於函式gets 的使用,這個函式從stdin接收乙個字串而不檢查它所複製的快取的容積,這可能會導致快取...

有趣的C語言 指標

指標,也就是用來儲存位址的變數。scanf 函式就是使用位址作為引數。一元運算子 可以取得變數的儲存位址。假設a是乙個變數,那麼 a就是該變數的位址,乙個變數的位址可以被看做是該變數在記憶體中的位置。間接運算子 ptr bah 這時就可以使用間接運算子 來獲取bah中存放的數值 val ptr 這兩...