第九道,怎么解析这答案

img

首先要记得true为1 | false为0

a>0 所以返回的是true是1,但为什么会出现#呢

case 1:
    switch (b<0) {
         case 1:
              printf("@”)
              break;
         case 2:
              printf("!”)
              break;
    }          
case 0:

仔细看!

case 1 完了后没有加上break操作,所以他执行了case 0
下面因为c==5 所以返回为true,执行case 1操作,输出 #

default是默认操作,任何条件都执行

#&