You are on page 1of 15

 

試卷編號:PY3-7004

Python 全國大專校院程式設計競賽
試卷
【競賽說明與注意事項】
一、本競賽為操作題,所需總時間為 100 分鐘,時間結束前需完成所有競賽動作。

二、試題共十二大題,第一題至第三題每題 10 分、第四題 20 分、第五題至第十題


每題 10 分、第十一題至第十二題每題 20 分,總計 150 分。

三、試題所需的檔案皆於 C:\ANS.CSF\各指定資料夾內讀取。題目存檔方式,請依
題目指示儲存於 C:\ANS.CSF\各指定資料夾,測驗結束前必須自行存檔,並關
閉開發環境,檔案名稱錯誤或未自行存檔者,均不予計分。

四、本項考試禁止使用外部套件,否則該題不予計分。

五、輸入與輸出的格式必須完全相同,每一行字、空白都要一樣,特別注意輸出後
有無空白與換行。

六、注意全型、半型字元、英文字母大小寫、小數點的位數是否與題目的要求相
同。

七、每一題於測驗時間內可進行重複送評。請提交程式碼檔案,而非執行檔或執行
的結果。請注意提交的檔案是否適用該題目 (請檢查有無交錯題目)。

八、每一題至少有 1 組評分測試資料顯示於題目中,且至少有 1 組隱藏的評分測試


資料。

九、題目如有需要進行檔案讀寫,在本機撰寫程式碼自行測試時,程式開啟檔案或
寫入檔案的路徑,是依據您電腦中 Python 的啟動位置。在提交評分時,程式
所開啟或寫入的檔案,必須與程式碼檔在同一層,例:file = open("write.txt")
 

壹、操作題 100%(第一題至第三題每題 10 分、第四題 20 分、第五題至第十題


每題 10 分、第十一題至第十二題每題 20 分)

 
 

一、字串格式化輸出
1. 題目說明:
請開啟 PYD01.py 檔案,依下列題意進行作答,輸入單字及進行格式化輸出,
使輸出值符合題意要求。請另存新檔為 PYA01.py,作答完成請儲存所有檔案
至 C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 請撰寫一程式,輸入四個單字,然後將這四個單字以欄寬為 10、欄與欄
間隔一個空白字元、每列印兩個的方式,先列印向右靠齊,再列印向左靠
齊,左右皆以直線 |(Vertical bar)作為邊界。
3. 輸入輸出:
(1) 輸入說明
四個單字
(2) 輸出說明
格式化輸出
(3) 範例輸入

範例輸出 ( 為半形空格)

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 1 頁 / 共 14 頁] PY3-7004
 

二、閏年判斷
1. 題目說明:
請開啟 PYD02.py 檔案,依下列題意進行作答,判斷輸入值是否為閏年,使輸
出值符合題意要求。請另存新檔為 PYA02.py,作答完成請儲存所有檔案至
C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 請使用選擇敘述撰寫一程式,讓使用者輸入一個西元年份,然後判斷它是
否為閏年(leap year)或平年。其判斷規則為:每四年一閏,每百年不閏,
但每四百年也一閏。
3. 輸入輸出:
(1) 輸入說明
一個正整數
(2) 輸出說明
判斷是否為閏年或平年
(3) 範例輸入

範例輸出( 為半形空格)

(4) 範例輸入

範例輸出( 為半形空格)

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 2 頁 / 共 14 頁] PY3-7004
 

三、迴圈數值相乘
1. 題目說明:
請開啟 PYD03.py 檔案,依下列題意進行作答,依輸入值以三角形的方式輸出
此數相乘結果,使輸出值符合題意要求。請另存新檔為 PYA03.py,作答完成
請儲存所有檔案至 C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 請使用迴圈敘述撰寫一程式,讓使用者輸入一個正整數(<100) ,然後以
三角形的方式依序輸出此數的階乘結果。
* 提示:輸出欄寬為 4,且需靠右對齊。
3. 輸入輸出:
(1) 輸入說明
一個正整數(<100)
(2) 輸出說明
以三角形的方式依序輸出此數的階乘結果
(3) 範例輸入

範例輸出( 為半形空格)

(4) 範例輸入

範例輸出( 為半形空格)

