有以下程序 #define f(x) (x’x) main ( ) { int i1, i2; i1=f (8) /f(4); i2=f (4+4) /f (2+2); printf("%d,

admin2009-01-15  23

问题 有以下程序   #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);    }     程序运行后的输出结果是

选项 A、64,28
B、4,4
C、4,3
D、64,64

答案4

解析 本题考查的是带参数的宏。宏替换与函数调用不同,前者是字面上的,在编译期间完成,后者是内容上的,在运行期间才进行。题目中第1条要替换的语句i1=(8)/f(4);展开后是i1=(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。
转载请注明原文地址:https://jikaoti.com/ti/ssS0FFFM
0

最新回复(0)