有以下程序 #include #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", i

admin2019-06-09  25

问题 有以下程序
#include
#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、11 7
B、12 12
C、11 11
D、12 7

答案A

解析 宏替换只是使用宏名代替一个字符串,是一种机械的置换,所以表达式i1=f(2)=(2*M)=(2*N+1)=(2*5+1)=11,i2=f(1+1)=(1+1*M)=(1+1*N+1)=(1+1*5+1)=7,答案选A。
转载请注明原文地址:https://jikaoti.com/ti/Hff0FFFM
0

最新回复(0)