Python 3 [第 3 頁 / 共 14 頁] PY3-7004
 

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 4 頁 / 共 14 頁] PY3-7004
 

四、倍數總和計算
1. 題目說明:
請開啟 PYD04.py 檔案,依下列題意進行作答,使輸出值符合題意要求。請另
存新檔為 PYA04.py,作答完成請儲存所有檔案至 C:\ANS.CSF 原資料夾內,
再進行評分。
2. 設計說明:
(1) 請撰寫一程式,讓使用者輸入兩個正整數 a、b(a<=b) ,輸出從 a 到 b(包
含 a 和 b)之間 4 或 9 之倍數(一列輸出十個數字、欄寬為 4、靠左對齊)
以及倍數之個數、總和。
3. 輸入輸出:
(1) 輸入說明
兩個正整數 a、b(a<=b)
(2) 輸出說明
格式化輸出兩個正整數之間 4 或 9 之倍數(包含 a 和 b)
倍數個數
倍數總合
(3) 範例輸入

範例輸出( 為半形空格)

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 20
總 分 20

Python 3 [第 5 頁 / 共 14 頁] PY3-7004
 

五、連加計算
1. 題目說明:
請開啟 PYD05.py 檔案,依下列題意進行作答,依使用者輸入的整數作為參數
傳遞進行連加,使輸出值符合題意要求。請另存新檔為 PYA05.py,作答完成
請儲存所有檔案至 C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 請撰寫一程式,讓使用者輸入兩個整數,接著呼叫函式 compute(),此函
式接收兩個參數 a、b,並回傳從 a 連加到 b 的和。
3. 輸入輸出:
(1) 輸入說明
兩個整數
(2) 輸出說明
從 a 連加到 b 的和
(3) 範例輸入

範例輸出

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 6 頁 / 共 14 頁] PY3-7004
 

六、數字排序
1. 題目說明:
請開啟 PYD06.py 檔案,依下列題意進行作答,顯示最大的三個數字,使輸出
值符合題意要求。請另存新檔為 PYA06.py,作答完成請儲存所有檔案至
C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 請撰寫一程式,要求使用者輸入十個數字並存放在串列中。接著由大到小
的順序顯示最大的 3 個數字。
3. 輸入輸出:
(1) 輸入說明
十個數字
(2) 輸出說明
由大到小排序,顯示最大的 3 個數字
(3) 範例輸入

範例輸出( 為半形空格)

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 7 頁 / 共 14 頁] PY3-7004
 

七、數組條件判斷
1. 題目說明:
請開啟 PYD07.py 檔案,依下列題意進行作答,輸入字串至數組並進行條件判
斷,使輸出值符合題意要求。請另存新檔為 PYA07.py,作答完成請儲存所有
檔案至 C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 請撰寫一程式,輸入一些字串至數組(至少輸入五個字串) ,以字串"end"
為結束點(數組中不包含字串"end") 。接著輸出該數組,再分別顯示該數
組的第一個元素到第三個元素和倒數三個元素。
3. 輸入輸出:
(1) 輸入說明
至少輸入五個字串至數組,直至 end 結束輸入
(2) 輸出說明
數組
該數組的前三個元素
該數組最後三個元素
(3) 範例輸入

範例輸出( 為半形空格)

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 8 頁 / 共 14 頁] PY3-7004
 

八、倒數三個詞
1. 題目說明:
請開啟 PYD08.py 檔案,依下列題意進行作答,依輸入值取得該句子倒數三個
詞,使輸出值符合題意要求。請另存新檔為 PYA08.py,作答完成請儲存所有
檔案至 C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 請撰寫一程式,讓使用者輸入一個句子(至少有五個詞,以空白隔開),
並輸出該句子倒數三個詞。
3. 輸入輸出:
(1) 輸入說明
一個句子(至少五個詞,以空白隔開)
(2) 輸出說明
該句子倒數三個詞
(3) 範例輸入( 為半形空格)

範例輸出( 為半形空格)

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 9 頁 / 共 14 頁] PY3-7004
 

