71. 以下程序的運行結(jié)果是( )。void main(){int n='c';switch(n++){default: printf("error "); break;case 'a':case 'b': printf("good "); break;case 'c': printf("pass ");case 'd': printf("warn ");}}A. passB. warnC. pass warnD. errorswitch里面那個表達式我不懂怎么看,求大神幫我分析一下整個過程,拜托,緊急?。?!
2 回答
已采納

onemoo
TA貢獻883條經(jīng)驗 獲得超454個贊
答案是 C
n++ 是后置自增表達式,表達式的值就是操作數(shù)(這里是 n)自增前的值。
n 的初值相當于是 'c',那么 n++ 表達式的值也是相當于 'c'。這樣會匹配到 case 'c',程序執(zhí)行流程從這個 case 開始向下執(zhí)行,先打印出 pass,由于后面沒有 break 語句,所以會繼續(xù)執(zhí)行后面的語句,打印出 warn。

King丶賓
TA貢獻3條經(jīng)驗 獲得超0個贊
C? ?實際測試過,因為你這里是將一個c字符賦值給一個整型變量,n此時的值是小寫c的ascii值,然后這里n++是屬于后增,所以可以先判斷在考慮增加的問題,所以在case的時候,判斷n的ascii碼對應(yīng)的字符是c,所以就輸出pass,然后由于這一行的case沒有break,所以連著case:'d'的warn也一起輸出出來了,
- 2 回答
- 0 關(guān)注
- 944 瀏覽
添加回答
舉報
0/150
提交
取消