LONGEPASS
電腦軟體設計(C++)/C++/Q41
簡單
正確率 -
Q41.

C 語言陣列敘述,以下哪一個正確?

電腦軟體設計(C++) · 乙級 · C++ · Q41

難易度分析

2 / 5

本題主要考查 C 語言中標準輸入輸出函式的基本語法規則以及參數型別的匹配程度,屬於基礎的程式語言語法辨析。

正確答案:③puts("AAA BBB");

③ puts("AAA BBB");:puts() 函式用於將字串輸出至標準輸出裝置(stdout),並自動在末尾加上換行字元 (
)
。此敘述語法正確,能正常印出「AAA BBB」並換行。

錯誤選項解析

  • ① char a[10]; gets();:gets() 函式必須傳入一個字元陣列指標作為參數,此處未提供任何參數,屬於語法錯誤。此外,gets() 因存在緩衝區溢位風險,已在 C11 標準中被移除,實務上應改用 fgets()。
  • ② char a[1],b[2]; gets(a,b);:gets() 函式僅接受單一參數(字元陣列指標),此處傳入兩個參數 (a, b) 屬於函式呼叫錯誤。gets() 的設計僅能讀取單一輸入串流至指定緩衝區。
  • ④ char a[3]; scanf("%f", a);:scanf() 使用 %f 格式指定詞用於讀入 float 型別資料,但變數 a 宣告為 char 陣列,屬於型別不匹配錯誤。讀入字串應使用 %s 格式指定詞。
Learning Tip

"本題核心考點為 C 語言標準 I/O 函式的正確用法。常見陷阱包括:gets() 的參數數量與安全性問題(應改用 fgets())、scanf() 格式指定詞與變數型別的對應關係(%s 對應字串、%f 對應 float、%d 對應 int)。實務開發中,應優先使用具備緩衝區長度檢查的安全函式,避免緩衝區溢位漏洞。"

學員答題分佈

①char a[10]; gets();0%
②char a[1],b[2]; gets(a,b);0%
③puts("AAA BBB");0%
④char a[3]; scanf("%f", a);0%

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

相似類型題目