免費開始練習
普考申論題 114年 [資訊處理] 程式設計概要

第 三 題

📖 題組:
依據以下 C#程式碼,回答下列問題: 1 using System; 2 namespace CSP4 3 { 4 class Program 5 { 6 static bool CSP4_1(int x) 7 { 8 if (x < 0) return false; 9 int L = 0, R = x; 10 while (L <= R) 11 { 12 int M = L + (R - L) / 2; 13 long S = (long)M * M; 14 if (S == x) return true; 15 else if (S < x) L = M + 1; 16 else R = M - 1; 17 } 18 return false; 19 } 20 static long CSP4_2(int n) 21 { 22 if (n <= 1) return n; 23 long a = 0, b = 1; 24 for (int i = 2; i <= n; i++) 25 { 26 long temp = a + b; 27 a = b; 28 b = temp; 29 } 30 return b; 31 } 32 static void Main() 33 { 34 int[] arrays = { 9, 10, -4 }; 35 foreach (var n in arrays) 36 { 37 Console.WriteLine($"{n} is CSP4_1? {CSP4_1(n)}"); 38 Console.WriteLine($"CSP4_2({n}) = {CSP4_2(n)}"); 39 } 40 } 41 } 42 }
📝 此題為申論題,共 3 小題

小題 (三)

此程式輸出結果為何?(8 分)

思路引導 VIP

看到此題應先獨立分析 CSP4_1CSP4_2 兩個函式的運作邏輯(分別為判斷完全平方數的二分搜尋法、計算費波那契數列的迭代法)。接著將陣列 {9, 10, -4} 依序代入手動追蹤,並特別注意 C# 中布林值輸出為字串時首字為大寫的特性(True / False)。

🤖
AI 詳解
AI 專屬家教

【解題思路】先釐清兩函式的演算法意義:CSP4_1 為判斷數字是否為完全平方數,CSP4_2 為計算費氏數列(Fibonacci Sequence)的第 n 項,接著逐一帶入陣列元素追蹤程式碼。 【詳解】 已知測試陣列為 arrays = { 9, 10, -4 },程式會用 foreach 依序帶入計算:

小題 (一)

6~19 行程式碼功能(9 分)

思路引導 VIP

看到 L、R 變數與 while (L <= R) 搭配中點 M 的結構,應立刻聯想到「二元搜尋法 (Binary Search)」。接著觀察核心判斷式 S = M * Mx 的比較,即可推敲出此函式旨在尋找某整數的平方是否等於 x,亦即判斷 x 是否為完全平方數。

🤖
AI 詳解
AI 專屬家教

【破題】 第 6~19 行(CSP4_1 函式)的核心功能為「判斷輸入的整數 x 是否為完全平方數 (Perfect Square)」。 【論述】

小題 (二)

20~31 行程式碼功能(8 分)

思路引導 VIP

先觀察迴圈內的變數替換邏輯:temp = a + b; a = b; b = temp;,這是典型的「將前兩項相加產生下一項」的特徵。接著結合初始條件 a = 0, b = 1,即可輕易辨識出此為計算費氏數列(Fibonacci sequence)的迭代解法。

🤖
AI 詳解
AI 專屬家教

【解答】 第 20~31 行程式碼(CSP4_2 函式)的功能為:計算並回傳第 n 個費氏數列(Fibonacci sequence)的數值。 【詳細解析】

🏷️ 相關主題

程式設計基礎概念與實作演練
查看更多「[資訊處理] 程式設計概要」的主題分類考古題