假定变量a 1,b 2,c 3,则表达式:c ba aa+b的值求详解

2021-03-02 08:19:06 字数 1381 阅读 1822

1楼:匿名用户

由运算bai符优先级可知

原表达du式等效于zhi

(c==(b++>a))&&a++,a+b又由&&运算符的dao短路效应可内知子表

达式(c==(b++>a))&&a++中,&&右侧的a++未被执行容又由逗号运算符是顺序点这一点,此间所有***均会发生,所以只有b值自增了一

所以整个逗号表达式的值为4(a+b==1+3)

2楼:匿名用户

c=3因为c从来没有被赋值

整个表达式的值是4

因为 逗号运算符 ,结果为 a+b,即4

假定a和b为int型变量,则执行以下语句后b的值是: a=1;b=10; do{b-=a;a++;}while(b--<0);

3楼:匿名用户

额 一开始我被糊弄抄到了 后来用printf一输出才发现原来错得糊弄离谱啊

b=10 a=1 b-=a 等价于b=b-a 所以b=9 a++ 所以a=2 重头戏来啦

while(b--<0) 嘿嘿 注意是《号哦 b--<0 是先用b的值与0比较大小 再b自减1 也就是说9<0 当然是假啦 所以就退出循环 又b要自减1 所以最后b=8呵呵

4楼:铁书包

这是正常的,因为循环只执行了一遍!

do....while()的用法是执行一遍之后判断是否符合条件!

对应本题就是执行一遍之后,检查b--是否小于0,若果小于0则继续执行,不小于0则退出!

5楼:逆笔回锋

在do执行完后,b变成9

在while语句中,先判断b<0==false再进行b--;

所以b==8;

又例a[3]=;

a=1;

那么a[++a]==2;a[a++]==1;但无回论是哪一个答a都变成了2

6楼:匿名用户

不是8能是什么?

一开始, a=1, b=10

b-=a; 这时b=9了

a++; 这时a=2了,b还是9

while(b--<0) ; 这时b为8了,所以条件不成立,跳出循环。

所以,最后b=8.

7楼:美丽的华

首先b-=a,这时b=10,a=1,执行后b=9,a=2

然后while(b--<0),b--了一次,b=8

8楼:匿名用户

其实,来你应该是记错了,do-while语句自里面while(表达式)必须在判断表达式为真,才可以继续进行下一轮的循环,这里说的是b--<0,是假的,所以停止循环,退出语句。b--使用过后,自减,得出来b值为8.

当a 3,b 2,c 1时"表达式f a》b》c

1楼 路尧家的顾小言 因为f a b c可以写成f a b c ,a b是3 2为真,值为1 然后1 c是1 1为假,值为0 最后赋值给f,所以f 0。 这个式子的解答主要在于理解运算符的优先级。 2楼 zyz郑远征 首先计算a b 因为a的值大于b,所以a b的值为1,然后再计算1 c的值,因为1...

如果int"a 1,b 2,c 3,d 4,则条件表达式“a

1楼 德形兼备 当a b 成立 则结果就是 a 如果 a b 不成立 则结果要判断 c 2 c 所以这题 结果是a 1 2楼 匿名用户 条件运算符的结合性是从右到左结合的,先算 c d?c d 返回 c 3 再算 a b?a c 返回值为1。 3楼 何慧哈 先判断a b为真取a值,得等式a d c ...

求解。变量a,b,c的值分别是?int x 10,y

1楼 草柏渡 首先你这程序有错误的判断 x y 就好。 在前面 或就 就是先 或 再用数 在后面就先就是先用数在 或 所以 x y 是对的。所以a x 所以a 8的 经过两个 。 b x 先赋给b再 。所以b 8 x为9 c等于y。y等于10 y 是没有执行到的。 5 执行以下程序段后 变量a b ...