C语言的简单问题~

来源:百度知道 编辑:UC知道 时间:2024/05/15 04:39:41
1、若有定义int x=3,y=2和float a=2.5,b=3.5,则表达式(x+y)%2+(int)a/(int)b的值是?
2、若有定义int a=12,n=5,则表达式a%=(n%2)运算后,a的值是?
3、若已定义int a,则表达式a=10,a+10,a++的值是?

这些题我都知道结果,就是不明白怎么计算,请给个计算思考的过程~谢了~
谢谢~

%是求余数的符号,5除以2等于2余1,所以5%2=1
========================================

1.x+y=5,再%2等于1
(int)a=2
(int)b=3
a/b=0
所以结果就是1了

2.a=a%(n%2)=a%1=0;任何数除以1所得的余数都是0

3.a=10:把a赋值为10
a+10:a的值再+10
a++:a的值自加1,例如a=10时,执行a++;后a就等于11

x+y=5
(x+y)%2=5%2=1
(int)a/(int)b = (int)(2.5)/(int)(3.5)=2/3=0
(x+y)%2+(int)a/(int)b=1+0=1
========================================
(n%2)=5%2=1
a%=(n%2) -> a=a%(n%2)=a%1=0
===================================
a=10
(a+10)=20
a++之后,a=11

1\(x+y)%2+(int)a/(int)b
先计算x+y =5 5%2=1
(int)a/(int)b=0 1+0 =1
2\a%=(n%2) 先计算右边 n%2=1 a%=1 <=>a=a%1 结果0

3\a=10,a+10,a++ <=>a=10;a+10;a++
逗号表示的值是最后一个表达时的值,并且从左倒右运算
所以a=11