nynw.net
当前位置:首页 >> #inCluDE <stDio.h> #DEFinE M(x,y,z) x*y+z int mAi >>

#inCluDE <stDio.h> #DEFinE M(x,y,z) x*y+z int mAi

M(x,y,z) x*y+z x:a+b=1+2 y:b+c=2+3 z:c+a=3+1 代入 x*y+z=1+2*2+3+3+1=12。没问题。 注意在预编译部分题目怎么写的,你就按照他写的格式直接把数代入就行了,不能给题目加括号。M(x,y,z)和M((x),(y),(z))是不一样的。

M(a+b,b+c,c+a) 等价于 a+b*b+c+c+a = 1+2*2+3+3+1 = 12 就是把a+b b+c c+a 替换进 x*y+z

答案是7和5 a应该没问题,问题在z吧 要注意的是#define z y*x/2并不是把y=6,x=5直接代入计算 而是要把y=x+1整体代入 也就是z=x+1*x/2(而且这里的x+1没有括号) 然后把x=5代入,得到z=5+2=7

宏定义只执行简单的替换操作,就像你把X用5代替一定,Y就用X+1代替就是6,Z用Y*X/2代替,这时候要注意了,是X+1*X/2,也就是5+1*5/2,结果Z就是7,如果你#define Y (X+1),这是带了括号的,然后再去替换到Z里,又是另一个结果,(X+1)*X/2,把5带...

这是宏替换的特点! 宏替换是在编译时,将源程序中与宏定义符合的代码进行“傻瓜”式替换。 如: #define MAX(x,y,z) x*(y)+z printf("%d/n", MAX(a+b.b+c,c+a) ); 在编译时替换成printf("%d/n", a+b*(b+c)+c+a ); 而 #define MAX(x,y,z) x*y+z pr...

选D),输出是1。

您好~ 在main函数中先定义了a和b,并初始化a = 3,b = 8; 然后打印出a和b的值 接下来是fun()函数,将传入a的地址给形参x,将b的值给形参y 在fun()函数中把*x(x是地址,*x是该地址对应的值,即a的值3)给t,把y的值给x地址所对应的内存单元(变...

#include "stdio.h" main() { int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); } 其中x++是表明在执行完z=x后x才会自动加一,z=x++这条语句执行完后z=1,x=2 y++也是在这条语句结束后才会加一,这时y=2; ++y,是在这条语句执行...

第一次调用: x=2,y=2,z=4,输出 8 第二次调用: x=3,y=2,z=5,输出 10 第三次调用: x=4,y=2,z=6,输出 12 所以,三资输出在同一行上,就是: 8 10 12

注意else是和最近的if搭配的,所以一开始if(x

网站首页 | 网站地图
All rights reserved Powered by www.nynw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com