以下程序运行后的输出结果是______。 #define S(x) 4*X*x+1 main() { int i=6,j=8; printf("%d\n",S(i+i)); }

admin2013-02-23  41

问题 以下程序运行后的输出结果是______。
   #define  S(x)  4*X*x+1
   main()
   {  int  i=6,j=8;
   printf("%d\n",S(i+i));
     }

选项

答案81

解析 ,解此类题一定要注意宏替换与函数调用的区别。宏替换是字面上的,在编译期间就完成了,它只是将实参字符串替换蚌宏中形参出现的位置,得到的新串来替换掉宏调用.。而函数是将实参先计算好,然后将值赋给形参,再执行函数体,整个过程在程序运行时发生。所以本题的宏调用s(1+1)将被替换成表达式4*i+j*i+j+1等于4*6+8*6+8+1=24+48+8+1=81。所以本题输出81。
转载请注明原文地址:https://kaotiyun.com/show/57Pp777K
0

最新回复(0)