A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

设int a=1,b=2,c,d,e; 执行

c=(-a++)+(++b);
d=(b--)+(++a)-a;
e=(a/(++b))-(a/(--a));
请问a,b,c,d,e的结果是:_______。

9 个回复

倒序浏览
//c=2,a=2,b=3;d=2,a=3,b=2;e=0,a=2.b=3,
回复 使用道具 举报
李永方 发表于 2015-6-16 22:49
//c=2,a=2,b=3;d=2,a=3,b=2;e=0,a=2.b=3,

亲,要的是过程那!
回复 使用道具 举报
int a=1,b=2,c,d,e;

c=(-a++)+(++b);
d=(b--)+(++a)-a;
e=(a/(++b))-(a/(--a));
请问a,b,c,d,e的结果是:____2、3、2、3、0___。
分析:
//(-a++),-与++同一级,又右结合,故先进行a++,而a++的值为1,++b的值为3,故-1+3=2;//此时a=2,b=3,c=2
c=(-a++)+(++b);
//根据优先级,括号中,从左到右,先算括号中得内容,括号中算b--,值为3,b=2,(++a)的值为3,a=3,故,最后得得式子为3+3-3=3
//此时,a=3,b=2,d=3
d=(b--)+(++a)-a;
//括号的优先级大于/,故此时b=3,++b=3,根据括号的结合性,先算第一个括号,此时第二个括号值还并未算,所以第一个扩号a=3,第一个括号中值算完后,第二个括号中--a=2,a=2,故e=1-1=0
e=(a/(++b))-(a/(--a));

所以a=2,b=3,c=2,d=3,e=0
回复 使用道具 举报 1 0

额。。。。。这个没回好,点错了
回复 使用道具 举报
李永方 发表于 2015-6-16 23:14
额。。。。。这个没回好,点错了

非常感谢你的热心回复!
回复 使用道具 举报
本帖最后由 DemonPeter 于 2015-6-16 23:50 编辑

  条件;a=1,b=2,c,d,e;
c=(-a++)+(++b)===》 这一步a++,a=1不变,++b,b=3 .有c=(-1)+(3)运算完到下一步确定a=2b=3
d=(b--)+(++a)-a;     ===》b--,b=3不变,a=3   d=(3)+(3)-3   算完到下一步确定a=3,b=2
e=(a/(++b))-(a/(--a)) ===》注意两个点:①减号/加号 具有左结合性(自左至右运算)  所以先
                                                                             a/(++b) ==》    3/3        这时b=3
                                                                      ②除号具有右结合性(自右至左运算)所以先
                                                                              (--a)    a=2        a/(==a) ==》2/2
             这时e=1-1     总结a=2 b=3 c=2  d=3  e=0   
                                                                     
                       
回复 使用道具 举报
zilin 中级黑马 2015-6-16 23:53:12
8#
这道题颇像今天的作业题,答案是23230
回复 使用道具 举报
zilin 发表于 2015-6-16 23:53
这道题颇像今天的作业题,答案是23230

就是今天的作业题,可是一直想不太明白!
回复 使用道具 举报
这题对我们初学者真的是一个很大的障碍!很好的题目!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马