// APCS 題單

APCS 2027/01/10 場考前題單

初級、中級各 15 題,由易到難,每題附練習重點和預估時間。題目都是 Aki-Judge 各系列的第一題,免費。

怎麼用

  • 點題名可以先看題目,不用登入。要送出程式,需要用 Discord 帳號登入 Aki-Judge,並加入註解 Annotated 的 Discord 伺服器(免費)。
  • 預估時間是給該級程度的考生、第一次寫、含除錯的粗估,不是考試配分。
  • 初級範圍是輸入輸出、運算、條件與迴圈;中級範圍是陣列、字元、字串(依 APCS 官網評量架構整理)。這一場開哪幾級題本、報名和考試日期,請以 APCS 官網 公告為準。
  • 卡住了到 Discord 的 #程式問題 發問,小墨助教會先給提示,不會直接給答案。

初級 15 題

#題目練什麼送出預估
1輸出問候語(Hello!)只輸出一行字,確認環境、換行、大小寫都對送出5 分
2及格判定(Pass or Fail)一個 if 加上 60 分這個邊界送出5 分
3兩個數的最大值(Maximum of Two)比較運算,包含兩數相等和負數送出5 分
4重複印出同一句話(A Thousand I Love You)讓迴圈剛好跑 N 次,不多不少送出5 分
5一次印完整張籤詩(One Print for the Fortune Slip)多行輸出格式;題目要求一個 print,用 Python 寫最順送出10 分
6公投勝方與總票數(National Referendum)比較加總和,一行輸出兩個值送出8 分
7攝氏轉華氏(Temperature Conversion)浮點運算、四捨五入到小數一位送出10 分
8民國年份是不是閏年(Leap Year in ROC Years)多重條件的判斷順序(400、100、4)送出10 分
9計算巢狀迴圈執行次數(Count Loop Iterations)三層迴圈跑幾次,識讀也常考這種推算送出10 分
10跨年倒數只喊部分秒數(New Year Countdown)迴圈裡同時套兩條規則送出15 分
11讀到結尾的整數總和(Sum of Integers)不知道有幾個數時,一直讀到 EOF送出15 分
12湊出金額的最少代幣數(Shaolin Tokens)除法和餘數、多組測資送出15 分
13印出考拉茲數列(Weird Algorithm)while 迴圈,以及中間值超過 int 範圍要用 64 位元送出15 分
14計算連續相同區段數(Count of Segments)多組測資讀到檔尾,邊讀邊和前一個比送出20 分
15成對數字的最大公因數(10110 - Light, more light)輾轉相除;q 最多 2×10⁵,輸入要讀得夠快送出20 分

初級合計約 2.5~3 小時。

中級 15 題

#題目練什麼送出預估
1ASCII 碼(ASCII Code)字元在電腦裡就是整數送出5 分
2反轉整數序列(Print the Sequence Backward)陣列存取,行尾不能有多餘空白送出10 分
3字元類型計數(Vowel, Consonant, and Digit)逐字元分類:數字、字母、母音、子音送出15 分
4依位置查詢排隊組別(Maokong Gondola Waiting List)正負索引、超出範圍的處理送出15 分
5排序後的費氏型數列(Sort a Linear Recurrence)先產生陣列再排序,數值會超過 int送出15 分
6整數排序與比較函式溢位(Comparator Warm-up)排序;C 的比較函式用相減會溢位送出15 分
7貼紙種類數(Distinct Numbers)排序後數相異值,n 到 2×10⁵送出15 分
8相異數值由小到大(Distinct Numbers)去除重複並排序輸出送出20 分
9遊程長度編碼(RLE Encode)字串分段計數,長度到 10⁶送出20 分
10暴力比對:第一次出現位置(Naive Pattern First)兩層迴圈做子字串比對送出20 分
11喵球社的貼文字體規則(The Meowball Caption Rule)依字母決定大小寫,其他字元原樣保留送出20 分
12兩段式甜度查詢(Sugar Level Lookup)用對照表查詢,處理查不到的情況送出20 分
13可有可無的 T 恤尺寸(Welcome-Party Shirt List)一行字串切成欄位,欄位數不固定送出25 分
14去掉行尾空白並替非空行編號(Sign-In Sheet, Tail Trimmed Only)逐行讀到檔尾,只刪行尾空白送出25 分
15把廣播稿壓成一行(Flatten the Announcement Script)多行字串處理,取代的先後順序會影響答案送出25 分

中級合計約 4.5 小時。第 4、11~15 題出自 Python 教材,題目敘述會提到 Python 寫法,用 C 也做得出來,只是字串處理比較麻煩;用 C 考的人可以先做 1~10 題。

四週進度

以 1/10 考試回推,從 12/14 開始算四週;提早開始就把每一週往前挪。

週日期主題要做的事時間
112/14~12/20識讀看官網題目範例的識讀部分;每天手追 2~3 段程式(迴圈次數、遞迴、陣列索引),先寫答案再上機驗證;把錯的整理成一頁錯題本約 4 小時
212/21~12/27初級初級 15 題全部做完。報中級的人當暖身,一天 3~4 題,重點是輸入輸出格式一次就對約 3 小時
312/28~1/03中級中級 15 題。報初級的人至少做 1~8 題,確認陣列和字元沒問題約 5 小時
41/04~1/09限時模擬識讀:30 題 90 分鐘,平均一題 3 分鐘,用官網範例題計時做一次。實作:3 題 120 分鐘,從題單裡挑 3 題錯過或做最久的題重寫,關掉提示計時。考前一天不寫新題,只看錯題本約 4 小時

想寫同類型的更多題目:各系列第二題以後需要訂閱,或是家教學生。每天 07:30 的每日一題上線 30 天內免費。

一起準備

題單的進度可以貼到 Discord 的 #學習打卡,卡住的題目到 #程式問題 問。