C语言:已有声明int x=5,y;float z=2;,则下列表达式正确的是A:y=x%zB:x>0?y=x:y=-xC.y=x/2=zD.y=x=z/2我觉得每个都对啊,为什么只有D是对的?

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/24 06:51:11

C语言:已有声明int x=5,y;float z=2;,则下列表达式正确的是A:y=x%zB:x>0?y=x:y=-xC.y=x/2=zD.y=x=z/2我觉得每个都对啊,为什么只有D是对的?
C语言:已有声明int x=5,y;float z=2;,则下列表达式正确的是
A:y=x%z
B:x>0?y=x:y=-x
C.y=x/2=z
D.y=x=z/2
我觉得每个都对啊,为什么只有D是对的?

C语言:已有声明int x=5,y;float z=2;,则下列表达式正确的是A:y=x%zB:x>0?y=x:y=-xC.y=x/2=zD.y=x=z/2我觉得每个都对啊,为什么只有D是对的?
我对你题目及问题分析下,不对之处还清指出:
A:是求余,所以Z不能是小数,虽然z貌似是等于2,但是在定义的时候z是float内容,编译器会议float的存储方式储存,所以属于小数.
B:正确格式为:x > 0 ? (y = x):(y = -x);
C:从左至右开始计算,y = x / 2 再 x/2 = z;后面的部分出错了,x/2 = 2,2 = z,好像是对的,不过常量不能作为左值,所以错误.
D:就不说了,你都知道D是对的了.