若#define f(x) x*x的问题!

#define f(x)x*x
main()
{
int a=6,b=5,c;
c=f(a)/f(b);
printf("%d\n",c);
}

为什么输出的是36??高手帮满!详细解答下!

c=f(a)/f(b);这句被define替换后:
c = a * a / b * b; 明白?
把#define f(x)x*x改为:
#define f(x) (x*x)
温馨提示:内容为网友见解,仅供参考
无其他回答

帮忙答题:若#define f(x) x*x,则f(1+2)=___.
所以f(x)在r上为增函数 又因为f(-x)=-f(x),故f(x)为奇函数 故不等式化为:f(2x+1)>f(x^2-2)得:2x+1>x^2-2 即x^2-2x-3<0 (x-3)(x+1)<0 -1 评论 0 0 加载更多

关于#define f(x) x*x一道题的理解
我说这是坏脑子的题目,f(x)=x*x 然后告诉学生们,f的变量是不能识别括号的,这是设计者的愚蠢,还给别人学!事实上我们就不 这么用,明知是个坑还去跳,那就不仅仅是设计者的愚蠢了?是盲目跟风的无知。正常的思路应该是:((4+4)*(4+4))\/((2+2)*(2+2))=4 C++编译器会不会这么...

#define f(x) x*x void main() { int i; i=f(4+4)\/f(2+2); printf...
【答案】:i=f(4+4)\/f(2+2) \/\/f(4+4)被替换成4+4*4+4,f(2+2)同理 =4+4*4+4\/2+2*2+2 =4+16+2+4+2 =28

#define f(x) x*x main( ) { int i; i=f(4+4)\/f(2+2); printf(“%d...
【问题解答】一、由定义可以看出,宏的概念是替换。1、那么也就是f(4+4)代表着x是4+4,x*x替换一下后就变成了4+4*4+4 2、同理f(2+2);替换为了2+2*2+2 3、最后f(4+4)\/f(2+2);就是4+4*4+4\/2+2*2+2 并且由于其中的除号"\/"优先级比+号高,所以得出结果是28 二、printf...

#define f(x) x*x main () { int a=6,b=2,c; c=f(a)\/f(b): printf...
答案36;步骤:c=f(a)\/f(b)=a*a\/b*b=6*6\/2*2=36 修改后代码 include<stdio.h> define f(x) x*x void main (){ int a=6,b=2,c;c=f(a)\/f(b);printf("%d\\n",c);}

c语言里#define f(x) (x*x),“*”什么意思?
define f(x) (x*x)就是定义了一个宏f(x),遇到此类的,在编译时,C系统就用(x*x)来替换。例如,f(a)就用 (a*a) 来替换;f(u+v)就用 (u+v*u+v)来替换。为了达到期望的效果,可以写为:f((u+v)),这样就用((u+v)*(u+v))来替换,就能达到原来的目标了。当然,为了方便,...

#define f(x) x*x main () { int a=6,b=2,c; c=f(a)\/f(b): printf...
答案36;步骤:c=f(a)\/f(b)=a*a\/b*b=6*6\/2*2=36 修改后代码 include<stdio.h> define f(x) x*x void main (){ int a=6,b=2,c;c=f(a)\/f(b);printf("%d\\n",c);}

有以下程序 #define f(x) x*x main( ) { int i; i=f(4+4)\/f(2+2...
答案是:A 这是因为宏定义只是简单的数据带入而已,不同于函数 f(4+4)\/f(2+2)=4+4*4+4\/2+2*2+2=28

有宏定义#define f(x) x*x,则表达式f(2+2)\/f(1+1)的值是什么,求
把所有的替换即可 f(x) 是x*x f(2+2)就是 2+2*2+2 f(1+1)就是1+1*1+1 所以结果是 (2+2*2+2)\/(1+1*1+1)=8\/3=2

若有定义#define f(x) x*x在程序中int a=1,b=2;s=f(a+b);问s的值是_
这个是宏定义,直接展开 s=f(a+b);等价于 :s=a+b*a+b;所以s的 值 为 1+2*1+2=5 希望能够帮到你。

相似回答