若有定义:int a,b ; float x,则以下不符合C语言语法的表达式是

35. 若有定义:int a,b ; float x,则以下不符合C语言语法的表达式是。
A. x%7 B. x/=a-b C. a=b=2 D. x=(float)a/b

A. x%7 不符合C语言语法, % 是整数求余数运算,% 两边都必须是整型量,而这里 x 是float 。
B 没问题,x/=a-b ---- x = x / (a-b) 自动化为 float 相除。
D. x=(float)a/b 没问题,先化a 为 float 再运算。
C. a=b=2 没问题 都是 int追问

为什么
x = x / (a-b) 自动化为 float 相除

追答

因为 x / (a-b) 最前面是 x , x 除以什么,分母是 (a-b) , a-b 的结果, 自动化为 float 做相除运算。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-14
应该是A,%仅限与整型吧,追问

为什么呢?具体一点

追答

%运算的条件必须是整型数据,比如int a,x=5;a=x%2;不能是float

第2个回答  2012-04-14
b=a+6/5=>b=2+1=>然后把整数转化为浮点数=》b=3.000000 因为b=3.200000 我是新手 仅供参考 呵呵 这是数值定义的类型问题。 考虑
第3个回答  2012-04-14
ANSI C规定,%(模运算符,或称求余运算符)两侧均应为整型数据。追问

哪/两边呢?如b选项

追答

/两边若都是整型数据,则结果为整型,如5/3结果为1,舍去小数部分。若其中有一个数,是实数或双精度数,则结果是double型,因为所有实数都按double型进行运算。

第4个回答  2012-04-14
a