若有以下定义,则能使值为3的表达式是 int k=7,x=12;A、x%=(k%=5) B、x%=(k-k%5) C、x%=k-k%5 D、(x%=k)-(k%=5)

问题描述:

若有以下定义,则能使值为3的表达式是 int k=7,x=12;
A、x%=(k%=5) B、x%=(k-k%5) C、x%=k-k%5 D、(x%=k)-(k%=5)

答案为D;
解释:先计算x%=k,即x=x%k =〉x=12%7=5;
再计算k%=5,即k=k%5 =〉k=7%5 =2;
两者相减为3;
A的结果为0;先计算k%=5,即k=k%5 =〉k=7%5=2;
在计算x%=k,即x=x%k =〉x=12%2=0;
B的结果为2;先计算k-k%5 “%”的优先级比“-”的优先级
高,所以结果为5;
再进行x%=5,结果为2;
C的结果为2,执行过程和B相同.