想學好APCS?這篇可不能錯過!(觀念題篇)

想學好APCS?這篇可不能錯過!(觀念題篇)


要如何準備APCS的考試?該把握哪個程式語言?今天的解析千萬別錯過!

第一次考 APCS 程式語言,從哪個程式語言下手才會事半功倍呢?

若一開始就選到一個好上手、測驗時又好作答的程式語言,減少準備時間和學習負擔就是當然的啦,且勢在必行!本篇文章將以三款詢問度較高的應考語言 C , Java , Python 來做解析、比較,錯過就不再啦~

此篇你將了解...
  1. 1. APCS 檢測的規範與基礎
  2. 2. C , Java , Python - 哪個語言適合解題?
先來了解一下檢測內容的基礎概念,APCS 的兩大題組 【觀念題】與【實作題】

 

程式設計觀念題

- 題型:單選題 (含題組),以運算思維、問題解決與程式設計概念測試為主。
- 檢測與計分方式:分兩節次檢測 (單節測驗時間60分鐘), 檢測分數為合併計分,滿分100分

觀念題例題#1

1. 右側程式碼,執行時的輸出為何?
  1. (A) 0 2 4 6 8 10
  2. (B) 0 1 2 3 4 5 6 7 8 9 10
  3. (C) 0 1 3 5 7 9
  4. (D) 0 1 3 5 7 9 11
void main() {
    for (int i=0; i<=10; i=i+1) {
        printf ("%d ", i);
        i = i + 1;
    }
    printf ("\n");
}
(出自 105 年 3 月 5 日,理論題第 15 題)

這一題主要要測驗的內容,是考驗考生是否了解 C 語言當中, for 迴圈的結構。
以 for 迴圈來說,三的區段的值分別是初始值、條件值、運算值。
在這一題當中,第一次執行的時候 i 為 0 ,所以會先印出 0。
接下來,由於第四行 i=i+1 的關係, i 會變為 1 。但是執行迴圈時,回到了 for 的第三部分,這時候,還是另外一次的 i=i+1 ,所以 i 變為 2,然後進行驗證, i <= 10
根據這樣的執行邏輯, i 每印出一個就會 +2 一次,直到 i 超過 10 之後跳出迴圈。
Ans:所以會印出「0 2 4 6 8 10」

觀念題例題#2

2. 若以 f(22)呼叫右側 f()函式,
總共會印出多少數字?
  1. (A) 26
  2. (B) 22
  3. (C) 11
  4. (D) 15
void f(int n) {
    printf ("%d\n", n);
    while (n != 1) {
        if ((n%2)==1) {
            n = 3*n + 1;
        }
        else {
            n = n / 2;
        }
        printf ("%d\n", n);
    }
}
(出自 105 年 3 月 5 日,理論題第 21 題)

本題所考內容,是對於 while 與 if 的熟悉度。
傳入 22 進 function 之後,會先印出 22。
接下來進入 while 迴圈,如果 n 不是 1 ,那麼這個迴圈會一直執行。
while 當中, 如果 n 是奇數,則 n 會變成 3xn+1 ,如果 n 是偶數,那 n 會變成原來的一半。
所以整個流程會是「22➔11➔34➔17➔52➔26➔13➔40➔20➔10➔5➔16➔8➔4➔2➔1」。
Ans:所以答案是 16 個。




本篇為上篇,下篇請點此連結





相關文章:

想學好APCS?這篇可不能錯過!(實作篇)

考取APCS認證真那麼實用嗎?答案都在這!(下)

零基礎的你不敢想像進階Python嗎?用這篇卸下你的心防!

從哆啦A夢到 iPhone...為何 UI 設計用「圓角」就是比較討喜?

APCS 程式檢定,該從 C、Java 還是 Python 下手?

【前端工程師CSS教學】float浮動屬性

AI人工智慧救地球!Google:AI 保護環境還比人類快 3000 倍

這個網誌中的熱門文章

Python控制結構一點就通!(5)while迴圈

前端工程師絕不能搞錯的CSS中:逗號.空格的差別!

網頁前端CSS必學兩屬性:display與visible