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

admin2009-02-15  19

问题 有以下程序:    #define f(x)(x*x)    main()    {  int  i1,i2;       il=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

答案C

解析 对带参数的宏的展开只是将语句中宏名后面括号内的实参字符串代替#define命令行中的形参。本题中“il=f(8)/f(4)”用“#define  f(x)  (x*x)”代替得il=(8*8)/(4*4),结果为4:  “i2=f(4+4)/f(2+2)”用“#define  f(x)  (x*x)”代替得i2= (4+4*4+4)/(2+2*2+2),求得结果为3。故本题输出的值为4,3。
转载请注明原文地址:https://kaotiyun.com/show/0qXp777K
0

最新回复(0)