- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
台北市立高級中學八十七年度資訊學科能力競賽程式設計試卷
台北市立高級中學八十七年度 資訊學科能力競賽 ?程式設計試卷
作答時間 180分鐘一. (有趣的數列問題, 20分)有一種有趣的數列可以由一個二位數 N開始產生, 其產生的規則如下: 求出 N^2之值, 再將其百位及十位數留下, 又得出一個新的二位數; 依此方法, 可繼續產生新的二位數. 舉例而言, 若一開始時 N值為43, 那麼會產生的數列如下:?A(0)=43 ? 43*43=1849 取百位數及十位數; 得 84?A(1)=84 ? 84*84=7056 取百位數及十位數; 得 5?A(2)=5 ? ? 5* 5= ?25 取百位數及十位數; 得 2?A(3)=2 ? ? 2* 2= ? 4 取百位數及十位數; 得 0?A(4)=0 ? ? 0* 0= ? 0 取百位數及十位數; 得 0?A(5)=0 ? ?因為 A(5)=A(4), 故停止請你撰寫一程式來顯示開始為 N時, 逐次所產生的數列, 直到重覆時就停止.輸入資料一律由鍵盤輸入參數 N之值, N是一正整數, 1=N=99.輸出資料一律在螢幕上顯示逐次所產生的數列結果, 直到重覆時就停止. 每行最多顯示10個數, 數與數之間用逗點隔開. 如果超過10個數, 就另起一行, 再顯示後面的數, 依此類推.輸入範例43輸出範例43,84,5,2,0
二. (間隔的天數問題, 20分)考慮西元 X年, 若 X可以為 4整除, 但不為 100整除, 或 X可以為 400整除, 則該年為閏年. 請撰寫一程式, 輸入三個整數 X, Y, Z, 試求自西元1998年 1月 1日到西元 X年 Y月 Z日共有幾日?(假設 X年 Y月 Z日是在1998年 1月 1日之後的一個日子, X4001) 舉例而言, 西元1998年不是閏年, 故二月只有28日. 1998年1月 1日到1999年 1月 2日共經過一年又一天, 所以共經過 366天.輸入資料一律由鍵盤輸入參數 X, Y, Z之值, 1998=X4001.輸出資料一律由螢幕輸出經過之天數.輸入範例1999,1,2輸出範例366
三. ( k位數數字和問題, 20分)考慮 k(=5) 位的十進位整數所有數字的和等於 m, 其中最高位的數字不能為 0, 其餘位數可以為 0. 試寫一程式依序輸入 ?k,m,n 並求出所有滿足上述條件的k位整數中第 n小的數. 舉例而言, 三位整數中所有數字和等於 6的由小到大為105,114,123,132,141,150,204,213,222,231.... 其中第 5小的數為 141.輸入資料一律由鍵盤輸入參數 ?k,m,n 之值, 2=k=5.輸出資料一律由螢幕輸出答案.輸入範例3,6,5輸出範例141
四. (巨大整數計算問題, 20分)受限於記憶單元儲存整數容量限制, 使用傳統程式語言設計程式時, 我們無法直接對巨大的整數進行算術運算. 本題目希望你設計出一個可執行巨大位數數字運算的 N進位正整數加法器與乘法器. 此程式接受三個輸入, 分別為 N,A與 B, 其中 N是一個 2至10之間的整數 (含 2與10),而 A與 B則是兩個以字串形式表示的N進位非負整數. 為方便程式設計, 你可以假定 A, B 兩字串的位數均 = 40.你的程式需要判定輸入格式是否無誤, 然後正確的計算出 ?A+B 與 ?A*B 之值,最後再將結果以 N進位的格式印出. 舉例而言, 下列輸入範例一中, N=5,A=00123,B=571234. ?由於 A中最高位數是 0, 此外, B中含有 5,7 兩數大於 4, 故輸出格式不合. 範例二則做八進位之加法及乘法 (721+7107及721*7107).輸入資料一律由鍵盤輸入三行數字. 第一行含 N之值, 第二行含字串 A之值, 第三行含字串 B之值.輸出資料一律由螢幕輸出答案. 若輸入有誤, 請輸出格式不合, 否則以 N進位格式分成兩行輸出 A+B及A*B 之值.輸入範例一500123571234輸出範例一格式不合輸入範例二87217107輸出範例二A+B=10030A*B=6367367
五. (象棋盤面問題, 20分)象棋遊戲中將, 士, 象在棋盤上的合法位置如圖所示. 試寫一個程式依序輸入將, 士, 象的個數 (其中, 將的個數一定為 1, 士象的個數為 0至 2),輸出其不同的盤面總數. 舉例而言, 輸入範例一中只有一個將在棋盤上, 則有 9種不同的可能盤面. 輸入範例二中有一個將和一個士, 則有 5*8=40 種不同的可能盤面. 輸入範例三中有一個將和一個象, 當象在九宮內時, 將的位置有 8
文档评论(0)