C语言,试题讲解!

设a=1,b=2,c=8,d=7,x=10,y=10,执行(x=a>b)&&(y=c>d)后y的值是多少?我想搞清楚这道题的意思?详细一点!... 设a=1,b=2,c=8,d=7,x=10,y=10,执行(x=a>b)&&(y=c>d)后y的值是多少?

我想搞清楚这道题的意思?详细一点!
展开
 我来答
徐光猪
2010-12-06 · TA获得超过4167个赞
知道大有可为答主
回答量:1299
采纳率:50%
帮助的人:1736万
展开全部
x=a>b中,x接受的是a>b的逻辑值如果a>b则x=0,否则x=1
&&的判断,如果x=(a>b)是假的,后面就不用判断了,y就保持原来的值不变,不用进行y=c>d
由于a>b是假的所以x=0,y保持原来的值,y输出就是10
etechwzh
2010-12-06 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:90
采纳率:0%
帮助的人:73.9万
展开全部
一楼答案是对的,我这里进行如下改编。编写C语言,如下:
#include<stdio.h>
void main()
{
int a=1,b=2,c=8,d=7,x=10,y=10;
y = (x=a>b)&&(y=c>d);
printf("%d\n",y);
}
输出为:0
主要考查C语言操作符的操作顺序。
赋值操作符‘=’优先级小于‘>’,所以x=a>b得出结果为0,再进行&&,最后结果为0。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
gasbi
2010-12-06 · TA获得超过509个赞
知道答主
回答量:121
采纳率:0%
帮助的人:37.7万
展开全部
这就是考你对优先级的理解
c是大于d的,所以c>d值为1,送给y。y最后得1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
XINGYUNZHIHOU
2010-12-06 · 超过12用户采纳过TA的回答
知道答主
回答量:77
采纳率:0%
帮助的人:0
展开全部
3种不同答案,楼主估计蒙了 是得10 一楼解释得很好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangchi68
2010-12-06 · 超过27用户采纳过TA的回答
知道答主
回答量:89
采纳率:50%
帮助的人:39.9万
展开全部
o 因为c>d 这个命题是假的 所以它的值是0 然后赋给y
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
啊黑胡椒
2010-12-09 · 超过15用户采纳过TA的回答
知道答主
回答量:27
采纳率:0%
帮助的人:33万
展开全部
y可能的值只有三个
1)、10;满足的条件是:没有执行y的赋值操作:y=c>d;
&&的计算原则:如果前面的表达式为真,继续计算后面的表达式;如果前面的表达式为假,则不进行后面表达式的计算(因为已经能够得出整个表达式为假的结论了)。
2)、0;满足的条件是:前面表达式(x=a>b)计算为真且c>b为假,将c>b的判断结果0赋值给y;
3)、1;满足的条件是:前面表达式(x=a>b)计算为真且c>b也为真,将c>b的判断结果1赋值给y;
如果这类题有问题的话建议你看看各种运算符的优先级别以及计算原则,在课本上就有的,推荐《C程序设计》(第三版)谭浩强著。
祝你学习愉快。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式