若有定义:int m=4,n=5;float k;,则以下符合C语言语法的表达式是( B )。

A.(m+n)*=k B.m=(n==5) C.k=float(n)/m D.n%2.5

求AC的解释...

第1个回答  2013-01-14
A:组合算数运算符的左边只能是一个变量,因为计算完成后无法进行赋值。
B:m=true即 m=1
C:k=(float)n/m 这是正确的格式
D:只是一个算数表达式 是非法的 至少需要一个期待来接受他
。。。这些东西 你问来问去反把自己问晕了,自己看一遍书、听一次课完全就清楚了
第2个回答  2013-01-14
A, .(m+n)*=k 左边为被赋值对象,只能是变量,不能是表达式
C, k=float(n)/m 强制类型转换不对, 应该是 k=(float)n/m追问

如果A变为k=(m+n)*呢???

顺便再问你一个,若有定义:int a=6; 则语句 a*=a-=a/=3; 运行后,a的值是
为什么a=a/3=6/2==3????a/3=6/2这个是怎样变来的???

追答

k=(m+n)* 不合法,* 是二元运算符,需要有右运算符。a=a/3=6/2==3 不合法;a*=a-=a/=3 结果a=0从右向左依次运算!

本回答被提问者采纳
第3个回答  2013-01-14
C.k=float(n)/m 错在强制类型转换上,应该为(float)n/m
第4个回答  2013-01-14
m+n是int型,k是float型,不能这样运算的