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

admin2010-09-05  31

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

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

答案4

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

最新回复(0)