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的值是多少?
我想搞清楚这道题的意思?详细一点! 展开
我想搞清楚这道题的意思?详细一点! 展开
6个回答
展开全部
一楼答案是对的,我这里进行如下改编。编写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。
#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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这就是考你对优先级的理解
c是大于d的,所以c>d值为1,送给y。y最后得1
c是大于d的,所以c>d值为1,送给y。y最后得1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
3种不同答案,楼主估计蒙了 是得10 一楼解释得很好了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
o 因为c>d 这个命题是假的 所以它的值是0 然后赋给y
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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程序设计》(第三版)谭浩强著。
祝你学习愉快。
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程序设计》(第三版)谭浩强著。
祝你学习愉快。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询