若a为int类型,且其值为5,则执行表达式a =a-a=a*a后,a的值是
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/23 01:25:40
先算:a-=a*a,其等价于a=a-a*a=3-3*3=-6再算a+=-6,其等价于a=a+(-6)=(-6)+(-6)=-12再问:+-的优先级相同可是结合性是自左至右啊,这个题算完*以后不就应该按
D)d++;没赋值符号,不是赋值运算
a+=a-=a*a;复合赋值表达式,从右到左运行,可以分拆成:a-=a*a;a+=a;a的原值为3a-=a*a;相当于a=a-a*a=3-3*3=-6;再运行a+=a;自然就成了-12
(a*100+0.5)=468.35/100.0=4.6835,再让它变为整型的数去掉后面的小数点.等于4.
a=3!a=0逻辑运算(false)++a=40||4=1逻辑运算所以!a||++a结果为1,也就是true
选C,先算a-=a*a,得a=-6,再计算a+=-6,得a=-12再问:明白了,谢谢。
464显示转换为整型后,小数点后面的数据抛弃!(int)(a*100+0.5)带上了括号,即以float运算完毕之后再强制转换!
#includevoidmain(){inta=3;a+=a-=a*a;printf("%d\n",a);}结果是-12.原因:a+=a-=a*a;即a=a-a*a=3-3*3=3-9=-6;a=a+
voidList_Insert(ListA,ListB,List&C){inti=0,j=0,k=0;while(A.elem[i]&&B.elem[j]){if(A.elem[i]B.elem[j]
x先乘以1,然后再除以3,得结果3!计算完后x自加为12!再问:你是说表达式的值为3,X的值为12,对吧?再答:对,计算完的最终值!
-60从右往左算a*a=36a-=36即a=a-36所以算好后a=-30;最后算a+=-30即a=a+(-30)所以a=-60
a=a-a*aa=a+a12C
选B,应该是执行语句后,会分别把45赋值给aa,bb,然后a=aa,所以a=4,然后b=等于aa乘以bb,所以b=20
如果编译器不进行优化,理论上的长度分两种不知道你用的是16位的Tc还是32位的VC如果是Tc两个int变量一个int为2字节,一个指针变量,每个指针为2字节,所以共6字节如果是VC一个int为4字节,
-40原来字数少回答不了.再问:什么意思啊再答:就是a的值是-40
从右到左开始运算.首先a-=a*aa*a=36a-=a*a就是a=6-36=-30然后再a+=a就是a=-30+-30=-60
-=、+=、=是从右往左结合的,故式子等价于a=a-a*a;a=a+a;即-60
表达式!a的值为0表示a为真.即a!=0;所以表达式a!=0的值为什么为真.1再问:请问下a!和!a的不同之处再答:a!无意义,是a!=b。!=是不等号的意思。!是求逻辑反的意思,真的加一个!后就变成
问题一:表达式a+=a-=a*a从右向左计算.1.先计算a=a-a*a,此时右边的a=3,故而最后a变为3-3*3=-62.再计算a=a+a,此时右边的a=-6,故而最后a变为-6+-6=-12问题二
你说的只是你的理解,而不是C语言.C语言的赋值语句并没有说明发生效果的时机.你认为执行完a-=a*a之后,a的值就应该是-6了,但是这是你的理解.因为a=3,所以可以在一开始就把算式改写成:a=3-(