地特四等申論題
111年
[資訊處理] 程式設計概要
第 三 題
針對以下 C 程式,其輸出為下列表格,說明 compress 函式的功能,並完
成程式碼(I)、(II)、(III)、(IV),使之執行正確。(25 分)
程式輸出
2 4
6 5
2 4 6
6 5 4
1 4 8
3 5
4 6
#include
#define SIZE 10
int op(int data[][SIZE], int x, int y, int n) {
int value = 0;
for (int i = x; i < x+n; i++)
for (int j = y; j < y+n; j++)
value = value + data[i][j];
return value/(n*n);
}
void print(int target[][SIZE], int size) {
for (int x = 0; x < size; x++) {
for (int y = 0; y < size; y++)
printf("%d ", target[x][y]);
printf("\n");
}
}
void compress(int data[][SIZE], int (I) [][SIZE],
int size, int n) {
int cSize = (II) ;
for (int x=0; x< cSize; x++)
for (int y=0; y
📝 此題為申論題
思路引導 VIP
本題主要測驗陣列操作與函式呼叫的理解。解題時請先從 main 函式的呼叫與程式輸出結果反推,觀察 compress 與 op 的數學關係,即可得知這是在實作「二維陣列的區塊平均(Average Pooling)」。接著透過變數名稱與上下文(如宣告、迴圈索引),就能精準填出對應的語法與變數。
🤖
AI 詳解
AI 專屬家教
【破題】
本題測驗二維陣列的參數傳遞、迴圈控制以及模組化函式呼叫。透過分析 op 函式的邏輯與 main 中的呼叫,可知這是一個實作「矩陣區塊平均壓縮(Average Pooling)」的程式。
【論述】
▼ 還有更多解析內容