#define c语言预处理命令2以下程序的运行结果是 .#define MAX(A,B) (A)>(B)?(A):(B)#define PRINT(Y) printf(“Y=%d\t”,Y)main(){int a=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}A)Y=3 B)存在语法错误 C)Y=7 D)Y=0请给我解释

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/26 13:24:06
#definec语言预处理命令2以下程序的运行结果是.#defineMAX(A,B)(A)>(B)?(A):(B)#definePRINT(Y)printf(“Y=%d\t”,Y)main(){int

#define c语言预处理命令2以下程序的运行结果是 .#define MAX(A,B) (A)>(B)?(A):(B)#define PRINT(Y) printf(“Y=%d\t”,Y)main(){int a=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}A)Y=3 B)存在语法错误 C)Y=7 D)Y=0请给我解释
#define c语言预处理命令2
以下程序的运行结果是 .
#define MAX(A,B) (A)>(B)?(A):(B)
#define PRINT(Y) printf(“Y=%d\t”,Y)
main()
{
int a=1,b=2,c=3,d=4,t;
t=MAX(a+b,c+d);
PRINT(t);
}
A)Y=3 B)存在语法错误 C)Y=7 D)Y=0
请给我解释下PRINT(t);在宏展开是怎么表示的,

#define c语言预处理命令2以下程序的运行结果是 .#define MAX(A,B) (A)>(B)?(A):(B)#define PRINT(Y) printf(“Y=%d\t”,Y)main(){int a=1,b=2,c=3,d=4,t;t=MAX(a+b,c+d);PRINT(t);}A)Y=3 B)存在语法错误 C)Y=7 D)Y=0请给我解释
宠处理的时候,一定要记住的是,直接代进去,任何多余的动作都不能有
还有记住一点的是在printf""双括号里的是不能替代的话,所以这里的Y是输出形式.而不是字符常量Y的替代.这是一种特殊规定.希望楼主记住
PRINT(t)=printf("Y=%d\t",t);所以结果必将是Y=(一个值)
又因为
MAX(a+b,c+d)
(a+b)>(c+d)?(a+b):(c+d)
结果是7
所以
结果是Y=7