有以下程序: #include <stdio.h> #define N 5 #define M N+1 #define f(x) (x*M) main() { int i1,i2; i1

admin2009-01-15  26

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

答案2

解析 题目中第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。
转载请注明原文地址:https://kaotiyun.com/show/yQXp777K
0

最新回复(0)