C语言出学的几个题目~~

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:43:04
计算下列表达式的值.
(1)a+b%3*(int)(a-b)/4 (设a=13.6,b=8)
(2)(x+y)/2=(int)x%(int)y (设x=4.5,y=2.5)
(3)z*=3+6,z/=z/2,z+=z-=z*=z (设z=6)
由于小弟初学C语言,麻烦把具体步骤写下~

这个跟C的运算符优先级有关
具体的优先级顺序,请查阅相关书籍

(1)a+b%3*(int)(a-b)/4 (设a=13.6,b=8)
首先计算(a-b)=5.6
然后算(int)(a-b)=(int)5.6,也就是取整,结果为5
然后算b%3=8%3=2
然后算b%3*(int)(a-b)=2*5=10
然后算10/4=2
最后算a+2 = 13.6+2 = 15.6

(2)(x+y)/2=(int)x%(int)y (设x=4.5,y=2.5)
首先算x+y=7
然后算7/2=3
然后算(int)x=4
然后算(int)y=2
然后算(int)x%(int)y =0
然后把0赋给(x+y)/2

(3)z*=3+6,z/=z/2,z+=z-=z*=z (设z=6)
因为出现逗号运算符,所以整个式子最终的值,就是最后一个表达式的值

z*=3+6 先算3+6=9,在算z*=9 也就是z=z*9 ,z的值为54
z/=z/2 先算z/2=45/2=22,在算z/=22 也就是z=z/22 所以z=2
z+=z-=z*=z 先算z*=z ,z=4,在算z-=4 z=0 ,最后算z+=0 也就=0

最好是上机跑一下,就可以知道结果了