怎麼用
- 點題名可以先看題目,不用登入。要送出程式,需要用 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 題
| # | 題目 | 練什麼 | 送出 | 預估 |
|---|---|---|---|---|
| 1 | ASCII 碼(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 開始算四週;提早開始就把每一週往前挪。
| 週 | 日期 | 主題 | 要做的事 | 時間 |
|---|---|---|---|---|
| 1 | 12/14~12/20 | 識讀 | 看官網題目範例的識讀部分;每天手追 2~3 段程式(迴圈次數、遞迴、陣列索引),先寫答案再上機驗證;把錯的整理成一頁錯題本 | 約 4 小時 |
| 2 | 12/21~12/27 | 初級 | 初級 15 題全部做完。報中級的人當暖身,一天 3~4 題,重點是輸入輸出格式一次就對 | 約 3 小時 |
| 3 | 12/28~1/03 | 中級 | 中級 15 題。報初級的人至少做 1~8 題,確認陣列和字元沒問題 | 約 5 小時 |
| 4 | 1/04~1/09 | 限時模擬 | 識讀:30 題 90 分鐘,平均一題 3 分鐘,用官網範例題計時做一次。實作:3 題 120 分鐘,從題單裡挑 3 題錯過或做最久的題重寫,關掉提示計時。考前一天不寫新題,只看錯題本 | 約 4 小時 |
想寫同類型的更多題目:各系列第二題以後需要訂閱,或是家教學生。每天 07:30 的每日一題上線 30 天內免費。