若变量已正确定义,以下非法的表达式是(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
所以是合法的
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
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语言中,各运算符,能进行运算的数据类型是有规定的,比如,%是求余数的运算符,其两边必须是整数。
在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追问
B: %为求余运算符,只能算整数的余数,所以不对
C: 括号中为 y = 20, x = y,逗号表达式取后一个的值,
则 a = 1 / 2 * x * 3 = 1 / 2 * 20 * 3 = 30追问
4.0不算整数吗
追答计算机会把它当作浮点数处理
追问谢了!