永发信息网

设int a=1,b=2,c,d,e;执行下面的语句c=(-a++)+(++b);d=(b--)+(++a)-a;e=(a/(++b))-(b/(--a));后,

答案:2  悬赏:30  手机版
解决时间 2021-03-22 05:30
  • 提问者网友:浩歌待明月
  • 2021-03-21 14:28
设int a=1,b=2,c,d,e;执行下面的语句c=(-a++)+(++b);d=(b--)+(++a)-a;e=(a/(++b))-(b/(--a));后,
最佳答案
  • 五星知识达人网友:几近狂妄
  • 2021-03-21 15:09
你好,答案是:a=2,b=3,c=2,d=3,e=0

a++和++a是自增运算,相当于a=a+1;a--和--a是自减运算,相当于a=a-1
“++a”或“--a”是先自增自减再参与计算;“a++”或“a--”是先参与计算再自增自减

如果还不懂,请追问追问我不太懂a,b的值为什么同时也跟着改变,a++的值,会改变原有a的值?最后输入a的值不是a=1么?追答
    首先我告诉你了这是一种简写形式,因为你那题目写的是复合语句。C语句是以分号结尾的,所以我说的先后是以分号为界的。
     第一句:c=(-a++)+(++b);  a++是先参与计算,然后在程序执行到分号后才自增,而++b是程序读到该处b的值马上+1变为3,所以c=(-1)+(3)=2,执行到分号,a的值+1变为2

    复合语句【c=(-a++)+(++b);】分解开就是:
    b=b+1;
    c=-a+b;
    a=a+1;
    这就是我说的先后问题呀
    第二句:【d=(b--)+(++a)-a;】分解开就是:
    (注意经过语句1,a=2,b=3)

    a=a+1;
    d=b+a-a;
    b=b-1;
    第三句:【e=(a/(++b))-(b/(--a));】分解开就是:
    (注意经过语句2,a=3,b=2)

    b=b+1;
    e=a/b;
    a=a-1;
    e=e-b/a;
    (注意你定义的e是整型数,所以只要整数部分,小数部分被丢弃)




全部回答
  • 1楼网友:青灯有味
  • 2021-03-21 15:17
c=-1+3=2;(b=3,a=2)
d=3+3-3=3;(b=2,a=3)
e=(3/3)-(3/2)=0;(b=3,a=2)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