假定int a=2,b=3 ,c=0,则(!c+a==b)+(float)(3*b/a)/2+!cos(90.0)的值是

假定inta=2,b=3,c=0,则(!c+a==b)+(float)(3*b/a)/2+!cos(90.0)的值是——A。3.0B。3.25C。4.0D。4.25答案应... 假定int a=2,b=3 ,c=0,则(!c+a==b)+(float)(3*b/a)/2+!cos(90.0)的值是——
A。3.0
B。3.25
C。4.0
D。4.25
答案应该是A,前面括号和后面的cos算的都是1,但是中间那一部分算出来要么是2.25要么是2.0,不知道怎么算的1.0……求高手指教
展开
 我来答
Liuguiwu1
2013-01-04 · TA获得超过2107个赞
知道小有建树答主
回答量:1199
采纳率:0%
帮助的人:809万
展开全部
楼主你好,表达式运算时首先根据运算符优先级划分,如果运算符优先级相同,则根据向左结合原则就算
比喻说你的问题当中
3*b/a 应该可以这样结合,3*(b/a)=3*1
后面的你应该知道啦!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chun280444332
2013-01-04 · TA获得超过123个赞
知道答主
回答量:257
采纳率:0%
帮助的人:115万
展开全部
中间的一部风是这样的
3*b/a=3*3/2=9/2 不同的编译器取整方式不一样,大多向下取整,9/2=4
float 4=4.0
4.0/2=2.0
整个结果是
(1+0)+2.0+1答案应该是4。0也就是C
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
濮方雅BX
2013-01-04 · TA获得超过4042个赞
知道大有可为答主
回答量:2482
采纳率:60%
帮助的人:2476万
展开全部
注意a和b都是int,所以b/a =1
追问
先算b/a吗?那3*1结果不是3.0吗?除以二之后1.5?
追答
sorry,刚才看错,
(float)(3*b/a)/2应该是3先乘以b=9,
然后9再除以a等于4.5,
但是由于参与运算的都是整数,所以化成整数4,
但马上又被(flloat)强制转化成4.0,然后除以2得到2.0

至于cos函数,是按弧度来的,比如说cos(pai/2)=0的,所以 !cos(90.0) = !(1) = 0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vincant566
推荐于2018-04-11 · TA获得超过902个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:300万
展开全部
(!c+a==b)确实是1.0;(float)(3*b/a)/2也确实是2.0;最终的结果也确实是3.0,;所以错的是你对!cos(90.0)的计算!因为在cos中用于计算的是弧度,而不是度,所以如果你想用90.0度,那么用弧度来转换就是90.0*3.14/180,这才能表示90度的意思结果才是0,经过!后才是1.0;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式