免費開始練習
地特四等申論題 109年 [資訊處理] 程式設計概要

第 一 題

一、下列 C 程式的執行結果為何?(15分) #include #include #define X 3 #define Y 4 void funA(int *, int, int), funB(int *, int, int); int main(void){ int arr[X][Y] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}}; printf("輸出1:\n"); funA(*arr,X,Y); funB(*arr,X,Y); printf("輸出2:\n"); funA(*arr,X,Y); system("pause"); return 0; } void funA(int *ptr,int x,int y){ int i,j; for (i=0;i
📝 此題為申論題

思路引導 VIP

面對此類指標與陣列混合題型,應首先了解二維陣列在記憶體中為連續的一維配置。接著分析函式參數傳遞時 *arr 退化為一維指標的意義,並仔細追蹤 funB 中索引映射 [x-i-1][y-j-1] 所產生的陣列反轉(旋轉180度)效果。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】掌握二維陣列在記憶體中的連續配置特性,以及一維指標偏移量 *(ptr+i*y+j) 與二維陣列索引的轉換對應關係。 【詳解】 一、初始狀態與 funA 函式分析:

▼ 還有更多解析內容

升級 VIP 解鎖