有如下程序 #include #define D(x) 4*x+1 main() { int i = 2, j = 4; printf("%d\n", D(i+j)); } 程序运行后的输出结果是( )。

admin2020-05-19  24

问题 有如下程序
#include
#define D(x) 4*x+1
main()
{
int i = 2, j = 4;
printf("%d\n", D(i+j));
}

程序运行后的输出结果是( )。

选项 A、8,32
B、16,32
C、8,16
D、16,16

答案A

解析 宏替换是使用宏名代替一个字符串,是一种机械的、简单的置换,直接在替换处展开而不做语法检测,所以FNA(FNB(a))=FNB(a)*FNB(a)=a+a*a+a,结果为8,语句FNB(FNA(b))=FNA(b)+FNA(b)=b*b+b*b,结果为32,所以答案选A。
转载请注明原文地址:https://kaotiyun.com/show/dcCp777K
0

最新回复(0)