資訊學院程式能力檢定題庫-v3

Similar documents
0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

Microsoft Word - ACL chapter02-5ed.docx

Foreword (Social Indicators, 2006) (U.S.Census Bureau, Jan, 13, 2015) 第 1 個 1804 第 2 個 1927

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

90 課程 大綱 條件判斷 : if ( 表 示式 ) {... } [P.91] 如果表 示式成 立就... if ( 表 示式 ) {... } else {... } [P.93] 如果表 示式成 立就... 否則就.. C / C++ 的複合指定與遞增遞減運算 子 [P.96] 重複執 行

Microsoft PowerPoint - chap3

二次曲線 人們對於曲線的使用及欣賞 比曲線被視為一種數學題材來探討要早 得多 各種曲線中 在日常生活常接觸的 當然比較容易引起人們的興趣 比如 投擲籃球的路徑是拋物線 盤子的形狀有圓形或橢圓形 雙曲線 是較不常見的 然而根據科學家的研究 彗星的運行軌道是雙曲線的一部 分 我們將拋物線 圓與橢圓 雙曲

Microsoft Word - 電腦軟體設計乙級考題.doc

ACI pdf

表二 105 年國中教育會考英語科閱讀與聽力答對題數對應整體能力等級加標示對照表 閱讀答 對題數 聽力答對題數 待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強待加強

三期四期執行報告.PDF

C 語言—陣列及字串

Microsoft Word - _m30.doc

C/C++基礎程式設計班

n 123n2n1nn n P n k n P abc 123 x abcxx P C 5 3 oooxx C

最新执法工作手册(九十八)

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

注意事項 一 本比賽系統採用 PC, 所使用的 I/O 是標準輸出輸入裝置, 所以可以使用 C 語言的 scanf ( ) printf ( ), 或是 C++ 語言上的 cin cout 來讀入及輸出資料, 比較要注意的是 : 本系統並不是用人工方式來 keyin 資料, 所以不必在意使用者界面的

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9B8D5C3442DB57BA6A1B35DAD702DB34EACEC>

新时期共青团工作实务全书(三十九)

A-01 日數計算 題目說明 : 請設計天數計算程式, 輸入西元幾年 月 日資料, 用以計算輸入日期為當年的第幾天 輸入說明 : 輸入正整數 y m d, 分別代表年 ( 西元 ) 月 日, 其中每個輸入間, 皆以空格做為分隔 輸出說明 : 計算輸入的日期為當年的第幾天 難易度 : ( 簡易 )(

目次 CONTENTS 1 數列與級數 幾何圖形 三角形的基本性質 平行與四邊形

Microsoft Word - ACG chapter00c-3ed.docx

投影片 1


105A 資管一程式設計實驗 06 函式定義謝明哲老師 2 程式設計實驗 6.3: 自行定義一個可以接受兩個整數並傳回其最大公因數的函式, 接著利用該函式自 行定義一個可以接受兩個整數並傳回其最小公倍數函式 // gcd_fcn.cpp int gcd(int m,

目次 CONTENTS 2 1 乘法公式與多項式 二次方根與畢氏定理 因式分解 一元二次方程式

(A001¦]¼Æ»P�¿¼Æ_±Ð®vª©_)

p.2 1. a. b. c. (i) (ii)

Microsoft Word - ACI chapter00-1ed.docx

CC213


¦ÛµM¬ì²Ä3¦¸²Õ¨÷-¾Ç´ú¤ºŁ¶«ÊŁ±.prn, page Normalize ( <4D F736F F D20A6DBB54DACECB2C433A6B8B2D5A8F72DBEC7B4FAA4BAADB6ABCAADB12E646F63> )

Microsoft PowerPoint - VB3

( CIP) /. :, ISBN I. II. III G CIP ( 2003 ) ( ) ISBN

2. S 輸入一個整數 n, 求出從 1 ~ n 所有可以被 3 整除及又可以被 7 整除所有 的數字的總和的程式 ( 請上傳 Sum_3_7.class 檔 ) Sum_3_7.java 程式樣版 public cla

Microsoft Word - temp71.doc

Microsoft Word htm

2

AutoCAD 用戶如何使用 ArchiCAD

17. (3) 保 母 對 自 己 的 專 業 倫 理 包 括 那 些 項 目?A. 經 常 進 修 吸 收 新 知 ;B. 積 極 參 與 保 母 專 業 組 織 ; C. 努 力 通 過 高 普 考 考 試 ;D. 配 合 督 導 制 度 提 升 自 我 素 質 1 ABC 2 ACD 3 AB

(i) (ii) (iii) (iv) 380,000 [ ] , , % % % 5.5% 6.5%

怎样使孩子更加聪明健康(五).doc

14. 阿 亮 在 寒 假 春 節 期 間 與 父 母 到 一 座 廟 裡 拜 拜, 廟 裡 的 神 有 掌 生 死 簿 的 判 官 勾 攝 生 魂 的 黑 白 無 常 執 行 拘 提 魂 魄 的 牛 頭 馬 面, 整 間 廟 看 起 來 有 些 陰 森, 請 問 阿 亮 到 了 哪 一 座 廟 內

( 一 ) 全 面 贯 彻 党 和 国 家 的 教 育 方 针 政 策, 落 实 国 家 有 关 教 育 的 法 律 法 规 ; 研 究 草 拟 江 苏 省 教 育 法 规 和 政 策, 并 组 织 实 施 ( 二 ) 研 究 教 育 发 展 战 略 思 路, 统 筹 规 划 协 调 指 导 江 苏

Microsoft Word - cjfg_jy0201.doc

2006..,1..,2.,.,2..,3..,3 22..,4..,4 :..,5..,5 :..,5..,6..,6..,8..,10 :..,12..,1..,6..,6.., ,5,:..,1 :..,1 :..,1 :..,2..,2..,3 :..,1 :..,1..,1.

Explain each of the following terms. (12%) (a) O(n 2 ) (b) protected in C++ language (c) sparse matrix 7. Write

新时期共青团工作实务全书(三十)

!194 課程 大綱 陣列介紹 [P.195] 陣列的使 用 [1] - 多個同型變數 [P.196] 陣列的初始化 [P.198] 陣列的使 用 [2] - 循序存取 [P.199] 陣列的使 用 [3] - 隨機存取 [P.200] 陣列的複製 [P.203] 在函式間傳送陣列 [P.204]

99 cjt h 7. 0 (8 ) 0 () abc a b c abc0 aaa 0 a () bca abc0 aa0 a0 0 a0 abc a789 a b c (8 ) 9!

优合会计考点直击卷子之财经法规答案——第八套



CIP 1500 / ISBN X Ⅰ. Ⅱ. Ⅲ. Ⅳ. D CIP edu. cn

(黃).indd

(Microsoft Word - 11\244T\246\342\277\337\260l\302\334.doc)