九、資料附加
1. 題目說明:
請開啟 PYD09.py 檔案,依下列題意進行作答,使輸出值符合題意要求。請另
存新檔為 PYA09.py,作答完成請儲存所有檔案(包含本題所使用之 data.txt)
至 C:\ANS.CSF 原資料夾內,再進行評分。
* 請注意:資料夾或程式碼中所提供的檔案路徑,不可進行變動,data.txt 檔
案需為 UTF-8 編碼格式。
2. 設計說明:
(1) 請撰寫一程式,要求使用者輸入五個人的名字並加入到 data.txt 的尾端。
之後再顯示此檔案的內容。
3. 輸入輸出:
(1) 輸入說明
輸入五個人的名字
(2) 輸出說明
讀取檔案,輸出此檔案內容
(3) 範例輸入

範例輸出( 為半形空格)

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 10 頁 / 共 14 頁] PY3-7004
 

十、找出中間位置的字元
1. 題目說明:
請開啟 PYD10.py 檔案,依下列題意進行作答,使輸入輸出值符合題意要求。
作答完成請另存新檔為 PYA10.py 至 C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 輸入一個字串(不為空值) ,請找出在這個字串中的中間位置的字元。如
果字串長度為奇數,回傳一個字元。若字串長度為偶數,則回傳兩個字元。
3. 輸入輸出:
(1) 輸入說明
字串
(2) 輸出說明
字串中間位置的字元
(3) 範例輸入 1
test
範例輸出 1
es

範例輸入 2
testing
範例輸出 2
t

範例輸入 3
a
範例輸出 3
a
4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 10
總 分 10

Python 3 [第 11 頁 / 共 14 頁] PY3-7004
 

十一、找出不重複字元
1. 題目說明:
請開啟 PYD11.py 檔案,依下列題意進行作答,使輸入輸出值符合題意要求。
作答完成請另存新檔為 PYA11.py 至 C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 輸入一字串後,尋找第一個不重複的字元,找到則輸出此字元在字串中的
順序位置,若字串中的字元皆有重複,則輸出-1。
3. 輸入輸出:
(1) 輸入說明
字串
(2) 輸出說明
第一個不重複字元的位置值,若字串中的字元皆有重複,則輸出-1
(3) 範例輸入 1
python
範例輸出 1
1

範例輸入 2
codejudger.com
範例輸出 2
5

範例輸入 3
aabbcc
範例輸出 3
-1

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 20
總 分 20

Python 3 [第 12 頁 / 共 14 頁] PY3-7004
 

十二、找出最長集合
1. 題目說明:
請開啟 PYD12.py 檔案,依下列題意進行作答,使輸入輸出值符合題意要求。
作答完成請另存新檔為 PYA12.py 至 C:\ANS.CSF 原資料夾內,再進行評分。
2. 設計說明:
(1) 輸入一整數字串(半形逗號分隔) ,將其轉換為串列,長度為 N,串列內
容為 0 至 N-1。
(2) 請找到一個最長的集合 S,S 的定義為 S = {A[i], A[A[i]], A[A[A[i]]]...},
規則說明如下:
由串列中由一個索引 i 開始,S 的第一個元素就是 A[i],A[i]的值,作為
下一個索引,取得下一個值 A[A[i]],由於串列中所有的值都不會超過 N,
所取到的值必定落在 A 之內, 因此最終必定會取到 S 中第一個值的索
引。請找到最長的 S 的集合。
例如:
第1步 輸入 5,4,0,3,1,2,6
第2步 轉換為串列[5,4,0,3,1,2,6]
第3步 A[0] = 5
第4步 A[A[0]] = A[5] = 2
第5步 A[A[A[0]]] = A[2] = 0
第6步 A[A[A[A[0]]]] = A[0] = 5
第7步 S = {5, 2, 0}
第 5 步得到 0,第 6 步回到第一個數字,S 的長度就是 3,若不能找到長
度大於 3 的 S,那麼最長的 S 長度為 3。

3. 輸入輸出:
(1) 輸入說明
整數字串(半形逗號分隔)
(2) 輸出說明
最長的 S 的長度
(3) 範例輸入 1
5,4,0,3,1,2,6
範例輸出 1
3

範例輸入 2
7,4,0,3,1,2,6,5
範例輸出 2
4

Python 3 [第 13 頁 / 共 14 頁] PY3-7004
 

4. 評分項目:
項 目 配 分 得 分
(1) 符合設計說明輸出正確格式 20
總 分 20

Python 3 [第 14 頁 / 共 14 頁] PY3-7004

You might also like