A-A+

有以下程序: #define f(x)(x*x)main { int i1 i2; i1 =

2022-08-06 00:09:45 问答库 阅读 173 次

问题详情

有以下程序: #define f(x)(x*x)main { int i1,i2; i1 = f(8)/(4);i2 = f(4+4)/f(2+2); printf("%d,%dn",i1,i2); } 程序运行后的输出结果是()。
A.64,28
B.4,4
C.4,3
D.64,64请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:C
本题考套的是宏定义。对带参数的宏的展开只是将语句中宏名后面括号内的实参字符串代替#define命令行中的形参。本题中“i1=f(8)/f(4)”用"#definef(x)(x*x)"代替得i1=(8*8)/(4*4),结果为4;"i2=f(4+4)/f(2+2)"用“#definef(x)(x*x)”代替得i2=(4+4+4+4)/(2+2+2+2),求得结果为3。故本题输出的值为4,3

考点:程序