C语言选择题第八题求解

第八题的A选项和B选项哪个是正确的?为什么?

其实A、B都正确,012以0开头,默认是八进制数,如果int a=012,那么a就是10,编译器也不会报错。
不过B一定正确。A、B择其优,选B。追问

这道题有没有可能是出错了弄了两个正确答案?

追答

出题不严谨,是有可能的。或者没有表达出出题者真正想表达的意思。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-27
两个定义都是对的,但是A输出的是10,而不是12,所以B是最佳选项,因为B输出是-20,也就是常量能正确输出
第2个回答  2019-08-27
c 语言规定非 0 即真(实际上很多语言都这样)。
!x 假。 y是真。y--是后 --,本次y应该算1。0||1 为真
本次应该是真,我觉得应该是 1