看不懂的c语言题目,请高手教我!

2025-02-22 22:31:50
推荐回答(6个)
回答1:

输出结果为:
20
因为已有定义#define r 16
所以,
编译如下的p函数:
void p(int a)
{
printf("%x",a);
}
即是以16进制输出a的值。
现调用p(32);就是要输出十进制32,也就是16进制的20

回答2:

结果是20.
#define r 16 宏定义了r 为16
#if r ==16 如果r等于16
void p(int a)
{
printf("%x",a); 那么函数p就是以16进制输出整数a
}
#else
void p(int a)
{
printf("%d",a); 否则函数p就是以10进制输出整数a
}
#endif

因为r等于16,所以main函数调用p(32)是以16进制输出32,即20

回答3:

是 20. %X是十六进制表示。执行这段
void p(int a)
{
printf("%x",a);
}
32的十六进制是20

回答4:

#define r 16//定义r=16
#ifr==16//如果r=16
void p(int a)
{
printf("%x",a);//输出
}
#else//否则
void p(int a)
{
printf("%d",a);//输出
}
#endif

回答5:

是条件编译。很适合调试的时候这么写。
现在已经定义r为16(#define r 16),那么编译器会学则上面那个函数 即:
void p(int a)
{
printf("%x",a);
}

%x,%d我倒忘了 是十进制和16进制的选择?

如果#define r 15,那么就编译下面那段了。

回答6:

嘻嘻