一个二级C语言问题
原题如下:有语句:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为()A1B2C3D4请赐教!为什么&&后面不执行了呢...
原题如下:
有语句: int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后n的值为()
A 1 B 2 C 3 D 4
请赐教!
为什么&&后面不执行了呢? 展开
有语句: int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>d)后n的值为()
A 1 B 2 C 3 D 4
请赐教!
为什么&&后面不执行了呢? 展开
展开全部
我来给你详细解答解答吧!
首先你要知道,关系表达式和逻辑表达式的值最后都只能是1或则0,不可能是其它值,比如c=a>b,如果a=3,b=2,那么这个关系表达式成立,那么结果它的值就是c=1,如果a=2,b=3,那么这个关系式不成立,那么它的值就是c=0。这里你就要知道,关系表达式的值只能是0或者1.
同样逻辑表达式有省略执行的特点,就是说如果执行前部分就能判断整个表达式的真假,那么后面的就省略执行力。你的(m=a>b)&&(n=c>d),前部分是m=a>b,后部分是n=c>d,根据从左向右的执行,前部分由于执行后等于m=0,即在逻辑表达中代表假,而逻辑符号&&必须是两边都为真才为真,只要有一方为假就是假,所以前面已经判断为假了,所以后面不再执行,所以后面的表达式不起作用,等于空,所以这里的n仍然等于2.
不知道这里楼主懂了不? 不懂可以问问哦
首先你要知道,关系表达式和逻辑表达式的值最后都只能是1或则0,不可能是其它值,比如c=a>b,如果a=3,b=2,那么这个关系表达式成立,那么结果它的值就是c=1,如果a=2,b=3,那么这个关系式不成立,那么它的值就是c=0。这里你就要知道,关系表达式的值只能是0或者1.
同样逻辑表达式有省略执行的特点,就是说如果执行前部分就能判断整个表达式的真假,那么后面的就省略执行力。你的(m=a>b)&&(n=c>d),前部分是m=a>b,后部分是n=c>d,根据从左向右的执行,前部分由于执行后等于m=0,即在逻辑表达中代表假,而逻辑符号&&必须是两边都为真才为真,只要有一方为假就是假,所以前面已经判断为假了,所以后面不再执行,所以后面的表达式不起作用,等于空,所以这里的n仍然等于2.
不知道这里楼主懂了不? 不懂可以问问哦
展开全部
c?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B,n=c>d如果被执行的话n=0,答案中没有0,所以没被执行,答案B
&&为前后两项都为真才为真,前面那项为假了,所以后面的就不执行了
&&为前后两项都为真才为真,前面那项为假了,所以后面的就不执行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B n=2
当执行(m=a>b)时,m为0为假,后面的就不要执行了咯,所以n的值不变
当执行(m=a>b)时,m为0为假,后面的就不要执行了咯,所以n的值不变
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-08-14
展开全部
n = 2。因为a>b为0,所以m = a > b变为m = 0,m的值为0,&&右边不执行,所以n的值不变
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
&&是且运算一假则假,前面的假了后面不用判断就知道假了所以后面的就没执行!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询