c语言除法还有取整运算

图片

修正下,最后一个是-8,这个不是未定义行为,如果是a-=a+++1则是未定义行为
http://codepad.org/OzIcMgvc
-1
0
1
-8

1.B -10对-3取余,余-1
2.D a/b=3,3%-3取余,为0
3.D -a=10,10%-3取余,余1
4.C b+++1为-3+1=-2,然后a=a-(-2)=-10+2=-8

http://codepad.org/YoT2vlkg
gcc 5.1上机运行结果
-1
0
1
-1

需要特别指出,最后一个问题的答案是不确定的,不同的编译器可以得到不同结果,因为它属于C语言的未定义行为。