青岛公爵拍卖公司评论:(x=8*2,x*4),x*2 整个表达式的值是多少
来源:百度文库 编辑:高考问答 时间:2024/04/29 08:14:30
真确答案是128,我就想知道为什么
128不对呀。
(x=8*2,x*4),x*2
先执行x=8*2后x=16,后面那个x*4纯粹是迷惑人的,值被丢弃掉了。
然后逗号表达式取最右边的值为表达式的值,即x*2,值为32。
是C语言吧???
我刚好在教这一知识点.
最终的值应该为32(TC3.0)
先进行括号里的运算,括号里包括一个逗号表达式(即x=8*2,x*4)
逗号表达式的优先级最低,所以先进行赋值运算,此时x=16.
x*4=16*4=64即括号里的表达式值为64
但逗号表达式的取值是取最后一个表达式的值,即x*2=16*2=32
所以最终的值应该为32(TC3.0)
请参考《C语言程序设计》谭浩强第一版39页
#include<iostream.h>
void main()
{
int x,y,z;
int a,b;
a=((y=x=8*2,z=x*4),x*2);
b=(x=8*2,x*4),x*2;
cout<<y<<endl<<z<<endl<<a<<endl<<b<<endl<<endl;
}
结果为:
16
64
32
64
在(x=8*2,x*4),x*2里是先执行x=8*2,然后再x=x*4。后面的不执行。
在((x=8*2,x*4),x*2)里是执行x=8*2,忽略掉x*4。再执行x=x*2。
(x=8*2,x*4)先看这个,可以看成是给X赋值的表达式,而逗号表达式的值是决定于后一个表达式的,因为X=16*4=64,有了X的值就容易得到整个表达式的值了,同上理,整个也是一个逗号表达式,因此表达式的值为X*2=64*2=128
y=(x=8*2,x*4),x*2 ;
//y=64,x*2其实是无用的
y=((x=8*2,x*4),x*2) ;
//y=32
(x=8*2,x*4),x*2 整个表达式的值是多少
解方程(x+1)(x+2)(x+3)(x+4)=(x+1)(x+1)+(x+2)(x+2)+(x+3)(x+3)+(x+4)(x+4)
(x+1)(x+2)(x+3)(x+4)=(x+1)(x+1)+(x+2)(x+2)+(x+3)(x+3)+(x+4)(x+4)
已知1+x+x^2+x^3=0求x+x^2+x^3+x^4+.....+x^2004
x^2+4x-1=0求2x^4+8x^3-4x^2-8x+1
x^6+x^5+x^4+x^3+x^2+x+1=0
4x?2x?
解方程式3x*x*x+x*x=2
因式分解:x*x*x+2*x*x-16=0
因式分解x*x*x+2*x*x-16=0