C语言,求这四个表达式的值

2025-03-20 11:58:11
推荐回答(2个)
回答(1):

int k = 9, x = 14;
x %= (k %= 5)
x %= (k - k % 5)
x %= k - k % 5
(x %= k) - (k %= 5)

第2行的x %= (k %= 5) 这里的 %= 是运算符的一种叫复合赋值运算符你可以这么认为此表达式等价于
x = x % (k %= 5) 变形后 ()运算符的优先级最高 所以先算k %= 5 这个也是个复合运算符
再次变形
k = k % 5 结果是:4 
x = x % 4 
x = 14 % 4 
x = 2
第2行等于2

第2行的x %= (k - k % 5) 等价于
x = x % (k - k % 5) 变形后 ()运算符的优先级最高 所以先算k - k % 5 等于14-14%5由于%运
算符此时优先级别先算14%5得4
等于14-4等10  
等于x = x % 10
x = 14 - 10
x = 4
第2个等于4
k = k % 5 结果是:4 
x = x % 4 
x = 14 % 4 
x = 2
第2行等于2

第3行的x %= k - k % 5 变形后 x =x  %  k - k % 5 由于%运算符的优先级最高(由于表达式里面出现了2个%运算符此时需要根据运算符的结合性来判断哪个%先运算(由于%是算数运算符号(算术运算符的结合方向为“从左至右”))) 所以先算x  %  k  

=14 % 9

=5

 x =5 - k % 5

x = 5 - 14 % 5 先算14 % 5

x = 5 - 4

x = 1

第3个等于1

第4行的(x %= k) - (k %= 5) 变形后 (x = x % k) - (k = k % 5)由于此时()运算符的优先级最高再根据()运算符的结合性 所以先算x = x % k

x = x % k

x = 14 % 9

x = 5

5 - (k = k % 5)

k = k % 5

k=4

5-4

=1

第4个等于1


以上就是考察你的运算符的优先级别和运算符的结合性 



回答(2):

第一个 2
第一个 4
第一个 1
第一个 1