下面這個程式輸出什麼?
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 這兩...