单选题 有以下程序:
#define f(X)(X*X)
main()
{
int i1,i2;
i1=f(8)/f(4);
i2=f(4+4)/f(2+2);
printf(“%d,%d/n”,i1,i2);
}
程序运行后的输出结果是 ____
【正确答案】 C
【答案解析】[解析] 本题考查的是带参数的宏。宏替换与函数调用不同,前者是字面上的,在编译期间完成,后者是内容上的,在运行期间才进行。题目中第1条要替换的语句i1=f(8)*f(4);展开后是i1=(8*8)/(4*4);,结果使i1=4。而第2条语句i2=f(4+4)/f(2+2);展开后为i2=(4+4*4+4)/(2+2*2+2);,结果使i2=24/8=3。故应该选择C)。