设有: int a=1,b=2,c=3,d=4,m=2,n=2; 执行(m=a>b)&&(n=c>

设有:inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后,n的值是多少?求详细过程,谢谢!... 设有:
int a=1,b=2,c=3,d=4,m=2,n=2;
执行(m=a>b)&&(n=c>d)后,n的值是多少? 求详细过程,谢谢!
展开
 我来答
不不见不念
高粉答主

推荐于2019-10-06 · 说的都是干货,快来关注
知道答主
回答量:122
采纳率:0%
帮助的人:1.6万
展开全部

这是逻辑运算,n的值为2

(m=a>b) 是赋值表达式,若a大于b则m得真,否则m得假。 a=1,b=2, a>b 为假,故 m=假。赋值表达式(m=a>b)为假。m=0。

逻辑与&&运算中,如果第一个操作数为假,则结果是假,后面的操作数不参与运算,本题中因为第一个操作数(m=a>b)为假,所以第二个操作数(n=c>d)不参加运算,因此n的值不变。

扩展资料:

逻辑运算规则:

逻辑变量之间的运算称为逻辑运算。 二进制数1和0在逻辑上可以代表“真”与“假”、“是”与“否”、“有”与“无”。这种具有逻辑属性的变量就称为逻辑变量。

计算机的逻辑运算和算术的逻辑运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算那样有进位或借位的联系。

逻辑运算主要包括三种基本运算:逻辑加法(又称“或”运算)、逻辑乘法(又称“与”运算)和逻辑否定(又称“非”运算)。此外,“ 异或”运算也很有用。

mg_ning
推荐于2017-05-23 · TA获得超过153个赞
知道答主
回答量:11
采纳率:0%
帮助的人:5251
展开全部
1> 答案是:n = 2;
2> 问题具体分析如下:
(m=a>b)&&(n=c>d) 分析: && 有短路特性,即 m=
(a>b) 为假则整个表达式为假,不计算(n=c>d) 所以n=2;
3> 测试程序:
#include <stdio.h>
int main(int argc, char **argv)
{
int a=1, b=2, c=3, d=4, m, n;
m=n=2;
if((m=a>b)&&(n=c>d))
{
printf("(m=a>b)&&(n=c>d)");
}
else
{
//(m=a>b)&&(n=c>d) 中的 m = 0, n = 2
printf("(m=a>b)&&(n=c>d) 中的 m = %d, n = %d\n", m, n);
}
if((m=a<b)&&(n=c>d))
{
printf("(m=a<b)&&(n=c>d)");
}
else
{
//(m=a<b)&&(n=c>d) 中的 m = 1, n = 0
printf("(m=a<b)&&(n=c>d) 中的 m = %d, n = %d\n", m, n);
}
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mozhenlong930
2015-05-29
知道答主
回答量:25
采纳率:0%
帮助的人:9.5万
展开全部
选A!首先要了解一下运算符的运算先后顺序,优先级口诀:
括号成员第一; 括号运算符[]() 成员运算符. ->
全体单目第二; 所有的单目运算符比如++ -- +(正) -(负) 指针运算*&
乘除余三,加减四; 这个"余"是指取余运算即%
移位五,关系六; 移位运算符:< >> ,关系:> >= <= 等
等于(与)不等排第七; 即== !=
位与异或和位或; 这几个都是位运算: 位与(&)异或(^)位或(|)
"三分天下"八九十;
逻辑或跟与; 逻辑运算符:|| 和 &&
十二和十一; 注意顺序:优先级(||) 低于 优先级(&&)
条件高于赋值, 三目运算符优先级排到 13 位只比赋值运算符和","高
逗号运算级最低! 逗号运算符优先级最低
剩下的你自己同时参考一下2楼和3楼的解释,问题就应该能解决的比较透彻了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式