Q53.
執行下列C 語言程式,其輸出結果為何?
數位電子 · 甲級 · 程式語言 · Q53
難易度分析
2 / 5
單選題,重點在於辨識陣列名即為位址,且使用 == 會比較地址而非字串內容。題目無額外隱藏條件或計算,僅測試基礎語法正確性。
正確答案:①無任何輸出
① 無任何輸出:程式中 `s` 與 `t` 為兩個獨立的字元陣列,使用 `==` 比較的是記憶體位址而非字串內容。由於兩者位址不同,條件判斷為 `false`,`printf` 不會執行,因此無任何輸出。
錯誤選項解析
- ② eqaul strings:若要比較字串內容是否相同,應使用 `strcmp()` 函數而非 `==` 運算子。此處比較的是陣列位址,故不會印出此結果。
- ③ uneqaul strings:程式碼中並無 `else` 分支來印出此訊息,且即使條件為 `false` 也不會自動輸出任何內容。
- ④ 執行錯誤:此程式語法正確,可正常編譯與執行,僅是邏輯上不會產生輸出,並非執行錯誤。
Learning Tip
"此題核心考點為 C 語言中字串比較的正確方式。常見陷阱是混淆 `==`(比較位址)與 `strcmp()`(比較內容)。實務上,陣列名稱代表陣列起始位址,兩個獨立宣告的陣列即使內容相同,位址也不同。應牢記:比較字串內容務必使用 `strcmp()`,回傳 `0` 表示內容相同。"
學員答題分佈
①無任何輸出0%
②eqaul strings0%
③uneqaul strings0%
④執行錯誤0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!