免費開始練習
高考申論題 105年 [資訊處理] 程式語言

第 一 題

📖 題組:
二、請觀察以下程式碼: class Smart{ public: explicit Smart(int *p = NULL) { sp = p; } ~Smart() { delete(sp); } int& operator*() { return *sp; } private: int *sp; }; int main(void){ Smart p(new int()); *p = 2016; cout << *p << endl; return 0; }
📝 此題為申論題,共 5 小題

小題 (一)

請問以下 C++程式碼輸出答案為何?(5 分)

思路引導 VIP

看到此題應立刻辨識出這是 C++ 中「智慧指標(Smart Pointer)」的簡易實作。解題關鍵在於追蹤動態記憶體的配置與生命週期,並理解多載解參考運算子 operator* 回傳參考(reference)的特性,使其能作為左值(L-value)被賦值與讀取。

🤖
AI 詳解
AI 專屬家教

【解題思路】分析 C++ 類別建構子、運算子多載(Operator Overloading)與動態記憶體配置的執行流程。 【詳解】

  1. 物件建構:Smart p(new int()); 執行時,配置了一塊存放整數的動態記憶體(預設初始化為 0),並將該指標傳入 Smart 的建構子,由私有成員指標 sp 接收並儲存。

小題 (二)

請問執行至 return 0 時,是否回收原分配給物件 p 之動態記憶體?(5 分)

思路引導 VIP

看到此題,應先辨識物件 p 是一個配置在堆疊(Stack)上的區域變數,而傳入的 new int() 則是配置在堆積(Heap)上的動態記憶體。接著聯想 C++ 的生命週期與 RAII 機制:當區域變數離開作用域時會發生什麼事(自動呼叫解構子),藉此推導出記憶體是否被釋放。

🤖
AI 詳解
AI 專屬家教

【解題關鍵】C++ 區域物件的生命週期與解構子(Destructor)的自動觸發機制。 【解析】 一、物件宣告與配置

小題 (三)

請說明此方法為解決何種問題?且程式概念為何?(10 分)

思路引導 VIP

看到自訂類別內部封裝指標,並在建構子賦值、解構子 delete,應立刻聯想到「智慧型指標 (Smart Pointer)」與「RAII」機制。答題時需切分兩部分:一是解決 C++ 手動管理記憶體易導致的 Memory Leak 問題;二是說明 RAII 與運算子多載的概念。

🤖
AI 詳解
AI 專屬家教

【破題】 此程式碼實作了基礎的「智慧型指標(Smart Pointer)」,旨在透過物件生命週期自動管理動態記憶體,核心概念為 RAII。 【論述】

小題 (四)

何謂 CNN(convolutional neural network)?

思路引導 VIP

看到 CNN,首先要點出其最擅長處理的資料類型(影像/網格資料)。接著必須精準寫出它的三大核心機制:卷積層(擷取局部特徵)、池化層(降維與特徵保留)、以及權重共享(大幅減少參數並避免過擬合),最後輔以 AlphaGo 或影像辨識的應用做結。

🤖
AI 詳解
AI 專屬家教

「CNN(卷積神經網路,Convolutional Neural Network)」是一種專門設計用來處理具有網格狀拓樸結構資料(如2D影像資料)的深度前饋神經網路。其核心特徵包含: (1) 卷積層(Convolutional Layer):利用多個濾波器(Filters/Kernels)在輸入資料上滑動並進行卷積運算,藉此有效擷取影像中的邊緣、形狀、紋理等局部空間特徵。 (2) 池化層(Pooling Layer):進行下採樣(Down-sampling,如最大池化 Max Pooling),用於縮小特徵圖的空間維度,大幅減少網路參數與運算量,同時賦予模型對微小平移的容忍性(平移不變性)。

小題 (五)

在深度學習裡,除了 C 以外,另一種常用的語言為 Python,請試述 Python 跟 C 有何差別?

思路引導 VIP

本題測驗核心程式語言特性之比較。考生應從語言層級的『執行方式(直譯 vs 編譯)』、『型別系統(動態 vs 靜態)』、『記憶體管理(自動 vs 手動)』,以及兩者在『深度學習生態系中的角色定位(膠水語言 vs 底層運算引擎)』切入作答,方能精準拿分。

🤖
AI 詳解
AI 專屬家教

【破題】 Python 與 C 分別代表高階直譯語言與底層編譯語言的典型,兩者在執行效率、開發速度與系統控制力上有著根本的差異。 【論述】

📝 同份考卷的其他題目

查看 105年[資訊處理] 程式語言 全題

升級 VIP 解鎖