LONGEPASS
數位電子/程式語言/Q52
中等
正確率 -
Q52.

執行下列C 語言程式,其輸出結果為何?數位電子 甲級 程式語言 第 52 題 題目 圖片

數位電子 · 甲級 · 程式語言 · Q52

難易度分析

3 / 5

題目要求推斷程式輸出,核心在於理解 if 之後若直接接分號,該分號為空敘述,後續語句不受此條件控制。此陷阱需注意條件式與分號之關係,屬於中等難度的典型測驗題。

正確答案:④HelloHi

④ HelloHi:正確。`x=5` 使外層 `if(x==5)` 成立進入區塊;內層 `if(x!=5);` 因條件為假且帶有尾隨分號成為空敘述,不影響後續 `printf("Hello")` 的執行;最後 `printf("Hi")` 必然執行,故輸出為 "HelloHi"。

錯誤選項解析

  • ① 編譯錯誤:此程式語法正確,if 條件式後接分號是合法的空敘述(null statement),不會造成編譯錯誤。
  • ② Hi:僅輸出 "Hi" 是錯誤的。因為外層 `if(x==5)` 成立後,內層 `if(x!=5);` 的分號使其成為空敘述,其後的 `printf("Hello")` 不受內層 if 控制而必然執行,故會先印出 "Hello" 再印出 "Hi"。
  • ③ Hello:僅輸出 "Hello" 是錯誤的。第 8 行的 `printf("Hi")` 位於外層 if 區塊之外,屬於獨立敘述,無論條件如何都會執行。
Learning Tip

"此題核心考點為 if 敘述後的分號陷阱。當 `if(條件);` 帶有分號時,該分號即為 if 的空本體,其後的大括號或敘述將不再受該 if 控制。實務上應避免在 if 條件後誤加分號,以免造成邏輯流程偏離預期。另外需注意 `==`(比較)與 `=`(賦值)的區別,此題 `x==5` 為正確的比較運算。"

學員答題分佈

①編譯錯誤0%
②Hi0%
③Hello0%
④HelloHi0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目