LONGEPASS
數位電子/程式語言/Q71
困難
正確率 -
Q71.

下列為C 語言程式片段,當變數v 之數值為0×100(表示為v=0×100),下列何者正確?數位電子 甲級 程式語言 第 71 題 題目 圖片

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

難易度分析

4 / 5

題目需辨識陣列名即起始位址,並分辨「位址」與「數值」的差異;此外還要掌握指標雙重解參考的結果,這些概念共同構成較高的思考負擔。

正確答案 (複選):③, ④

  • ③ &v[0][0]= 0×100:&v[0][0] 表示取二維陣列第一個元素的「記憶體位址」。在 C 語言中,二維陣列名稱 v 本身即代表陣列起始位址,因此 &v[0][0] 等於 v 的值,即 0x100。
  • ④ **v=1:\*\*v 表示對指標 v 進行兩次解參考運算。第一次 \*v 取得第一列的位址,第二次 \*\*v 取得該列第一個元素的數值。若該位置儲存的值為 1,則 \*\*v=1 為正確敘述。

錯誤選項解析

  • ① v[0][0]= 0×100:v[0][0] 表示取二維陣列第一個元素的「數值」,而非位址。當 v=0x100 為陣列起始位址時,v[0][0] 會回應該記憶體位置所儲存的內容值,並非 0x100 本身。
  • ② *v[0][0]= 0×100:\*v[0][0] 的語法在 C 語言中不合法或會導致編譯錯誤,因為 v[0][0] 已解參考至純量值(如 int),對純量值再次進行 \* 解參考運算會產生型別不相容的錯誤。
Learning Tip

"本題核心考點為 C 語言二維陣列與指標的關係。關鍵觀念:陣列名稱 代表起始位址,&v[0][0] 等同於 v,而 \*\*v 則是對該位址進行兩次解參考以取得實際儲存的數值。常考陷阱為混淆「位址」與「數值」的概念,務必釐清 &(取位址)與 \*(解參考)運算子的差異。實務上,指標運算在嵌入式系統與記憶體操作中極為重要,需熟練掌握各運算子的優先順序與結果型別。"

學員答題分佈

①v[0][0]= 0×1000%
②*v[0][0]= 0×1000%
③&v[0][0]= 0×1000%
④**v=10%

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

相似類型題目