有下列程序: #include <stdio.h> #define N 5 #define M N+1 #define f(x) (x*M) main( ) { int i1,i2; i1=f(2); i2=f(1+1); printf("%d %d\n

admin2020-07-28  51

问题 有下列程序:
#include <stdio.h>
#define N 5
#define M N+1
#define f(x) (x*M)
main( )
{ int i1,i2;
i1=f(2);
i2=f(1+1);
printf("%d  %d\n", i1,i2);
}
程序的运行结果是

选项 A、12 7
B、12 12
C、11 11
D、11 7

答案D

解析 在本题中,定义了3个宏定义语句,分别是:#define N 5、#define M N+5和#define f(x) (x*M),所以根据C语言的宏替换规则,我们可知,f(2)=2*N+1=2*5+1=11,f(1+1)=1+1*N+1=1+1*5+1=7。
转载请注明原文地址:https://kaotiyun.com/show/2m3p777K
0

最新回复(0)