民國110年 第2梯次 電腦軟體設計(C++)乙級 學科

第29題

函數f1 之第一個參數的資料結構為陣列in t pages[10][30];,下列有關二維陣列在函數f1 之宣告 方式,何者是正確?

題目

函數f1 之第一個參數的資料結構為陣列in t pages[10][30];,下列有關二維陣列在函數f1 之宣告 方式,何者是正確?

  1. (1) void f1(int& pages, int size);
  2. (2) void f1(int pages[][], int size);
  3. (3) void f1(int pages[10][], int size);
  4. (4) void f1(int pages[][30], int size);

官方答案

(4) void f1(int pages[][30], int size);

解析

C++ 將二維陣列傳入函式時,陣列會退化為指標,第一維大小可省略,但第二維(及其後各維)的大小必須明確寫出,編譯器才能得知每列元素數以計算列的位移。故正確宣告為 void f1(int pages[][30], int size);。選項 1 用 int& 為單一整數參考,型別不符;選項 2 兩維皆省略,缺第二維而錯誤;選項 3 雖給第一維 10 但仍省略第二維,同樣無法編譯。僅選項 4 符合語法規定。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料