c语言中表达式(a=2,b=5,b ,a b)输出的值是什么
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/17 01:26:30
你好:10b=20这样的语法应该是错的.我也刚打开编译器试了一下,这样不能通过编译.即使编译器有差异,我们抛开编译器不说,吧这条语法用人的逻辑来看:b=20/10;a=10b;则a=20,b=2;表达
三目运算?:相当于if(a++
“=”是赋值符号,b=1,即把1赋值给变量b,这个赋值是可以成立的,即赋值表达式b=1的逻辑值为1,对其取反,当然结果就是0了.
不合法>操作符的级别比=要高所以上边的表达式就相当于a=(3>b)=5=操作符是从右到左结合的,所以先执行的是(3>b)=5;3>b的结果不能做为一个左值,所以赋值是非法的这个表达式编译会报错.
a+b不是左值,所以不能作为左值对它进行赋值,即a+b=b++是错误的.
应该等于8,对.就是8再问:大哥,跪求解答过程!再答:我把表达式写了段代码,电脑运行的~逗号表达式前面的都是按正常的过程走,只是逗号表达式最后出来的值是最后一个的值a=5,b=2赋值结束然后是a>b?
表达式的值是3条件表达式?表达1:表达式2条件表达的值为真时为表达式1的值否则为表达2的值则:1>2为假所以取表达式2++b所以为3
a--的意思是,先使用a的值,等使用完了再使a的值自减1(a--)-b=3执行完这个表达式后a的值变为4
在编译器抽风的情况下是7,以用vc编译,答案是11==
如果是intA=B=4+C=5;是不对的,在定义变量时不能连续赋值,一定要分开.intA,B,C;A=B=4+C=5;这样才是正确的.再问:再问:题目是这样的。再答:A=B=4+C=5A,B,C都是变
a>b?a:(c>d?c:d);a>b,so值为5
假如a=2m=3那么a*=m--就等价于a=2*3最后a=6,m=2你可以写个小程序测试一下是不是这样的主要是m--表示,m先使用再自减
题目的值是1,||表示或者的意思,是逻辑判断,只要前后一个是真的,就真,真的值为1第二题,&&是与,三个语句有一个值为0,假,最后为0第三题,你还是看看书吧,看看while语句和print语句,明白程
的优先级大于!=,所以他们的计算过程为:(a>b)然后!=c,a>b结果一般为BOOL值,为0或1,之后你就明白了吧.
(b+a)/2=3.5b+=3.5b=3.5+2=5.5因为b是int型的所以b=5
a>b表达式的值是1.a
&&两边的值都为非0,整个表达式的值自然就是1(真)了.表达式中的&&,是该表达式中优先级是最低的,楼上楼下的门外汉们难道就看不穿这点玄机么……智商也太低了,很无语.
(a=2,b=5,b++,a+b)这个叫逗号表达式,其值为最后一个表达式a+b的值8.再问:如果是8,不是应该把表达式改成++b吗,怎么是b++再答:不管是++b,还是b++,这都不影响整个表达的值。
记住后置++形式是先用后加意思就是他的值开始没有改变就像你刚才这个例子执行a++的时候他还是2但是再往下执行a+b的时候他就变成3了不要纠结这个有时候不同编译器会给出不同答案你记住先用后加应付考试就行