正确的答案应该是B。A的错误在于:在=的左边不能有其他的运算符,连等是可以,如:x=y=5;B是正确的,在标准C中,其实是没有定义逻辑类型的(通常也叫布尔型),而是采用0代表false(假),用非0代表true(真)。同时,逻辑运算的结果false是0,true一般是-1(所有位全为1),所以是可以将逻辑运算的结果赋给整型变量的,这里x=-1;C是错误的,C语言中显示转换应该是(float)x。D的错误是%(模运算)只能用于整型。
A错 不允许有连等于,(其实那个“=”是赋值号,把它右边的值赋给左边)
B错 因为已知y=3,所以y==1这个布尔判断即为False,把布尔值赋给整型(题目说x是int整型的),所以错。
C正确 将整型的x强制类型转换为单精度Float型,再赋给i正确的 因为i是float型的
D错 题目中i没有赋初值,不能用来计算 。
回答完毕!!