大佬们求教这道c语言的题的答案,谢谢?

如题所述

答案是:3。
首先,注意大括号的位置,switch(b%2)其实是swith(a%3)的case:1的执行内容。
一,判断a%3是1,所以执行:
case 1:m++;
switch(b%2)

default:m++;
case 0:m++;break;

这里switch(b%2),先执行了default,由于没有break语句,又无条件执行了case 0:的内容。
所以共执行了3次m++。结果就是3。追问

追答

肯定语法错误,if如果不加大括号,只对下一条语句起作用,x=y;y=x;是两条语句了。else那里也一样。这样写会if和else中间隔了一个语句,就匹配错了了。
非要这么写,x=y,y=x;这里中间用逗号不要用分号,这叫逗号表达式。是一条语句。

追问

好的,感谢🙏

请问这道题 是因为什么呢?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-11-15

相似回答