问题 单项选择题

有以下程序:#definef(x)(x*x)main(){inti1,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

答案

参考答案:C

解析:对带参数的宏的展开只是将语句中宏名后面括号内的实参字符串代替#define 命令行中的形参。本题 中“i1=f(8)/f(4)”用“#define f(x) (x*x)”代替得 i1=(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。

多项选择题
多项选择题