C++运算题

第一道:设有如下定义:inta=3,b=2,c=1,d;则赋值表达式:d=a>b运算后,d的值为()第二道:设有如下定义:inta=3,b=4,c=5;则逻辑表达式:!(... 第一道:
设有如下定义:int a=3,b=2,c=1,d;则赋值表达式:d=a>b运算后,d的值为( )
第二道:
设有如下定义:int a=3,b=4,c=5;则逻辑表达式:!(a+b)+c-1&&b+c/2( )
每一道题每一步都要详细说明,越详细越好,谢谢!!!
展开
 我来答
百度网友82b857b
2011-03-21
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
int a=3,b=2,c=1,d;
d=a>b: 因为a=3,b=2,所以a>b为真,表达式的值为true,又因为d为int类型,所以bool值:true转换成int类型为1;

int a=3,b=4,c=5;
!(a+b)+c-1&&b+c/2:因为&&在本表达式中优先级最低(() > ! > / > + == - > &&),所以可以把表达式分为!(a+b)+c-1 和 b+c/2 两个部分考虑
!(a+b)+c-1:因为 () > !(优先级),所以先计算括号中的a+b,值为7。转换为bool值为true(非零为true,零为false),!(a+b)即!true,值为false,转换为int型为0,!(a+b)+c-1即0+c-1,值为4,所以!(a+b)+c-1的值为4
b+c/2:c/2的值为2.5,因为c为int型,所以转换成int型的2(舍去小数点后的数字),b+c/2即b+2,值为6
4与6转换为bool值均为true,所以&&的返回值为true,该表达式的值为true
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lordspring6
2011-03-21 · TA获得超过219个赞
知道答主
回答量:45
采纳率:0%
帮助的人:41.6万
展开全部
这两个题大同小异,其实都是考查:运算符的优先级和结合性。
圆括号为1级运算符,加减运算符为4级,乘除运算符为3级,逻辑运符&&为11级,他们的结合性都是,自左至右。赋值运算符为14级,逻辑非‘!’为2级,它的结合性与前面说的相反。
好了,有了这些知识了,我们开始做题。
第一题:因为逻辑运算符的优先级大于赋值运算符,所以先进行逻辑运算。计算a>b,因为a=3,b=2,a>b成立,计算值为1,然后把1赋值给d,所以d得值为1
第二题:因为圆括号的优先级最大,所以先计算a+b,a+b=7不等于0,然后进行逻辑非运算‘!’,计算!(7),假用0表示,非真即为假,所以!7为0。次式子可化为(0+c-1)&&(b+c/2)。为别计算&&两边的值分别为4,6。对4&&6的计算值为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
历丹南0ij
2011-03-21 · TA获得超过1963个赞
知道小有建树答主
回答量:93
采纳率:100%
帮助的人:88.9万
展开全部
d=1,因为">"(关系运算符)的优先级比“=”(赋值)的优先级高,所以是“d=(a>b)”,而“a>b”这个表达式为真,就是“1”,所以 d=1.
等于1。“!(a+b)+c-1&&b+c/2”优先级最低的是“&&”,所以等价为“【!(a+b)+c-1】&&【b+c/2】”,&&左边的部分为“!(7)+5-1”即“0+5-1”,为4;&&右边的部分为“4+(5/2)”即“4+2”,为6.整个表达式就是“4&&6”,为真,也就是为1.
P.S:你可以在VC环境下试试,这两个表达式为多少~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zengfujun271
2011-03-21 · TA获得超过192个赞
知道答主
回答量:124
采纳率:0%
帮助的人:160万
展开全部
第一道,由于赋值运算符的优先级要低。所以先进行a>b。这是一个逻辑运算,由于a=3,b=2,所以a>b是真的,为真的话(a>b)的值就是1,(如果为假就是0)。再将这个值赋给d,所以d=1;
第二道,a+b=4,为非零值,!(a+b)也是逻辑非运算,所以!(a+b)=0;然后后面的1&&b,由于1和b都是非零值,所以1&&b的值也为真,其值为1,c/2由于被除数c是整型,所以结果为整型,c/2=2。所以这个表达式的值为0+c-1+2=6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
snowboy_snow
2011-03-21 · TA获得超过182个赞
知道小有建树答主
回答量:143
采纳率:0%
帮助的人:117万
展开全部
第一道题:
答案 d=1
a>b是即3>2是真,非零值为真,0为假,计算机计算a>b后得真 固定赋值为1 所以d=1
第二道题:
答案 1
按运算符优先级 及由左向右 先把数值代入 如下 !(3+4)+5-1 && 4+5/2 --> !7+5-1 && 4 +5/2 --> 0+5-1 && 4 +5/2 --> 4 && 4 +5/2 --> 4 && 4+3 --> 4 && 7 --> 1 (true)
*注: !7=非真=假=0
4&&7=真 and 真 = 真=1
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(10)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式