# APCS觀念題分析:程式基礎觀念
:::info
第一時間閱讀題目時,馬上確認要考的:
1. 單元知識
* `基本輸入與輸出`
* `資料型態與變數`
* `控制流程:迴圈`
* `控制流程:判斷條件`
* `C語言陣列`
* `函式與遞迴`
2. 題型
* 程式運行追蹤 (`code tracing`)
* 程式填空 (`code completion`)
* 程式除錯 (`code debugging`)
* 程式效能分析 (`code performance analysis`)
* 基礎觀念理解 (`basic concepts understanding`)
:::
## 105年3月試題
1.

`控制流程:迴圈` `code debugging`
:::success
修改第12行,改成m = 2*i + 1
:::
2.

`控制流程:迴圈` `code tracing`
3.

`控制流程:迴圈` `code tracing`
:::spoiler 參考解答
a[0] = 0
a[1] = b[1] + a[0] = 1
a[2] = b[2] + a[1] = 3
a[3] = b[3] + a[2] = 6
a[4] = b[4] + a[3] = 10
a[5] = b[5] + a[4] = 15
...
a[i] = i + a[i-1] = i + [(i-1) +a[i-2]] = ... = 1+2+3+...+i = ((1+i)* i) /2
所以,a[50]-a[30] =1225 - 425 = 810
:::
4.

`函式與遞迴` `code performance analysis`
5.

`函式與遞迴` `code tracing`
6.

> 不要看到費氏數列就以為是遞迴!
`控制流程:迴圈` `basic concepts understanding`
7.

`控制流程:迴圈` `C語言陣列`
`code tracing`
8.

`函式與遞迴` `code tracing`
9.

`控制流程:迴圈` `C語言陣列` `code completion`
10.

`函式與遞迴` `code tracing`
11.

`控制流程:迴圈` `code completion`
:::success
分析輾轉相除法,i帶入每回合被除數、j帶入每回合除數、k是每回合的餘數、以及把最後結果帶給j
:::
:::info
請自行練習實作輾轉相除法求最大公因數的程式
:::
12.

`函式與遞迴` `code tracing`
13.

`控制流程:判斷條件` `控制流程:迴圈` `code performance analysis`
14.

`控制流程:判斷條件` `code tracing`
15.

`控制流程:判斷條件` `控制流程:迴圈`
> 應該要在allBig = FALSE就跳出,不需要再做任何比較
16.

`C語言陣列`
17.

`函式與遞迴`
18.

`控制流程:迴圈`
19.

`控制流程:迴圈`
20.

`控制流程:迴圈`
21.

`函式與遞迴`
22.

`函式與遞迴`
> 這題是在考費氏數列的應用
## 105年10月試題
23.

`控制流程:迴圈` `C語言陣列`
24.

`控制流程:判斷條件`
25.

`函式與遞迴`
26.

`資料型態與變數`
> C語言跟Python `int`只取整數部分,不進位
```python=
a = 3.5
b = int(a)
print(b) #輸出 3
```
27.

`控制流程:迴圈` `C語言陣列`
28.

`函式與遞迴`
29.

`控制流程:迴圈`
```
前兩個迴圈總執行次數:n+(n-1)+(n-2)+...+1 = n*(n+1)/2
第三個迴圈執行n次
```
所以整個程式總執行次數為 n^2^(n+1)/2
30.

`控制流程:判斷條件`
31.

`函式與遞迴`
32.

`控制流程:判斷條件` `控制流程:迴圈` `C語言陣列`
33.

`控制流程:迴圈`
34.

`C語言陣列`
35.

`資料型態與變數`
36.

`控制流程:迴圈` `C語言陣列`
37.

> 指標不在目前考題範圍
- ptr1指向num的位址,則*ptr1 = num = 100
- ptr2指向ptr1的位址,則*ptr2 = ptr1,所以**ptr2 = num = 100
38.

`控制流程:迴圈`
39.

`函式與遞迴`
40.

`基本輸入與輸出`
41.

`函式與遞迴`
42.

`函式與遞迴`
43.

`控制流程:迴圈`
44.

`函式與遞迴`
45.

`函式與遞迴`
## 106年3月試題
46.

`函式與遞迴`
47.

`函式與遞迴`
48.

`函式與遞迴`
49.

`控制流程:判斷條件` `控制流程:迴圈`
50.

`控制流程:迴圈` `C語言陣列`
51.

`函式與遞迴`
52.

`函式與遞迴`
> 這題要考的是變數的scope
53.

`控制流程:迴圈` `C語言陣列`
54.

`函式與遞迴`
55.

`資料型態與變數`
56.

`資料型態與變數`
57.

`控制流程:迴圈`
58.

`函式與遞迴`
59.

`控制流程:迴圈`
60.

`控制流程:判斷條件`
61.

`控制流程:迴圈`
62.

`控制流程:迴圈` `控制流程:判斷條件`
63.

`控制流程:迴圈` `控制流程:判斷條件`
64.

`函式與遞迴`
65.

`函式與遞迴`
66.

`資料型態與變數`
67.

`資料型態與變數`
###### tags: `APCS檢定應試指南`