问题
单项选择题
阅读下列程序段,程序的输出结果为( )。
#include <stdio.h>
#define M(X, Y) (X) *(Y)
#define N(X, Y) (X)/(Y)
main()
int a=5, b=6, c=8, k;
k=N(M(a, b), c);
printf("%d\n", k);
A) 3
B) 5
C) 6
D) 8
答案
参考答案:A
解析: 带参数的宏定义命令行形式如下:#define宏名(形参表)替换文本。首先进行M的宏替换,之后再进行N的宏替换,替换后的表达式为((a)*(b))/(c)。