编程题求解,谢谢
3个回答
展开全部
第一道题
#define 是完全替换,而不是计算值
即把SUB(a+b)替换为(a+b)-(a+b)
所以d=SUB(a+b)*c 替换后为 d=(a+b)-(a+b)*c
先算乘法后算加减,有括号先算括号,
显然 d=(2+3)-(2+3)*5=5-5*5=-20
第二道题
同样的原理
i1=f(8)/f(4)=(8*8)/(4*4)=4这个没问题
但是后边的f(4+4)会变成 (4+4*4+4)
依然是不计算值仅仅替换掉参数
即 i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3
这样子能看懂了吧
望采纳
#define 是完全替换,而不是计算值
即把SUB(a+b)替换为(a+b)-(a+b)
所以d=SUB(a+b)*c 替换后为 d=(a+b)-(a+b)*c
先算乘法后算加减,有括号先算括号,
显然 d=(2+3)-(2+3)*5=5-5*5=-20
第二道题
同样的原理
i1=f(8)/f(4)=(8*8)/(4*4)=4这个没问题
但是后边的f(4+4)会变成 (4+4*4+4)
依然是不计算值仅仅替换掉参数
即 i2=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3
这样子能看懂了吧
望采纳
展开全部
d=SUB(a+b)*c;替换后为d=(a+b)-(a+b)*c;则d=(2+3)-(2+3)*5=5-25=-20
i1=f(8)/f(4);替换后为i1=(8*8)/(4*4);得到i1=64/16=4
i2=f(4+4)/f(2+2);替换后为i2=(4+4*4+4)/(2+2*2+2);得到i2=(4+16+4)/(2+4+2)=24/8=3
i1=f(8)/f(4);替换后为i1=(8*8)/(4*4);得到i1=64/16=4
i2=f(4+4)/f(2+2);替换后为i2=(4+4*4+4)/(2+2*2+2);得到i2=(4+16+4)/(2+4+2)=24/8=3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,(2+3)-(2+3)*5=―20
2,(4+4*4+4)/(2+2*2+2)=3
2,(4+4*4+4)/(2+2*2+2)=3
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询