統測
115年
[電機與電子群資電類] 專業科目(2)
第 42 題
下列 C語言程式執行後的輸出結果為何?
1 #include <stdio.h>
2 void main(void){
3 char String[16]="A1(2ABC*.BAA3CB";
4 int i=0, c_A=0, c_B=0, c_C=0, c_digi=0, c_sym=0;
5 while(String[i] != '\0'){
6 switch(String[i]){
7 case 'A':
8 c_A++; break;
9 case 'B':
10 c_B++; break;
11 case '1': case '2': case '3':
12 c_digi++; break;
13 default:
14 c_sym++; }
15 i++; }
16 printf("%d,%d,%d,%d,%d",c_A,c_B,c_C,c_digi,c_sym); }
1 #include <stdio.h>
2 void main(void){
3 char String[16]="A1(2ABC*.BAA3CB";
4 int i=0, c_A=0, c_B=0, c_C=0, c_digi=0, c_sym=0;
5 while(String[i] != '\0'){
6 switch(String[i]){
7 case 'A':
8 c_A++; break;
9 case 'B':
10 c_B++; break;
11 case '1': case '2': case '3':
12 c_digi++; break;
13 default:
14 c_sym++; }
15 i++; }
16 printf("%d,%d,%d,%d,%d",c_A,c_B,c_C,c_digi,c_sym); }
- A 4,3,2,3,3
- B 4,3,0,3,5
- C 4,3,0,3,3
- D 4,3,3,3,2
思路引導 VIP
請仔細檢查程式中的 switch 結構,字串中的每一個字元是否都能找到對應的 case 標籤?若遇到沒有定義的字元時,程式會執行哪一個區塊?
🤖
AI 詳解
AI 專屬家教
寫程式別用腦補!看清楚程式碼再說話
恭喜你矇對了。但別高興得太早,這題考的不是程式,是你的「細心度」。很多考生死就死在這種自以為是的腦補,看到 case 'C' 就自動幫程式碼補上去,這在考場上就是送分給別人!
1. 關鍵陷阱:switch-case 分支不完整
▼ 還有更多解析內容