以下程序的输出结果是( )。 #define f(x)x*x main( ) { int a=8,b=4,c; c=f(a)/f(b); printf(“%d\n”,c); }

admin2014-10-20  6

问题 以下程序的输出结果是(    )。
#define f(x)x*x
main(    )
{
int a=8,b=4,c;
c=f(a)/f(b);
printf(“%d\n”,c);
}

选项 A、4
B、8
C、64
D、16

答案C

解析 此题程序中定义了一个带参数的宏名为f,当程序中遇到此宏名进行展开时,则应使用定义时的字符串x*x进行替换。替换的原则是:遇到形参x,则以实参a代替,其他字符不变。所以,f(x)经宏展开后成为字符串f(x)*f(x)。整个赋值语句的形式变为c=f(a)*f(a)/f(b)*f(b),则c=8*8/4*4=64。
转载请注明原文地址:https://jikaoti.com/ti/tw9fFFFM
0

最新回复(0)