问题 单项选择题

有以下程序: #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。

单项选择题
单项选择题