问题
单项选择题
有以下程序: #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 12
B.11 7
C.11 11
D.12 7
答案
参考答案:B
解析: 题目中第1条要替换的语句i1=f(2);展开后是i1=(2*M);再展开为i1=(2*N+1);最后展开为i1=(2*5/1),结果使i1=11。而第2条语句i2=f(1+1);展开后为i2=(1+1*M);再展开为i2= (1+1*N+1);最后展开为i2=(1+1*5+1),结果使i2=7。故应该选择B。