北一女中九十七學年度第二學期 高一資訊專研期初復習考 程式試題

範圍:基本輸出輸入、選擇結構、重複結構、函數、陣列、指標、結構

 

編號:_______  姓名:______________  班級:______  座號:_____

 

     1.       做答時間:90分鐘,請把握!

     2.       時間結束後,有3分鐘可以將檔案傳至teahcer-210的「97201作業上傳」資料夾,請注意各題檔名的正確性(檔名有誤者,視同未繳交)
如:班級xx座號yy的第zz題:檔名為xxyy-97201-zz.cpp

     3.       解出任一題者得六十分,解出任兩題者得九十分,解出三題者除滿分外,另可得到神秘禮物一份。

 

第一題:WERTYU

【說明】:(檔名:班級座號-97201-01.cpp)

打字時一個常見的錯誤就是沒有把手放在正確位置,而是偏右邊一個位置。所以會發生Q被打成WJ被打成K等等的情況。你的任務就是要把打錯的字修正回來。

Input

輸入包含許多列,每列可能包含有數字,空白字元,大寫英文字母(QAZ除外),標點符號(`除外)。

Output

對每一列中的每個字元,請輸出在鍵盤(如上圖)上其左邊一個位置的字元。但是輸入中的空白字元,輸出時亦請輸出空白字元。

【輸入】

O S, GOMR YPFSU/
URD. ,U [JPMR MI,NRT OD 8346333

 

輸出】

I AM FINE TODAY.
YES, MY PHONE NUMBER IS 7235222

 

 


 

第二題:Jolly Jumpers

【說明】:(檔名:班級座號-97201-02.cpp)

n個整數的序列我們稱為jolly jumper,如果相鄰的2個數其差的絕對值恰好為1n-1。例如:

1 4 2 3

就是jolly jumpern=4)。因為相鄰2數的差的絕對值為3,2,1,就是1n-1。但是

1 4 2 -1 6 

不是jolly jumpern=5)。因為相鄰2數的差的絕對值為3,2,3,7,並非1n-1

你的任務是寫一個程式來判斷一個整數序列是否為jolly jumper

 

Input

每組測試資料一列,第一個正整數為 nn < 3000),代表此整數序列的長度。接下來有n個整數,代表此整數序列。請參考Sample Input

 

Output

對每一組測試資料,輸出此整數序列是否為jolly jumper。請參考Sample Output

 

【輸入】

4 1 4 2 3
 

輸出】

Jolly
 

【輸入】

5 1 4 2 -1 6

 

【輸出】

Not jolly
 

 


 

第三題:Adding Reversed Numbers

【說明】:(檔名:班級座號-97201-03.cpp)

把一個數字反轉的意思是把各阿拉伯數字的順序反果來。例如:1245反轉之後變成5421。請注意反轉後最左邊的0應該被刪去。例如:2100反轉後變成12,而不是0012

 

Input

數入的第一列有一個整數N,代表以下有多少組測試資料。每組測試資料一列,有2個正整數 ,就是要做反轉相加的數。

 

Output

對每一列輸入,把2數分別反轉再相加,相加後的結果再反轉後輸出。以Sample Input中的第1組測試資料為例說明:305 794 經反轉後變成 503 497503+497=1000,再把1000反轉後得到1,就是答案了。

 

【輸入】

305 794
 

輸出】

1

【輸入】

24 1

 

【輸出】

34

【輸入】

4358 754

 

【輸出】

1998
 

 


 

第四題:LC - Display

【說明】:(檔名:班級座號-97201-04.cpp)

你的一個朋友最近買了一部新電腦,在這之前,他只用過口袋型計算機。現在他對這新電腦有點失望,因為他非常喜歡以前計算機顯示數字的樣式,而不是像現在新電腦所顯示的。所以你的任務是寫一個程式幫他把數字以計算機上數字的樣式顯現出來。

Input

每筆測試資料一列。每列有2個整數s,n1 <= s <= 10, 0 <= n <= 9)。n是要顯示的數字,s是每個字要求的大小。s=0, n=0代表輸入結束。

Output

請以計算機的數字樣式,並以s的大小顯示n。這些計算機數字是以'-'當作水平線,以'|'當作垂直線所構成,並且每個數字的大小寬為s+2,高為2s+3。數字0~9的樣式請參考Sample Outpu

【輸入】

1 5

 

輸出】

-  
|   
-  
  | 
  -  
 
 
0123
 
-        -    - 
| |   |    |    |
           -    - 
| |   |  |      |

  -        -    -

【輸入】

2 3

 

【輸出】

--  
  | 
  | 
--  
   | 
   | 
--  
 
456
 
       -    - 
| |  |    |  
  -    -    - 
  |    |  | |

       -    -

 

【輸入】

3 8

【輸出】

 ---
|   |
|   |
|   |
--- 
|   |
|   |
|   |
---
 
789
 
  -    -    -  
  |  | |  | | 
       -    -  
  |  | |    | 

       -    -  

 

 

第五題:Minesweeper

【說明】:(檔名:班級座號-97201-05.cpp)

你應該有玩過windows裡的一個小遊戲叫做"挖地雷"。這個遊戲的目的就是要在M*N的地雷區格子中找出所有的地雷。為了要幫助你,這個遊戲會在非地雷的格子上有些數字,告訴你這一個格子的鄰居共有多少個地雷。例如:以下4*4的格子中有2個地雷(以*表示)

*...

....

.*..

....

假如我們用上面提到的數字來表現的話可以得到下面的情況:

*100

2210

1*10

1110

可以很簡單的看出,每一個格子最多有8個鄰居。

Input

每組測試資料的第一列有2個整數 n,m 0 < n,m <= 100)。分別代表地雷區的寬和長。接下來的n列,每列有m個字元代表地雷區。地雷以 * 表示,非地雷以 . 表示。

n=m=0代表輸入結束。

Output

對每一個地雷區,輸出的n列表示出以數字取代 . 的地雷區。

請參考sample output.

【輸入】

4 4

*...

....

.*..

....

 

輸出】

 
*100
2210
1*10
1110
 

【輸入】

3 5

**...

.....

.*...

 

【輸出】

 

**100

33200

1*100