地特四等申論題
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 函式分析:
▼ 還有更多解析內容