C语言的几个题目,请高手帮帮忙,急!!

1、main(){inta=1,b=2,c=3;printf("%d",a=b==c);请问答案为什么是1啊?2、a=10,b=4则a+b,18+(b=4)*3,(a/b... 1、main()
{int a=1,b=2,c=3;
printf("%d",a=b==c);
请问答案为什么是1啊?
2、a=10,b=4
则a+b,18+(b=4)*3,(a/b,a%b)
答案为什么是4?
3、(2+3)e(4-2)为什么不符合C语法规定啊?
4/#define MIN (x,y) x*y
main()
{int i,j ,k;
i=10;j=5;
k=10*MIN(i+2,j);
printf("%d\n",k);
}
结果为什么是110?
还有一题:
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10};
int i;
for(i=2;i<=8;i++)
{a[i]=a[10-i];a[10-i]=a[i];}
for(i=1;i<=9;i++)
printf("%d",a[i]);
}
答案是:2,9,8,7,6,7,8,9,10
6后面的7,8,9我不理解
展开
 我来答
风z使者
2012-01-07 · TA获得超过1260个赞
知道小有建树答主
回答量:592
采纳率:0%
帮助的人:168万
展开全部
第一题的答案是0
先算“==”判断,b是否等于c,否,返回0,再“==”赋值,将0赋值给a
第二题的答案不太清楚,问题没给完整。猜测这里问的是b的值
“,”逗号运算符,从左到右执行,一般来说将最后一个逗号后面的式子作为最后结果给左面“=”赋值号的左面的变量,但这里没有赋值,所以直接从左到右执行。执行过程中,(只有)4赋给了b,所以b的值为4
第三题:...明天答你
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jtr1906
2012-01-07
知道答主
回答量:26
采纳率:0%
帮助的人:25万
展开全部
我放到编译器去跑了一下
第一个是0
第二个是2
第四个是因为是宏。。。。那个MIN(x,y)直接被替换成了x*y
表达式就变成了k=10*i+2*j就等于110了
更多追问追答
追问
为什么表达式就变成了k=10*i+2*j 了呢?不是10*12*5 吗?
追答
因为宏就相当于是替换。。
就是把MIN(x,y)替换成了x*y
带入实参就是把MIN(i+2,j)替换成了i+2*j
所以用宏的时候一定要记得打括号
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式