设有定义:int k=1,m=2;float f=7;则下列选项中错误的表达式是( )。

admin2013-02-23  47

问题 设有定义:int k=1,m=2;float f=7;则下列选项中错误的表达式是(    )。

选项 A、k=k>=k
B、-k++
C、k%int(f)
D、k>=f>=m

答案C

解析 在C语言中,求余运算符“%”两边的运算对象都应为整型数据,所以需要对变量f进行强制类型转换,正确的写法为k%(int)f。在C语言中,逻辑运算符与赋值运算符、算术运算符、关系运算符之间从高到低的运算优先次序是:!(逻辑“非”)、算术运算符、关系运算符、&&(逻辑“与”)、‖(逻辑“或”)、赋值运算符。根据运算符的优先级与结合性,对于选项A),先计算k>=k的值(为真,即1),再用1对k进行赋值。对于选取项 B,先计算k++的值,再对其取负数。对于选项D),先计算k>=f的值(为假,即0),再用0与m进行比较,故最终结果为0。
转载请注明原文地址:https://jikaoti.com/ti/1gn0FFFM
0

最新回复(0)