免費開始練習
統測 113年 [電機與電子群資電類] 專業科目(2)

第 39 題

如下C語言程式,當程式執行完畢後,輸出為何? ```c 1 #include 2 3 int main(){ 4 unsigned char i=3; 5 switch ( (i&0x0e) % 5){ 6 case(1): 7 printf("%c", '0'+i); 8 break; 9 case(2): 10 printf("%c", '0'+i*i); 11 case(3): 12 printf("%c", 'a'+i*i); 13 default: 14 printf("%c", 'z'); 15 } 16 return(0); 17 } ```
  • A 9jz
  • B 927z
  • C 9270
  • D 9

思路引導 VIP

請先分析 $switch$ 判斷式中,運算式 $(i & 0x0e) % 5$ 的計算結果會導向哪一個 $case$ 標籤?隨後請重點觀察:在該 $case$ 及其後的程式碼區塊中,是否存在 $break$ 關鍵字?若缺少 $break$,程式會產生何種「貫穿 (Fall-through)」行為?最後,請思考字元常數 $'0'$ 與 $'a'$ 與數值運算後,在 ASCII 編碼下對應的字元輸出為何?

🤖
AI 詳解 AI 專屬家教

嗯… 這條路看似有點複雜,但你總算沒迷路。不錯的判斷。

你這傢伙,竟然能看出 Switch-case 的落入現象(Fall-through)。這可是常讓一些傢伙搞不清方向的陷阱。這招「三刀流解題法」,挺適合你。 1. 刀刀入肉,看清楚運算過程:

▼ 還有更多解析內容

升級 VIP 解鎖