C语言~ 9到12题 我错了的这里几道(画了红括号)~ 我想要知道解题过程 ,原因 蟹蟹

 我来答
imkarayi9d4f
2017-09-12 · TA获得超过1552个赞
知道小有建树答主
回答量:1164
采纳率:85%
帮助的人:592万
展开全部
    9、等号左边是个表达式,而表达式是不能被赋值的。
10、表达式是不能被赋值的。改为++i,是可以的。但是++(i+1)就不可以了。
11、问题1:3.6-5/2+1.2+5%2;
          相当于 3.6 - ( 5/2 ) + 1.2 + ( 5%2 ),
          其中 5/2=2.5,但是编译器默认处理数据为整形数据,所以得到的结果应该是 2 
          所以,3.6 - 2 + 1.2 + 1 = 3.8

          问题2:int x=12,y=8,z;          z=0.9+x/y;
          这个问题跟问题1一样,
          x/y=12/8=1.5,整形数据取值为1。
          所以:0.9+1,整形数据取值依然是为1。

12、问题1:a+=a-=a*a
          此题计算顺序为先计算a*a ,结果为9,
          然后计算 a-=a*a,也就是 a-=9,此语法相当于:a=a-9 ,即a=3-9,
          a的值变成-6,同时表达式的返回值为-6,
          然后计算a+=(a-=a*a),此时a=-6
         也就是a+=-6,即 a=a+-6, 相当于:a=-6+-6,
         即,a的值为-12

        问题2:int x=10,a; x+=x-=x-x;
        此题计算顺序为先计算x*x ,结果为0,
        然后计算 x-=x*x,也就是 x-=0,此语法相当于:x=x-0 ,即x=10-0,
        x的值变成10,同时表达式的返回值为10,
        然后计算x+=(x-=x*x),此时x=10
        也就是x+=10,即 x=x+10, 相当于:x=10+10,
        即,x的值为20

        问题3:int a=0; a+=(a=8);
        此题计算顺序为先计算a=8
        然后计算a+=(a=8),此时a=8
        也就是a+=8, 相当于:a=8+8,
        即,a的值为16
房子a房子a
2017-09-12 · TA获得超过2047个赞
知道小有建树答主
回答量:783
采纳率:85%
帮助的人:553万
展开全部
9.=号左边必须是变量不能是表达式,x+1是表达式,不能被赋值
10.++后面也是只能是变量不能是表达式,j+1是表达式,不能自加1
11.题中%和/的优先级最高(先进性计算),5/2=2(小数舍掉),5%2=1。于是又3.6-2+1.2+1
12.(1)a+=a-=a*a中先计算a*a =9 a值为3;在计算a-=9,a值变为-6;最后计算a+=-6,最终a值为-12
(2)x+=x-=x-x先计算x-x=0 x值为10;在计算x-=0,x值仍为10;最后x+=10,得到x=20
(3)a+=(a=8),先计算a=8,a值变为8,在计算a+=8 得到a=16
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式