问题
单项选择题
下面的程序输出结果是______。 #define r 16 #if r==16 void p(int a) { printf("%x",a) ; } #else void p(int a) { printf("%d",a) ; } #endif main() { p(32); }
A.32
B.20
C.编译时错误
D.运行时错误
答案
参考答案:B
解析:[评析] “#define r 16”的作用是指定用标识符r来代替16,因此程序编译时只编译#if部分,故程序运行时,打印输出十六进制的32,即20。