int a=3,b=5,c; c=(a>--b)a++:b--; a和b的值分别是?
6个回答
展开全部
a的值为4,b的值为3。
代码解释:先是定义整型变量a、b、c,并给a赋予初值3,给b赋予初值5;接着,给c赋值于 (a>--b)的值,a的值为3,经--b运算后的b的值为4,所以(a>--b)为假,其值为0,所以c的值为0;然后,进行a++运算,a自加1得4;b--运算,b自减1得3。所以,a的值为4,b的值为3。
如果说最后一段代码是 c=(a>--b)?a++:b--;那么因为(a>--b)为假,所以先将b的值赋予c,c的值为4,再进行b--运算,得到b的值为3,而a的值不变。此时a的值为3,b的值为3。
如有错误,请多原谅。
代码解释:先是定义整型变量a、b、c,并给a赋予初值3,给b赋予初值5;接着,给c赋值于 (a>--b)的值,a的值为3,经--b运算后的b的值为4,所以(a>--b)为假,其值为0,所以c的值为0;然后,进行a++运算,a自加1得4;b--运算,b自减1得3。所以,a的值为4,b的值为3。
如果说最后一段代码是 c=(a>--b)?a++:b--;那么因为(a>--b)为假,所以先将b的值赋予c,c的值为4,再进行b--运算,得到b的值为3,而a的值不变。此时a的值为3,b的值为3。
如有错误,请多原谅。
展开全部
c=(a>--b)a++:b--;是不是c=(a>--b)?a++:b--; ?
如果是的话,那运算顺序是:
--b,故 b=4
a > --b(4), 故值为假,c=a++
a++为4,故a = 4 则c = 4
如上所述:a、b、c均为4
追问
没有 ?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先,"?"是c++中的三元运算符,是条件运算符。此题意思是,赋值a,b分别为3,5。声明c变量。如果a>--b为真,则输出a++;否则输出b--。然后判断:a=3<b=--b=4,条件为假,输出b=b--=3(注意:此时b--使用判断条件"a=3<b=--b=4"中"b=4"来求解b--,所以b--为3),程序结束。所以a=3,b=3.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
执行比较3>4?
否,b--; 于是 b 变成3
a b 的值分别是 3 3 。
否,b--; 于是 b 变成3
a b 的值分别是 3 3 。
更多追问追答
追问
b--和--b有什么区别?小白请教。
追答
就单独的一个语句而言,b--和--b没有区别。
但是对于引用变量的值时,就有区别。比如说
b=5;printf("%d",b--);则会输出5(先引用,再自减)
b=5;printf("%d",--b);则会输出4(先自减,再引用)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是 c=(a >--b)?a++:b--;
结果是a=3;b=3;
结果是a=3;b=3;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询