问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

int a=1,b=2,c=3,d=4; if((a=2)||(b=1)) c=2; if((c==3)&&(d=-1...

发布网友 发布时间:2024-10-24 11:52

我来回答

5个回答

热心网友 时间:2024-11-09 02:13

首先第一句,int a=1,b=2,c=3,d=4;为a,b,c,d分别赋值1,2,3,4。
然后看第二句 if((a=2)||(b=1)) c=2;这里一定要区分“=”与“==”的区别,“=”是赋值用,而“==”是判断是否相等用。因此第二句中if里的2个语句都是赋值,一定都为真。但是还需要注意的是“||”与“&&”的区别,“||”表示两个条件中有一个满足就可以,那么在第一个条件a=2返回真的前提下,编译器就不会再执行后面的判断语句,也就是说b=1没有被执行,直接执行了c=2.那么第二句执行完毕后,a,b,c,d分别为2,2,2,4
最后第三句,c==3是一个判断语句,返回假,那么对于“&&”,必须是两个条件都满足才行,在第一个条件c==3返回假的前提下,编译器也不会再执行后面的判断语句,即d=-1也不会被执行。
这样最终的答案就是2,2,2,4

热心网友 时间:2024-11-09 02:15

我觉得这个问题的关键在于短路求值。初始值a=1,b=2,c=3,d=4,在第一个判断的语句中a=1是等式,他的返回值如果是真的话,后面的b=1就不会进行赋值,同样在双与运算符中同样存在短路求值的情况。第一个语句中a=2,返回值是的2,非零的整数在判断语句中视为真,或运算符只要一个是真结果就为真,所以后面的那个b=1不进行,结果c=2,再后面执行c==3时为0,所以后面的语句都不执行。总的来说这段进行了一次a=2的赋值及判断,c=2的赋值,其它的语句要么是不满足if的条件,要么是被短路求值了。

热心网友 时间:2024-11-09 02:08

第一行赋初值
第一个if条件会执行a=2这个赋值操作,因为是||,所以b=1不会执行
if表达式为真,所以c=2执行
第二个if条件 c==3为假,因为是&& 所以d=-1赋值操作不执行
if表达式为假,所以a=5不执行
最终结果就是 2 2 2 4

热心网友 时间:2024-11-09 02:11

if((a=2)||(b=1)) c=2;
(a=2)||(b=1),||两边的表达式都是赋值语句,a=2,为真,则if为真,b=1不执行,执行c=2,此时a=2,b=2,c=2
if((c==3)&&(d=-1)) a=5;
c==3为假,if为假,不执行a=5,此时a=2,b=2,c=2,d=4
这里涉及一个原则:
在判断||,&&的表达式值时,有一个最短原则。比如:
a||b,逻辑或,若a为真,则不判断b,且表达式为真;若a为假,则判断b
a&&b,若a为假,则不判断b,且表达式为假;若a为真,则判断b
实际就是,如果通过运算符||,&&左边的表达式已经可以得出整个表达式的值,就不需再判断余下的表达式

热心网友 时间:2024-11-09 02:14

if((a=2)||(b=1)) 赋值表达式是能返回真的 a=2为真 不执行b=1 所以 a = 2 .b不变,c=2
if((c==3)&&(d=-1)) c不为3 不执行d=-1所以if失败
所以最后 a=2 b =2 c = 2 d=4
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
春水的诗句有哪些(描写春水的好词好句) 关于春水的诗句有哪些? 描写春水的词句 形容春水的诗句有哪些 请问不联网怎么用电脑拍照呀,东芝 win7家庭普通版的? win7内置摄像头怎么打开啊,是东芝L600D 536的,问了一下卖电脑那里,她说... 东芝笔记本windows7怎么开视频 东芝笔记本windows7开视频方法 tn6破解器tn6怎么使用? 金银首饰及一些制品是机器雕刻的还是模板印的。 ospod行业模版分类 ...红色、黑色还要什么颜色,都是放什么垃圾的,记不太清了 若定义int a=1,b=2,c=3,则运行++a‖++b&&++c,后b的值为多少? 设inta=07,b;则执行b=a>>1;语句后,b的结果为? 请解释一下 戴尔PP10L 人如残花是古稀,打一字,谜底是什么 戴尔Latitude E6430s-103TB处理器 QQ宠物得病怎样才能免费治好? 唾液腺分泌什么 鸡兔消化系统的区别? 我的戴尔D410笔记本集成128M显卡怎么在BIOS里面变成8M了,还多游戏都... ...百度后前几天能搜索到一个月后搜不到了是为什么?百度空间相册《没有... 我有一个QQ宠物得病了 怎么治 若有如下定义:int a=1,b=2,c=3;执行语句 b=(a<4)&&(b<a)&&(c++);之后... 我的相片已经上传到百度空间了,时间也有2个多月,怎么在百度上吧、还搜 ... 我的电脑能无线上网吗? QQ宠物包治百病小秘方 消化腺所分泌的消化液由血液进入消化管。 ...腺分为两类:一类是位于消化道外的大消化腺,如___、胰腺、唾液腺_百... 戴尔Latitude 10(32GB)详细参数 Q宠要死了,没有元宝治病,又没有还魂丹。生病又不能出去工作。怎么... 戴尔Latitude D410基本参数 Latitude 10参数配置 我的电脑能无线上网吗? 戴尔PP10L Latitude 10的参数配置 怎么把我的元宝送到别人账上拜托了各位 谢谢 戴尔Latitude 10(加强版)重要参数 ...百度上了为什么还是在百度首页里搜索不到呢? 为什么自己的照片在百度图片里搜索不到? Latitude 10的介绍 家中上火放什么最旺风水 不知道戴尔的latitude10这款平板电脑怎么样?有用过的吗 天上火适合什么颜色最旺财 大门前挂什么最旺财 戴尔Latitude LSt基本参数 ...定义:int a=1,b=2,c=3;执行语句 b=(a<4)&&(b<a)&&(c++);之后,c的... 和女朋友分手了还应该是朋友吗? 人体的消化腺主要有___、___、___等 难道和女朋友分手了就一定是成不了朋友,而是仇人吗?/朋友们。。 为什么我的照片已传上百度空间了怎么在百度图片里就是找不到 84岁的老人坐飞机,有什么问题吗?(老人有高血压,不严重,控制得很好...