因为i=3;进入switch(i)后,执行a+=3;后a的值是3;因为没有break语句,它并没退出switch()语句,所以又执行到a+=2。a值变成了5。接着,执行break语句,退出switch(),执行printf()。所以选B
case 3和case 1后面都没有用break,所以不会跳出switch而是继续执行,所以case 3 a+=3,case 1,case 2 a+=2.然后break,结果为5