ttian

! "#$%& $()*+#$, $(-.&,./.+#/(-.&01( &-#&(&$# (&2*(,#-3.,14& $ +()5(*-#5(-#/-/#(-1#&-+)(& :;<<= > A B?

Microsoft Word htm

C/C++基礎程式設計班

Microsoft Word - Chap05.doc

公司预计2010年日常关联交易的议案

¾ú¥v¬ì²Ä8¦¸-«ü¦Ò«ÊŁ±.prn, page Normalize ( <4D F736F F D20BEFAA576ACECB2C438A6B82DABFCA6D2ABCAADB12E646F63> )

1-2 二元一次聯立方程式 21 例 1 代入法判斷二元一次聯立方程式的 { x3y5 2xy3 x1y2 x3y3 x2y1 xy 二元一次式 x y x+3y x-y x2y1 x2y1 { x3y5 2xy3 { 2x3y1 xy3 x2y1

Microsoft PowerPoint - 07b1 Max and Sum.ppt [相容模式]

重 庆 市 万 州 区 人 民 政 府 公 报 卷 首 语 开 启 加 快 建 设 重 庆 第 二 大 城 市 新 征 程 1 万 州 区 委 区 政 府 文 件 传 达 政 令 宣 传 政 策 指 导 工 作 服 务 全 区 中 共 重 庆 市 万 州 区 委 重 庆 市 万 州 区 人 民 政

######## First set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else y <- 2 ######## Second set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else ###

Microsoft Word htm

( )... 5 ( ) ( )

99 77 ( ) ( 0532) ( 2004) ( ) 8. 80

Microsoft PowerPoint - CH07 Arrays and Vectors [相容模式]

目 錄 壹 青 輔 會 結 案 附 件 貳 活 動 計 劃 書 參 執 行 內 容 一 教 學 內 容 二 與 當 地 教 師 教 學 交 流 三 服 務 執 行 進 度 肆 執 行 成 效 一 教 學 課 程 二 與 當 地 教 師 教 學 交 流 三 服 務 滿 意 度 調 查 伍 服 務 檢


財團法人大學入學考試中心

(Microsoft Word - outline for Genesis 9\243\2721\243\25529.doc)

穨Shuk-final.PDF

2

招行2002年半年度报告全文.PDF

Microsoft Word _4

郑州大学(下).doc

厨房小知识(六)

广 东 纺 织 职 业 技 术 学 院 发 展 党 员 公 示 制 实 施 办 法 关 于 推 荐 优 秀 团 员 作 为 党 的 发 展 对 象 工 作 的 意 见 后 勤 管 理 工 作 广 东 纺 织 职 业 技 术 学 院 新 引 进 教 职 工 周 转 房 管 理


游戏攻略大全(五十).doc

金融英语证书考试大纲


健康知识(二)

中南财经大学(二).doc

广西大学(一).doc

根据学校教学工作安排,2011年9月19日正式开课,也是我校迁址蓬莱的第一学期开学

山东大学(一).doc

2

主 编 : 杨 林 副 主 编 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 评 审 顾 问 : 杨 林 张 新 民 评 审 : 张 新 民 邹 兰 曹 纯 纯 周 秋 婷 李 雅 清 黄 囡 囡 李 忆 萍 徐 如 雪 文 字 编 辑 : 曹 纯 纯 邹 兰 李 雅 清

最新文物管理执法全书(十四).doc

园林常识(二).doc

前 言 二 一 六 年 四 月 四 日, 兒 童 節, 誕 生 了 一 件 美 事 : 中 國 作 家 曹 文 軒 在 意 大 利 博 洛 尼 亞 國 際 童 書 展 榮 獲 國 際 安 徒 生 文 學 獎, 是 該 獎 創 設 六 十 年 來, 第 一 位 摘 桂 的 中 國 作 家, 意 義 重

湖 南 科 技 大 学

上海外国语大学(二).doc

Transcription:

靜宜大學資訊學院 程式設計能力檢定題庫 中華民國一 四年四月二十四日

目錄目錄... I 程式範例 01 名稱 : 階乘計算... 1 程式範例 02 名稱 : 輸出 * 三角形... 2 程式範例 03 名稱 : 判斷日期先後順序... 3 程式範例 04 名稱 : 密文解碼... 4 程式範例 05 名稱 : 三號出局... 5 程式範例 06 名稱 : 左 / 右大括號個數的差異值... 6 程式範例 07 名稱 : 找出最大 最小及平均值... 7 程式範例 08 名稱 : 比較字串的大小... 8 程式範例 09 名稱 : 計算左 / 右小括號的個數... 9 程式範例 10 名稱 : 摩斯密碼解碼器... 10 程式範例 11 名稱 : 數字排序後的乘積... 11 程式範例 12 名稱 : 八進位制轉十進位制... 12 程式範例 13 名稱 : 三角形判斷... 13 程式範例 14 名稱 : 最接近的質數... 14 程式範例 15 名稱 : 數字排序後的平均... 15 程式範例 16 名稱 : 發鈔票... 16 程式範例 17 名稱 : 數字轉國字... 17 程式範例 18 名稱 : 絕對值最小的乘積... 18 程式範例 19 名稱 : 二進位制的加法... 19 程式範例 20 名稱 : 最大公因數及最小公倍數... 20 程式範例 21 名稱 : 數字比對... 21 程式範例 22 名稱 : 字串取代... 22 程式範例 23 名稱 : 密碼檢驗... 23 程式範例 24 名稱 : 字串對稱檢驗... 24 程式範例 25 名稱 : 英文字母大小寫更換... 25 程式範例 26 名稱 : 二維整數座標點間的最短距離計算... 26

程式範例 27 名稱 : 將字串 URL 轉換成檔案 ( 目錄 ) 路徑... 27 程式範例 28 名稱 : 輸入數字總合計算... 28 程式範例 29 名稱 : email 格式檢查... 29 程式範例 30 名稱 : 質因數分解... 30 程式範例 31 名稱 : 找出 2 到 N 之間的所有質數... 31 程式範例 32 名稱 : 尋找數字... 32 程式範例 33 名稱 : 整數集合之交集與聯集... 33 程式範例 34 名稱 : 七段顯示器... 35 程式範例 35 名稱 : 統計字母出現次數... 36 程式範例 36 名稱 : 十進位轉換十四進位... 37 程式範例 37 名稱 : 計算時針與分針的夾角... 38 程式範例 38 名稱 : 後序式的四則計算... 39 程式範例 39 名稱 : 二維座標點排序... 40 程式範例 40 名稱 : 計算 n! 的末尾零的個數... 41 程式範例 41 名稱 : 乘數問題... 42 程式範例 42 名稱 : 繪製長條圖... 43 程式範例 43 名稱 : 猜數字遊戲... 44 程式範例 44 名稱 : 計算找零錢的所有找法... 45 程式範例 45 名稱 : 前段和與後段和... 46 程式範例 46 名稱 : 迴文數目... 47 程式範例 47 名稱 : 路徑問題... 48 程式範例 48 名稱 : 盈數 虧數與完全數問題... 49 程式範例 49 名稱 : 身分證驗證... 50 程式範例 50 名稱 : 平面上的極大點... 51 程式範例 51 名稱 : 成績分級... 53 程式範例 52 名稱 : 邏輯運算... 54 程式範例 53 名稱 : 字串讀取... 55 程式範例 54 名稱 : 三角形的最小路徑... 56 II

程式範例 55 名稱 : 反序輸出一個正整數... 57 程式範例 56 名稱 : 圓括號對應 Parenthesis Matching... 58 程式範例 57 名稱 : 二元樹的拜訪 Binary Tree Traversal... 59 程式範例 58 名稱 : 二元樹的節點分析 Binary Tree Node Analysis... 60 程式範例 59 名稱 :Max Heap Construction... 61 程式範例 60 名稱 : 建立二元搜尋樹 Binary Search Tree Construction... 62 程式範例 61 名稱 : 迴文質數... 63 程式範例 62 名稱 : 雞兔同籠... 64 程式範例 63 名稱 : 螺旋三角矩陣... 65 程式範例 64 名稱 : 前置計算器... 66 程式範例 65 名稱 : 三個整數的最大公因數及最小公倍數... 67 III

程式範例 01 名稱 : 階乘計算題目難度 [*] 請以遞迴的函式計算 n! 的值 正整數 n,n<10 輸出 n! 的值 3 4 6 24 1

程式範例 02 名稱 : 輸出 * 三角形題目難度 [*] 輸入一個正整數 n, 以 * 號輸出一個兩股為 n 的直角等腰三角形 任意正整數 任意小於 100 且大於 0 的數 (0<n<100) 當使用者輸入一正整數, 則顯示兩股為 n 的直角等腰三角形 7 * ** *** **** ***** ****** ******* 2

程式範例 03 名稱 : 判斷日期先後順序題目難度 [*] 輸入日期 A 與日期 B 若日期 A 在 B 之前, 輸出 Before ; 若日期 A 在 B 之後, 輸出 After ; 若日期 A 與 B 相同, 輸出 Same 兩個日期 A 與 B, 格式為 dd/mm/yyyy 日期之間以空格隔開 兩個日期 A 與 B 的先後關係 04/05/1999 20/02/1995 04/05/1999 20/02/2003 After Before 3

程式範例 04 名稱 : 密文解碼 題目難度 [*] 某公司為了避免在網路上傳輸的訊息被竊取, 所以將所有的英文字母做移位, 再傳給客戶 假設傳輸的文字只考慮 26 個大寫英文字母, 且移位規則如下 : 原來字母 A B C X Y Z 轉換後字母 D E F A B C 請將客戶收到的已移位訊息自動轉回原來的文字 一段編碼過的文字, 該文字由 26 個大寫英文字母組成 將收到的文字解碼 DSSOH CRR APPLE ZOO 4

程式範例 05 名稱 : 三號出局題目難度 [*] 有 n 個人圍成一圈, 順序排號 ( 從 1 號編到 n 號 ) 從第一個人開始報數( 從 1 到 3 報數 ), 凡報到 3 的人出局退出圈子, 問最後留下的是第幾號 輸入人數 n, n > 50 最後一個未出局者的編號 1 5 2 60 1 4 2 41 5

程式範例 06 名稱 : 左 / 右大括號個數的差異值題目難度 [*] 檢查 C 程式碼中左大括號和右大括號的個數是否相等 一段 C 程式碼 計算左大括號和右大括號個數的差異值 N 若 N=0 則輸出 OK ; 若 N<0 則輸出 左 括號較右括號少 N 個 ; 若 N>0 則輸出 左括號較右括號多 N 個 if (a >b ) {a++;} else {b--; if (a >b ) {a++;} else {b--}; 左括號較右括號多 1 個 OK 6

程式範例 07 名稱 : 找出最大 最小及平均值題目難度 [*] 輸入一個正整數 n, 輸入 n 個整數, 輸出此 n 個整數最大 最小及平均值 輸入一個正整數 n, 輸入 n 個整數 (0<n< 2147483647) 輸出 n 個整數中其最大 最小及平均值 6 24 53 52 74 34 22 Maximum =74 Minimum=22 Mean=43.167 7

程式範例 08 名稱 : 比較字串的大小題目難度 [*] 輸入三個實文字串, 將此三個字串由小而大輸出到定串 輸入三個字串 先比較第一個字元大小, 如同等再比較第兩個字元, 如還相等繼續往下比, 比完由小而 大輸出字串 abc cde bkg abc bkg cde 8

程式範例 09 名稱 : 計算左 / 右小括號的個數題目難度 [*] 輸入包含左 / 右小括號之四則運算式, 判斷左 / 右小括號的個數是否匹配 包含左 / 右小括號之四則運算式, 運算式最長為 40 字元 若運算式中左小括號的個數與右小括號的個數相同, 則輸出 YES ; 反之, 則輸出 NO ((1+2)-3)*(4/5) (((1+2+3) YES NO 9

程式範例 10 名稱 : 摩斯密碼解碼器 題目難度 [*] 請設計一個摩斯密碼的解碼器 摩斯密碼表如下 : A. B. C. D. E. F. G. H. I. J. K. L. M. N. O. P. Q. R. S. T. U. V. W. X. Y. Z. 一串摩斯密碼 相鄰的兩個摩斯密碼以, 隔開 摩斯密碼解碼後的訊息,,,,,, SOS THANK 10

程式範例 11 名稱 : 數字排序後的乘積題目難度 [*] 輸入任意 8 個整數, 找出這些整數中第二大及第二小的數, 將這二個數的乘積輸出 8 個不重複的整數, 數與數之間用 space 隔開 整數 ( 第二大及第二小的乘積 ) 1 2 8 3 6 4 5 7-1 2 8-3 6 4-5 -7 14-30 11

程式範例 12 名稱 : 八進位制轉十進位制題目難度 [*] 將八進位制之數值轉成十進位 八進位制的正整數 ( 只有 0, 1, 2, 3, 4, 5, 6, 7) 十進位制的正整數 13 777 11 511 12

程式範例 13 名稱 : 三角形判斷題目難度 [*] 輸入 3 個邊長, 判斷 3 個邊長是否可以組成一個三角形 ( 邊長皆大於零且任意兩邊和大於第三邊 ) 三個整數, 數與數用 space 隔開 輸出 YES 表示三個整數可構成三角形 輸出 NO 表示三個整數不可構成三角形 3 2 1 2 3 4 NO YES 13

程式範例 14 名稱 : 最接近的質數題目難度 [*] 輸入一正整數, 求最接近該整數但不小於該整數之質數 一個正整數 輸出質數 101 2002 103 2003 14

程式範例 15 名稱 : 數字排序後的平均題目難度 [*] 輸入 10 個正整數, 請找出最大與最小整數的平均 10 個正整數, 數與數之間用 space 隔開 正數 1 3 9 3 9 6 3 3 4 5 2 7 11 12 20 5 10 4 3 40 5 21 15

程式範例 16 名稱 : 發鈔票題目難度 [*] 某國共發行了 1,5,10,50,100 不同面額的鈔票, 若有人要從銀行領出 N 元, 銀行行員要如何發給鈔票, 則使用的張數會最少 正整數 1-N 1, 5-N 2, 10-N 3, 50-N 4, 100-N 5 (N 1, N 2, N 3, N 4, N 5 為大於等於零的整 數 ) 478 1022 1-3, 5-1, 10-2, 50-121, 100-4 1-2, 5-0, 10-2, 50-0, 100-10 16

程式範例 17 名稱 : 數字轉國字題目難度 [*] 將阿拉伯數字轉換成國字數字輸出 輸入任意長度的阿拉伯數字 輸出這串數字的正體中文國字 ( 零壹貳參肆伍陸柒捌玖 ) 1 5941284766 2 654321 1 伍玖肆壹貳捌肆柒陸陸 2 陸伍肆參貳壹 17

程式範例 18 名稱 : 絕對值最小的乘積題目難度 [*] 輸入五個整數, 任取二個數相乘, 輸出這些乘積中絕對值最小者 五個整數, 數與數之間用 space 隔開 整數 2-5 7-2 1 3 4 5-6 -7 2 12 18

程式範例 19 名稱 : 二進位制的加法題目難度 [*] 假設有一系統採 2 進位制 ( 只有 0, 1), 寫一程式可做二個 2 進位制之數之加法 兩個二進位制的整數, 數與數之間用 space 隔開 二進位制的整數 111 1 1000 1001 1000 10001 19

程式範例 20 名稱 : 最大公因數及最小公倍數題目難度 [*] 計算兩個正整數的最大公因數及最小公倍數 兩個正整數, 數與數之間用 space 隔開 最大公因數 :S, 最小公倍數 :T (S 及 T 為正整數 ) 27 18 1000 49 最大公因數 :9, 最小公倍數 :54 最大公因數 :1, 最小公倍數 :49000 20

程式範例 21 名稱 : 數字比對題目難度 [*] 輸入一個正整數 n, 再輸入 n 個整數, 由小到大輸出有重複的整數值及其重複次數 輸入一個正整數 n, 再輸入 n 個小於 10000 的整數 由小至大輸出有重複出現的整數及次數 5 6 8 6 8 8 6 2 8 3 21

程式範例 22 名稱 : 字串取代題目難度 [*] 將輸入的字串中所有的換行符號 ( \n ) 以 <BR> 取代, 並且輸出已被取代的字串 一段含有換行字元 ( \n ) 的字串 已經用 <BR> 取代換行符號 ( \n ) 的字串 This is a iphone5s Where can I buy it? How much for it? This is a iphone5s<br>where can I buy it?<br>how much for it? 22

程式範例 23 名稱 : 密碼檢驗題目難度 [*] 輸入四個數字的密碼, 分別以一個空白字元隔開, 若密碼與內部密碼 1 2 3 4 比對結果正確則輸出 CORRECT, 否則輸出 INCORRECT 輸入四個數字 CORRECT 或者 INCORRECT 1. 1 2 3 4 ( 密碼 : 1 2 3 4) 2. 2 5 12 3 ( 密碼 : 1 2 3 4) 1. CORRECT 2. INCORRECT 23

程式範例 24 名稱 : 字串對稱檢驗題目難度 [*] 輸入一個只有英文字母的字串, 檢查左右各半的子字串的字母是否對稱 若為偶數則檢查左右各半子字串, 若為奇數則以中間字母的分界點, 檢查左右各半子字串 若對稱則輸出 YES, 反則輸出 NO 輸入一個只有英文字母的字串 輸出 YES 或者 NO 1. ABCDDCBA 2. ABCDXDCBA 1. YES 2. YES 24

程式範例 25 名稱 : 英文字母大小寫更換題目難度 [*] 輸入一段以英文字母的組成的字串, 並且將字串中開頭與所有位於句點之後的第一個非大寫的英文字母改成大寫 輸入一段英文字母的字串, 最少有一句點後第一個字母為英文小寫字母 輸出開頭與所有句點後第一個字母皆為大寫的字串 This is a book. that is a pen. they are students. this is a iphone5s. it is a nice phone. I will buy it. This is a book. That is a pen. They are students. This is a iphone5s. It is a nice phone. I will buy it. 25

程式範例 26 名稱 : 二維整數座標點間的最短距離計算題目難度 [*] 任意兩點之間的最短距離 輸入一個點的個數 n, 然後輸入 n 個二維整數座標值 這 n 個點任意兩點之間的最短距離 取到小數點 1 位 ( 四捨五入 ) 1 3 5 3 2 7 5 1 2 4 5 3 2 9 1 15 3 7 1 2.0 2 2.2 26

程式範例 27 名稱 : 將字串 URL 轉換成檔案 ( 目錄 ) 路徑題目難度 [*] 輸入兩個字串, 一為 URL, 另一個是 DocRoot 轉換方式是將 URL 中的 http://host:port/ 部分以 DocRoot 的值取代 兩個字串名稱為 URL,DocRoot URL 字串內容為一個完整的網址路徑的資料格式,DocRoot 字串的內容為一個電腦檔案路徑的資料格式 URL = "http://www.cs.pu.edu.tw:8080/bcc/exam/test1.htm" DocRoot = "C:/apache/www/" 將 URL 字串中的 http://host:port/ 部分, 以 DocRoot 的值取代並輸出 URL = "http://www.cs.pu.edu.tw:8080/bcc/exam/test1.htm" DocRoot = "C:/apache/www/" "C:/apache/www/bcc/exam/test1.htm" 27

程式範例 28 名稱 : 輸入數字總合計算題目難度 [*] 輸入一字串, 統計出 : 字串中包含的數之總和 輸入的字串由英文字母 數字 空白組成 ( 句子前面可能有空白, 兩 words 的間隔空白可 能不只一個 ) 輸出字串中包含的數之總和 25 is 5 5 book 100 135 28

程式範例 29 名稱 : email 格式檢查題目難度 [*] 輸入一個字串, 程式會檢查該字串是否具合法的 email 格式 任一個字串, 中間不允許空格 輸出訊息, 表示輸入字串是否具合法之 email 格式 xyz@asia.com.tw abc.com@a 您輸入之字串 : xyz@asia.com.tw 具合法之 email 格式 您輸入之字串 : abc.com@a 不符合 email 之格式 29

程式範例 30 名稱 : 質因數分解題目難度 [*] 設計一程式, 輸入一個正整數, 改用質因數乘積表達此數, 若該質因數出現多次, 則用次方表示之 例如 : 12 = 2 ^ 2 * 3 n 50 = 2 * 5 ^ 2 輸入一個正整數 n 輸出能表達正整數 n 的質因數乘積積 1 1000 2 127 1 1000=2^3*5^3 2 127 30

程式範例 31 名稱 : 找出 2 到 N 之間的所有質數題目難度 [*] 由使用者輸入整數 N, 找出 2 到 N 之間 ( 包含 2 和 N) 所有的質數, 每印出 5 個質數後換行顯示, 最後並顯示總共有幾個質數 整數 N,2 N 1000 每印出 5 個質數後換行顯示, 質數之間以一 [TAB] 隔開, 每個質數以三位數整數表示, 不足三位數者, 前面補 0 最後須輸出字串" 小於 N 的質數共有 M 個 ",M 表示實際執行後之質數個數 1 10 2 100 1 002 003 005 007 小於等於 10 的質數共有 4 個 2 002 003 005 007 001 013 017 019 023 029 031 037 041 043 047 053 059 061 067 071 073 079 083 089 097 小於 100 的質數共有 25 個 31

程式範例 32 名稱 : 尋找數字題目難度 [*] 請寫一個程式, 判斷一個數字 N 出現在另外一個數字 M 中的次數 N 為小於 100 的非負整數, M 9999999 每筆資料有兩個整數,N 和 M,0 N 99,-9999999 M 9999999 每筆測資輸出一個整數, 也就是 N 出現在 M 裡面的次數, 以及 N 出現在 M 裡面的位數, 輸出格式請參考以下範例 第一行輸出的數值代表出現的次數, 第二行將所在的位數加以輸入 1 90 9090999 2 11 1110111 1 2 // 出現兩次 7 5 // 出現在右邊數過來第 7 位數與第 5 位數 2 4 7 6 3 2 32

程式範例 33 名稱 : 整數集合之交集與聯集題目難度 [*] 利用兩個一維整數陣列儲存兩個元素為正整數的集合 A B, 程式必須包括以下功能 : (1) 插入一個集合元素 ;(2) 運算兩個集合的交集 ;(3) 運算兩個集合的聯集 n 1 n 2 : 將正整數 n 2 輸入集合 n 1 (n 1 = 1 代表集合 A,n 1 = 2 代表集合 B) 印出 A 集合的所有元素, 由小到大排列, 中間以 ',' 分隔, 不含空白 印出 B 集合的所有元素, 由小到大排列, 中間以 ',' 分隔, 不含空白 判斷 A 集合是否為 B 集合的子集合, 若是則印出 "A B", 否則印出 "A B" 印出 A B 交集的所有元素, 由小到大排列, 中間以 ',' 分隔, 不含空白 印出 A B 聯集的所有元素, 由小到大排列, 中間以 ',' 分隔, 不含空白 1 1 3 1 1 1 4 2 5 2 2 2 3 2 1 26 1 19 2 51 2 26 2 33 2 19 1 1,3,4 2,3,5 A 不屬於 B 3 1,2,3,4,5 2 19,26 19,26,33,51 33

A 屬於 B 19,26 19,26,33,51 34

程式範例 34 名稱 : 七段顯示器題目難度 [*] 請設計一程式, 輸入 0 至 9 之間的數字, 輸出七段顯示器哪些位置的 LED 燈需要點亮 a f b g e c d 整數 N,0 N 9 輸出七段顯示器須點亮的位置代碼, 由小到大排列 1 3 2 6 1 a,b,c,d,g 2 a,c,d,e,f,g 35

程式範例 35 名稱 : 統計字母出現次數題目難度 [*] 以小寫英文字母輸入一行英文句子後, 列出句子中出現的英文字母以及每個字母出現的的次數 如果輸入的字母包含大寫, 將之視為小寫 任意輸入一行英文, 內容不拘 依照英文字母的排序規則, 列出句子中出現的英文字母以及其出現的的次數 1 How are you. 2 Good morning. 1 (a,1)(e,1)(h,1)(o,2)(r,1)(u,1)(w,1)(y,1) 2 (d,1)(g,2)(i,1)(m,1)(n,2)(o,3)(r,1) 36

程式範例 36 名稱 : 十進位轉換十四進位題目難度 [*] 將一個十進位數字轉換成十四進位, 其 0 到 13 的表示法為 {0,1,,9,A, D} 輸入一個十進位數字 n (500 n 10000 ) 輸出其十四進位表示法 1 600 2 2000 1 30C 2 A2C 37

程式範例 37 名稱 : 計算時針與分針的夾角題目難度 [*] 請撰寫一個程式可由鍵盤輸入時間 ( 小時 分鐘 ), 然後在螢幕上顯示出對應的時鐘上分針與時針之間的夾角為幾度 輸入兩個整數數字, 分別代表時鐘上的時與分 輸出時針與分針之間的夾角 θ 其中 0 θ 180 小數點無條件捨去 1 3 0 2 4 30 1 90 2 45 38

程式範例 38 名稱 : 後序式的四則計算題目難度 [**] 使用後序表示法來進行四則運算 輸入一個運算式的後序表示法, 每個數字或符號之間用空格隔開 在後序式表示法中, 其中輸入的數字個數在十個以內 輸出運算結果 1 12 5 2 * - 2 1 2 + 3 * 4 5 * + 25-1 2 2 4 39

程式範例 39 名稱 : 二維座標點排序題目難度 [*] 輸入 n 個二維平面上的座標點, 所有的座標點按照以 x 軸座標為第一關鍵字,y 軸座標為第二關鍵字的優先順序從小到大來進行排序 輸入一個點的個數 n, 然後輸入 n 個二維整數座標值 按照以 x 軸座標為第一關鍵字,y 軸座標為第二關鍵字的方式從小到大來進行排序印出 1 3 5 3 2 7 5 1 2 4 3 7 6 8 3 4 9 3 1 2 7 5 1 5 3 2 3 4 3 7 6 8 9 3 40

程式範例 40 名稱 : 計算 n! 的末尾零的個數題目難度 [*] 輸出 n! 的末尾零的個數 輸入一個整數 n 輸出 n! 的末尾零的個數 1 60 2 100 1 14 2 24 41

程式範例 41 名稱 : 乘數問題題目難度 [*] 你拿到一個整數, 卻忍不住想把每個位數都乘在一起 例如看到 356 就會想要知道 3 * 5 * 6 的值為何 快寫個程式幫幫為了乘數字而快發瘋的自己吧! 一開始有一個數字 T, 表示共有幾組測試資料 接下來有 T 個數字 n (0 <= n < 2147483648) 輸出所有測試資料的乘數結果 1 3 356 123 9999 2 2 23 333 1 90 6 6561 2 6 9 42

程式範例 42 名稱 : 繪製長條圖題目難度 [**] 輸入 20 筆介於 0 至 100 的整數 若輸入值介於 90 到 100, 則將其歸類為 "Grade A"; 若輸入值介於 80 到 89, 則歸類為 "Grade B"; 若輸入值介於 70 到 79, 則歸類為 "Grade C"; 若輸入值介於 60 到 69, 則歸類為 "Grade D"; 若輸入值介於 0 到 59, 則歸類為 "Grade E" 統計出每一類的數量, 並以星號畫出直長條圖 整數 N 1 N 2 N 3 N 20,0 N 1,N 2,N 3,,N 20 100 畫出以星號構成之直長條圖, 以 E D C B A 為 x 軸數值, 每一個長條圖以空格隔 開 1 78 66 32 69 78 88 92 95 76 66 89 73 87 44 52 65 62 71 65 82 2 77 69 62 79 78 88 98 93 86 66 10 53 32 10 49 59 22 99 39 19 1 * * * * * * * * * * * * * * * * * * * * - - - - - E D C B A 2 * * * * * * * * * * - - - - - E D C B A 43

程式範例 43 名稱 : 猜數字遊戲題目難度 [**] 程式需要使用者輸入四位數的解答, 每一位數的數值介於 1 到 9, 而且不可重複 程式需定義一個方法 ( 函式 ), 將解答的四個數值分別儲存於整數陣列的第一至第四個元素中 ( 索引值 0 至 3), 並回傳 程式執行時, 由使用者從鍵盤輸入四位數的猜數, 程式自動判斷使用者猜測的結果為幾個 A 幾個 B 規則 : 使用者猜測的四位數中, 若某一數之位置和數值都與程式產生的數一致, 則為 1A; 若猜測的某一數值出現在答案中但位置不對, 則為 1B 程式需定義一個方法( 函式 ), 包含一個整數參數和一個長度為 2 的整數陣列參數 (guess(int num, int[] result) ) 陣列參數的第一個元素紀錄猜中 A 的個數, 第二個元素紀錄猜中 B 的個數 方法 ( 函式 ) 執行完畢將此陣列回傳 一 輸入說明 : 四位數整數 n 1 n 2 n 3 n 4,1 n 1,n 2,n 3,n 4 9,n 1 n 2 n 3 n 4 二 輸出說明 : 輸出幾個 A 幾個 B 以及猜數與解答 三 輸入範例 : 1 1234 7164 2 9876 6541 四 輸出範例 : 1 1A1B 猜數 :1234 解答 :7164 2 0A1B 猜數 :9876 解答 :6514 44

程式範例 44 名稱 : 計算找零錢的所有找法題目難度 [**] 如果你有不限量的 1 元 5 元 10 元的硬幣, 要找 n 元給顧客, 有幾種找法? 例如 : 15 元中分別用 (1 元, 5 元, 10 元 ) 的找法有 (15,0,0)(10,1,0) (5,2,0) (5,0,1) (0,3,0) (0,1,1) 等 6 種 請輸入你要給顧客的金額大小 輸出共有幾種找零錢方法 1 10 2 20 1 4 2 9 45

程式範例 45 名稱 : 前段和與後段和題目難度 [**] 假設有一個陣列 x[], 它有 n 個元素, 每一個都大於零 ; 我們說 x[0]+x[1]+...+x[i] 是個前段和 (Prefix Sum), 而 x[j]+x[j+1]+...+x[n-1] 則是個後段和 (Suffix Sum) 請寫一個程式, 求出 x[] 中有多少組相同的前段和與後段和 輸入一個整數 n, 再輸入 n 個整數給 x[0] x[1]... 到 x[n-1] 輸出陣列中有多少組相同的前段和與後段和 1 6 1 2 3 4 5 6 2 6 2 2 2 2 2 2 1 3 2 6 46

程式範例 46 名稱 : 迴文數目題目難度 [**] 所謂的 迴文, 就是指一個字串從頭開始唸跟倒著唸結果完全一樣 例如 abccaaccba 就是一個迴文字 而所謂的 全排列, 則是指一個字串裡的每個字母在經過順序的調換以後所能得到的各種排列 例如 abcd 的全排列就是 : abcd abdc acbd acdb adbc adcb bacd badc bcad bcda bdac bdca cabd cadb cbad cbda cdab cdba dabc dacb dbac dbca dcab dcba 請寫出一個程式, 對於輸入的字串, 算出在這個字串的全排列裡有多少個是迴文 例如 aabb 的全排列為 :aabb abab abba baab baba bbaa, 其中 abba 和 baab 是迴文, 因此 aabb 的全排列裡有 2 個迴文 輸入一行長度至少為 1 且不超過 20 的字串, 這個字串會完全由小寫的英文字母構成 請輸出這行字串的全排列中, 存在的迴文總數 ( 如果全排列裡一個迴文都沒有的話, 就 輸出 0) 1 cccaaddbb 2 aaabbb 1 24 2 0 47

程式範例 47 名稱 : 路徑問題題目難度 [**] 在座標上, 我們從原點 (0,0) 出發, 每次移動只能往上 往右 往右上 三種方向其中一種方向前進, 所有路徑座標 x 恆大於等於 y; 我們可以以人工的方式算出, 走到 (1,1) 有 2 種走法 (2,2) 有 6 種走法 輸入兩個正整數 x y, 代表終點位置的座標 輸出總共有幾種走法 1 2 2 2 3 3 3 4 5 1 6 2 22 48

程式範例 48 名稱 : 盈數 虧數與完全數問題題目難度 [**] 對一個正整數 N 而言, 將它除了本身以外所有的因數加起來的總和為 S, 如果 S>N, 則 N 為盈數, 如果 S<N, 則 N 為虧數, 而如果 S=N, 則 N 為完全數 (Perfect Number) 例如 10 的因數有 1 2 5 10,1+2+5=8<10, 因此 10 為虧數, 而 12 的因數有 1 2 3 4 6 12,1+2+3+4+6=16>12, 因此 12 為盈數 至於 6 的因數有 1 2 3 6, 1+2+3=6, 所以 6 是完全數 輸入一個正整數 N 印出 N 是盈數 虧數還是完全數 1 30 2 26 1 盈數 2 虧數 49

程式範例 49 名稱 : 身分證驗證 題目難度 [**] 我國的身分證字號有底下這樣的規則, 因此對於任意輸入的身分證字號可以有一些基本 的判斷原則, 請您來判斷一個身分證字號是否是正常的號碼 ( 不代表確有此號 此人 ) (1) 英文代號以下表轉換成數字 A=10 台北市 J=18 新竹縣 S=26 高雄縣 B=11 台中市 K=19 苗栗縣 T=27 屏東縣 C=12 基隆市 L=20 台中縣 U=28 花蓮縣 D=13 台南市 M=21 南投縣 V=29 台東縣 E=14 高雄市 N=22 彰化縣 W=32 金門縣 F=15 台北縣 O=35 新竹市 X=30 澎湖縣 G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山 H=17 桃園縣 Q=24 嘉義縣 Z=33 連江縣 I=34 嘉義市 R=25 台南縣 (2) 英文轉成的數字, 個位數乘 9 再加上十位數的數字 (3) 各數字從右到左依次乘 1 2 3 4...8 (4) 求出 (2),(3) 及最後一碼的和 (5) (4) 除 10 若整除, 則為 real, 否則為 fake 例 : T112663836 2 + 7*9 + 1*8 + 1*7 + 2*6 + 6*5 + 6*4 + 3*3 + 8*2 + 3*1 + 6 = 180 除以 10 整除, 因此為通過驗證的身分證字號 一組身分證號碼 true ( 通過 ) 或 false( 不通過 ) 1 T112663836 2 S154287863 1 true 2 false 50

程式範例 50 名稱 : 平面上的極大點題目難度 [***] 在平面上如果有兩個點 ( x, y ) 與 ( a, b ), 我們說 ( x, y ) 支配 (Dominate) 了 ( a, b ) 這就是指 x a 而且 y b; 用圖來看就是 ( a, b ) 座落在以 ( x, y ) 為右上角的一點無的區域中 對於平面上的任意一個有限點集合而言, 一定存在有若干個點, 它們不會被集合中的內一點所支配, 這些個數就構成一個所謂的極大集合 請寫一個程式, 讀入一個新的集合, 找出這個集合中的極大值 若找不到一點在 ( x, y ) 的右上方, 則 ( x, y ) 就要輸出 輸入一個數字 N ( 1 N 50,0000 ), 代表接下來有 N 組點坐標, 每行上有兩個數字 x, y ( 0 X,Y 100000 ) 分別代表一點的 X 軸座標, 與 Y 軸座標 請依照 X 軸的大小, 由小輸出至大 1 11 0 8 1 10 3 4 4 6 4 9 5 8 6 9 7 5 8 7 9 8 10 6 2 4 1 8 2 9 2 2 4 6 51

1 Dominate Point: 4 // 點的個數 (1,10) (6,9) (9,8) (10,6) 2 Dominate Point: 2 // 點的個數 (2, 9) (4, 6) 52

程式範例 51 名稱 : 成績分級 題目難度 [*] 從標準輸入輸入一個介於 0 到 100 的整數 如以下輸出說明所示, 程式根據輸入值所屬 區間, 輸出對應的成績結果 整數 N 若輸入值介於 90 到 100, 則輸出 "Grade A" 若輸入值介於 80 到 89, 則輸出 "Grade B" 若輸入值介於 70 到 79, 則輸出 "Grade C" 若輸入值介於 60 到 69, 則輸出 "Grade D" 若輸入值介於 0 到 59, 則輸出 "Grade E" 若輸入值不在上述範圍, 則輸出 "Wrong Input Value" 1 75 2 98 1 Grade C 2 Grade A 53

程式範例 52 名稱 : 邏輯運算 題目難度 [**] 對二進位的數字每一個位元進行 and (&&) 和 or ( ) 運算, 運算規則如下 : 1 and 1 = 1,1 and 0 = 0,0 and 1 = 0,0 and 0 = 0 1 or 1 = 1, 1 or 0 = 1, 0 or 1 = 1, 0 or 0 = 0 每一輸入行是二進位字串加上運算子 and 或 or 所組成的運算式, 其中的二進位字串長度都是 5 bit 每一行的最後會有一個空白, 例如 : 10001 or 10000 and 11101 and 01001 依序是一個運算元 + 空白 + 運算子 + 空白 + 運算元 +... 最後是運算元 + 一個空白 把運算式中的運算子 and 和 or 分別以 && 和 取代之, 然後輸出運算後的答案 ( 行末 無空白 ) 10001 or 10000 and 11101 and 01001 10111 or 10111 or 10010 or 00101 10001 10000&&11101&&01001 = 00001 10111 10111 10010 00101 = 10111 54

程式範例 53 名稱 : 字串讀取 題目難度 [*] 練習字串的分析與處理 一個字串, 內部包含數組資料, 每組資料有一個序號, 及一個實數 格式如下 : 序號 : 實數請注意, 序號有可能跳號 令 M 為序號為奇數的實數總和,N 為序號為偶數的實數總和, 請印出差值 M - N 1 1:12.5 2:12 3:13.1 4:13.0 2 1:1.2 3:2.3 1 0.6 2 3.5 55

程式範例 54 名稱 : 三角形的最小路徑 題目難度 [**] 數字三角形的構圖如下 : 44 25 2 7 18 3 4 6 5 24 19 34 8 31 19 請找出一條由頂端到底部的路徑, 其經過的數字總和是最小值 首先輸入三角形的點數 N ( N<50), 此處三角形一定是完整三角形, 所以 N=1,3,6,10,15,... 再輸入 N 個正整數, 代表該三角形由上而下 由左而右的數字 輸出該最小路徑及路徑和 1 15 44 25 2 7 18 3 4 6 5 24 19 34 8 31 19 2 3 5 2 9 1 44+2+3+5+8=62 2 5+2=7 56

程式範例 55 名稱 : 反序輸出一個正整數 題目難度 [*] 輸入一個五位數整數, 將此整數的每一位數字取出並以反序輸出, 數字之間以一空白 (space) 隔開 整數 N,10000 N 99999 以相反順序輸出每一位數字, 數字之間以一空白 (space) 隔開 1 12345 2 28364 1 5 4 3 2 1 2 4 6 3 8 2 57

程式範例 56 名稱 : 圓括號對應 Parenthesis Matching 題目難度 [**] 找出給定的運算式中適當的左圓括號與右圓括號的對應配對, 並輸出找到的配對的索引值 若輸入的運算式無法找到對應的配對, 無配對部份索引值以 -1 填入 輸入一個包含圓括號的運算式, 將運算式儲存到陣列中 假設輸入的運算式的長度小於 等於 40 輸出找到的最接近的左圓括號與右圓括號配對的索引值 每輸出一個配對, 就需換行 1 (a+(b*c)/(d-e)+f) 2 ((a+b)-c*e)+(e*(f-g) 1 3,7 9,13 0,16 2 1,5 0,10 15,19 12,-1 58

程式範例 57 名稱 : 二元樹的拜訪 Binary Tree Traversal 題目難度 [**] 輸入以陣列表示法記錄的一棵二元樹 在陣列表示法中, 索引值 0 的元素未用到, 並被設定為 0 實際上二元樹的樹根儲存在索引值 1 的位置 我們假設給定的二元樹的元素數值皆為正整數, 而空節點的數值為 0 將這棵二元樹進行前序式 (preorder) 中序式(inorder) 後序式(postorder) 拜訪的結果輸出 輸入一個正整數 n, 紀錄這這棵二元樹在陣列表示法所需的空間 再輸入 n 個整數 分行依序輸出這棵二元樹的前序式 中序式 後序式拜訪的結果 個別元素之間以空白 隔開 1 4 0 1 2 3 2 8 0 1 2 3 4 5 6 7 1 1 2 3 2 1 3 2 3 1 2 1 2 4 5 3 6 7 4 2 5 1 6 3 7 4 5 2 6 7 3 1 59

程式範例 58 名稱 : 二元樹的節點分析 Binary Tree Node Analysis 題目難度 [*] 輸入以陣列表示法記錄的一棵二元樹 在陣列表示法中, 索引值 0 的元素未用到, 並被設定為 0 實際上二元樹的樹根儲存在索引值 1 的位置 我們假設給定的二元樹的元素數值皆為正整數, 而空節點的數值為 0 將這棵二元樹的內部節點的個數與樹葉節點的個數輸出 輸入一個正整數 n, 紀錄這這棵二元樹在陣列表示法所需的空間 再輸入 n 個整數 分行依序輸出這棵二元樹的內部節點的個數與樹葉節點的個數 1 4 0 1 2 3 2 8 0 5 4 2 0 6 1 0 1 1 2 2 3 2 60

程式範例 59 名稱 :Max Heap Construction 題目難度 [**] 輸入 n 個正整數, 將個別正整數依序加入到 Max Heap 中 Max Heap 是一棵 complete binary tree, 祖先節點的數值會比子孫節點的數值來的大 輸入一個正整數 n, 假設 n < 16 再輸入 n 個正整數來建立一棵 Max Heap 輸出 Max Heap 的高度輸出 Max Heap 的陣列表示法 索引值 0 的元素未用到, 並被設定為 0 高度是 2 則輸出 4 筆資料 ; 高度是 3 則輸出 8 筆資料 ; 高度是 4 則輸出 16 筆資料 1 5 1 2 3 4 5 2 8 2 6 3 7 8 4 5 9 1 3 0 5 4 2 1 3 0 0 2 4 0 9 8 5 7 6 3 4 2 0 0 0 0 0 0 0 61

程式範例 60 名稱 : 建立二元搜尋樹 Binary Search Tree Construction 題目難度 [**] 輸入 n 個正整數, 將個別正整數依序加入到二元搜尋樹中 在二元搜尋樹中左子樹節點的數值會比樹根來的小 ; 右子樹節點的數值會比樹根來的大 輸入一個正整數 n, 假設 n <=10 再輸入 n 個正整數來建立一棵二元搜尋樹 輸出二元搜尋樹的高度輸出二元搜尋樹的陣列表示法 索引值 0 的元素未用到, 並被設定為 0 高度是 2 則輸出 4 筆資料 ; 高度是 3 則輸出 8 筆資料 ; 高度是 4 則輸出 16 筆資料 1 4 1 2 3 4 2 7 3 5 4 6 8 9 2 1 4 0 1 0 2 0 0 0 3 0 0 0 0 0 0 0 4 2 5 0 3 2 5 0 0 4 6 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 9 62

程式範例 61 名稱 : 迴文質數 題目難度 [*] 從鍵盤輸入一正整數, 判斷其是否為迴文且為質數, 若是, 則輸出 "YES", 若否, 則輸出 "NO" 迴文係指從左至右與從右至左讀取此整數皆為同一數值 整數 N,0 < N 若 N 是迴文且為質數, 輸出 "Yes.", 否則輸出 "No." 1 121 2 191 1 NO 2 YES 63

程式範例 62 名稱 : 雞兔同籠 題目難度 [*] 已知雞和兔有 N 隻, 總共有 M 隻腳, 計算出共有幾隻雞, 幾隻兔 整數 N M,0 < N < M 輸出雞和兔的數量, 兩個正整數之間以空白隔開 1 50 144 2 39 120 1 28 22 2 18 21 64

程式範例 63 名稱 : 螺旋三角矩陣 題目難度 [***] 螺旋三角矩陣是一個矩陣, 其中每個元素 (cell) 都填滿整數, 且每個整數以螺旋的方式排列 下圖為二個 size = 5 的螺旋矩陣 觀查圖 (a), 數字由 1 開始, 以順時鐘的方向, 螺旋狀地往中心排列, 且於第二個轉彎處向內折 而圖 (b) 則是一個逆時鐘的螺旋矩陣, 和圖 (a) 不一樣之處在於其數字的旋轉方向為逆時鐘旋轉, 且於第一個轉彎處向內折 01 02 03 04 05 01 12 11 10 09 00 12 13 14 06 02 13 15 08 00 00 00 11 15 07 03 14 07 00 00 00 00 00 10 08 04 06 00 00 00 00 00 00 00 09 05 00 00 00 00 圖 (a) 圖 (b) 請寫一個程式, 接受輸入三整數, 並將螺旋三角矩陣印出 輸入為三個整數, 第一個整數為矩陣維度, 其值介於 1 到 10 之間 ( 亦即 1 <= size <= 10) 第二個整數為旋轉方向,1 為順時鐘方向,2 為逆時鐘方向 第三個整數為內折處,1 為在第一個角內折,2 為在第二個角內折 將螺旋矩陣輸出 每個數字的寬度為 2, 不足寬度之處補 0( 亦即數字 1 要印輸出成 01, 數字 12 要輸出成 12) 數字間留一空格 1 3 2 2 2 6 1 1 1 01 00 00 02 06 00 03 04 05 2 01 02 03 04 05 06 15 16 17 18 07 00 14 21 19 08 00 00 13 20 09 00 00 00 12 10 00 00 00 00 11 00 00 00 00 00 65

程式範例 64 名稱 : 前置計算器 題目難度 [**] 假設有一前置運算式由任意數字與 $, % 所組成, 運算式長度不能超過 30 個字元 $ 與 % 所代表的是運算子, 其中 $ 代表 x $ y = (x + y)/2, % 代表 x % y = (x - y)/2,x, y 是任意整數或浮點數 前置運算式包含任意整數與 $, %, 輸入以空白鍵隔開且長度不可超過 30 個字元 運算式結果 ( 到小數點六位 ) 1 $ 3 9 2 % 5 7 1 6.000000 2-1.000000 66

程式範例 65 名稱 : 三個整數的最大公因數及最小公倍數 題目難度 [**] 計算三個正整數的最大公因數及最小公倍數 三個正整數, 數與數之間用 space 隔開 最大公因數 :S, 最小公倍數 :T (S 及 T 為正整數 ) 1 54 90 36 2 75 180 300 1 18 540 2 15 900 67