若变量已正确定义,以下非法的表达式是(B) A、a/=b+c B、a%(4.0) C

若变量已正确定义,以下非法的表达式是(B) A、a/=b+c B、a%(4.0) C、a=1/2*(x=y=20,x*3) D、a=b=c
解释下 a b C选项

A
a/=b+c 等价于
a = a/b + c,只要b不等于0,这个表达式就是合法的

B
a%(4.0)
%是去余数运算符,余数只有对整数才有意义,对浮点数没有意义。我们可以说5除以2,等于2,余数为1。

但是5除以2.2,就没有余数的概念。这里虽然4.0就是整数4,但是对于计算机来说是浮点数,浮点数不能去余数,是非法的

C
a=1/2*(x=y=20,x*3)

括号优先级最高,先计算括号里面的x=y=20,x*3,这是一个逗号表达式,从左到右计算,最右边的表达式的值作为整个括号表达式的值。
即先计算x=y=20,然后计算x*3=20*3=60,60作为(x=y=20,x*3)表达式的结果

上面的表达式就等价于
a=1/2*60

所以是合法的
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-20
A、a/=b+c /= 表示整除后再赋值给被除数,相当于a=a/(b+c) ;
B、a%(4.0) %是模运算,参与运算的数据只能是整数类 而4.0是浮点数,所以错!
C、a=1/2*(x=y=20,x*3) 括号中是逗号运算,返回x*3 = 60, 1/2*60=0
第2个回答  2015-01-20
B选项 a%(4.0) 是非法的表达式

在C语言中,各运算符,能进行运算的数据类型是有规定的,比如,%是求余数的运算符,其两边必须是整数。
第3个回答  2015-01-20
A: a = a / ( b + c )
B: %为求余运算符,只能算整数的余数,所以不对
C: 括号中为 y = 20, x = y,逗号表达式取后一个的值,
则 a = 1 / 2 * x * 3 = 1 / 2 * 20 * 3 = 30追问

4.0不算整数吗

追答

计算机会把它当作浮点数处理

追问

谢了!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网