【測驗M04】92商業類科學生技藝競賽試題 [回前頁]
[題目1]
(18%):產品包裝
說明:某工廠生產4種正立方體產品,邊長分別為1, 2,
3,4公分,該工廠的包裝箱為4*4*4公分(不計算包裝箱厚度),現在有若干筆訂單,每一筆訂單可能包括各種產品不同數量,請計算每一筆訂購最少各需要多少個包裝箱。
輸入格式:每行是一筆訂購單,由四個整數組成,每個整數以一個空白間格,依序分別代表邊長1, 2,
3,4公分的產品數量,每一個數量均為不大於20000的非負整數,以一個空白隔開。
輸出格式:輸出各筆訂購的最少包裝箱數目,每一筆一行。
輸入範例1:
5 4 8 2
12 14 32 7
輸出範例1:
11
41
輸入範例2:
2250 50 60 2
8 7 15 12
10 300 23 5
輸出範例2:
69
28
66
[題目 2](18%):二進位「直式乘法」
說明:直式乘法如被乘數“1101”和乘數“1010”相乘,由右至左連續檢查乘數位元,若乘數位元值是1,則被乘數被拷貝到下面,等一會兒會被相加。反之是0,則相同位元數的0會被拷貝到下面。隨著乘數的位元位置由右至左增加時,被拷貝到下面的被乘數必須向左位移。最後被拷貝至下方的豎全部累加起來就是他們的乘積,乘積結果的位元數為乘數(n位元)的兩倍(2n),如下所示。
在此,請您寫一程式,將"直式乘法"的一連串做法和結果,顯示在螢幕上。
輸入格式:兩個二進位整數,用英文字母" x " (一個空白、一個乘法和一個空白)表示”乘” 來隔開,每一數不超過10位數。或自行設計介面。
輸出格式:"直式乘法"的一連串做法和結果。直線(--------------------)以20個”-“組成,第一條表示乘法開始,第二條表示加總以上數值。
輸入範例1:
101 x 110
輸出範例1:
101
110
----------------------
000
101
101
----------------------
11110
輸入範例2:
1101 x 1010
輸出範例2:
1101
1010
__________________
0000
1101
0000
1101
__________________
10000010
[題目 3] (16%):編碼加密
說明:
為確保傳輸資料的安全,常將資料編碼加密後傳輸。以偏移與置換二種方式編碼,本題採偏移與置換編碼規則如下:(每次編碼加密以一個句子或一個單字為主。位移值為N,傳輸資料只有大寫A-Z共26個英文字母與”*”表示空白,”**”表示開始碼,”***”
表示結束碼,每次編碼需要有開始碼與結束碼。)
1.偏移量:以A、B、C、D、E、F……X、Y、Z、A、B…..循環方式,A偏移量2則為C,A偏移量3則為D,Y偏移量2則為A。如BOOK(明碼)經偏移量值4處理後為FSSO。偏移量為編碼句子(單字)的字母數除以10之餘數。如編碼句子(單字)為BOOK有4個字母則偏移量是4,編碼句子(單字)為THIS
IS A BOOK有11個字母則偏移量是1。
2. 加密編碼步驟如下:
2-1.編碼1:轉換成”偏移編碼值”, 如下表1,A為65。則FSSO為70838379。
2-2.編碼2:阿拉伯數字轉成小寫英文字,a為0,b為1,餘如下表2。如70838379 為 haididhj 為BOOK偏移量4的加密編碼結果。
3. 編碼字母數:此次編碼偏移量。編碼最後加入所編碼的字母個數,並加上#。如編碼句子(單字)BOOK有4個字母,依下表2則為#e。
表1 偏移編碼值
A B C D E F G H I J K L M
65 66 67 68 69 70 71 72 73 74 75 76 77
N O P Q R S T U V W X Y Z
78 79 80 81 82 83 84 85 86 87 88 89 90
表2 阿拉伯數字0-9對應表
0 1 2 3 4 5 6 7 8 9
a b c d e f g h i j
輸入格式:明碼文字(大寫英文字母)。
輸出格式:加密編碼結果。
輸入範例1:BOOK
輸出範例1:**haididhj#e***
輸入範例2: BOOKS
輸出範例2:
**hbieieiaii#f***
輸入範例3: THIS IS A BOOK
輸出範例3:
**ifhdheie*heie*gg*ghiaiahg#bb***
[題目 4] (14%):數列
說明:輸入一大於1的正整數。平方後取其最小的數字為十位數(若為0則無十位數),最大的為個位數,組成一個2位數,再將此數平方,以上述方式在取得下一個數,直到重複才停止,請列出產生的數列,並標明重複的數。如輸入7則得下列結果,
輸入或產生的新數 平方 最小數 最大數 產生的新數
7 49 4 9 49
49 2401 0 4 4
4 16 1 6 16
16 256 2 6 26
26 676 6 7 67
67 4489 4 9 49
*49
49重複則停止。
輸入說明:大於1的正整數。
輸出說明:依規則產生的數列。使用”*”標明重複產生之數字。
輸入範例1:
7
輸出範例1:
7 49
49 2401
4 16
16 256
26 676
67 4489
*49 2401
輸入範例2:
39
輸出範例2:
39 1521
15 225
25 625
26 676
67 4489
49 2401
4 16
16 256
*26 676
[題目 5] (14%):學生成績的排名次
說明:請寫一個程式,老師可以輸入全班的「程式設計」成績,並依總分來排名次,學生人數不超過50人。
輸入格式:依學號輸入學科「程式設計」的成績1-50筆。學號與成績以一個空白隔開。
輸出格式:輸入之資料排名表,並依學號的順序輸出,同分者名次必須相同。第一行為排名表的表頭,分別為:”學號”、”程式設計”、”名次”各以三個空白隔開。第二行起為學生學號、成績與名次,各以七個空白隔開。
輸入範例1:
1 56
2 88
3 44
4 44
5 22
輸出範例1:
學號 程式設計 名次
1 56 2
2 88 1
3 44 3
4 44 3
5 22 5
輸入範例2:
1 88
2 99
3 100
4 99
5 60
6 99
輸出範例2:
學號 程式設計 名次
1 88 5
2 99 2
3 100 1
4 99 2
5 60 6
6 99 2
[題目 6 ](10%):請寫一個程式作兩個矩陣相乘
說明:
1.矩陣的行列定如下:下式為3行2列。
a11 a12 a 13 b11 b12 c11 c12
A23= , B32= b21 b22 , C22=
a21 a22 a23 b31 b32 c21 c22
2.矩陣要能相乘,則第一個矩陣行數要等於第二個矩陣的列數,且相乘結果的行數等於第二個矩陣的行數,列數則為第一矩陣列數。
C22= A23 × B32 ,其中C矩陣的元素為:
c11 = a11* b11 + a12* b21 + a 13* b31
c12 = a11* b12 + a12* b22 + a 13* b32
c21 = a21* b11 + a22* b21 + a 23* b31
c22 = a21* b12 + a22* b22 + a 23* b32
3.若有矩陣如下:
Cmp= Amn × Bnp
本題使用的矩陣行列值在2至5之間,並且A與B兩矩陣中的元素值在 -10至10之間。
輸入格式:第一個矩陣的元素值,以及第二個矩陣的元素值。元素之間以空白做為間隔,二個矩陣以一個空行隔開。
輸出格式:第一、二矩陣相乘結果。
輸入範例1:
-1 0 3
2 1 -2
1 0
2 -3
-1 4
輸出範例1:
-4 12
6 -11
輸入範例2:
1 2 3
4 5 6
3 4
1 -1
0 -2
輸出範例2:
5 -4
17 -1
[題目7] (10%):十進位轉二進位
說明:請寫一程式能將十進位轉二進位。
輸入說明:十進位之1-100的正整數。
輸出說明: 8位元之二進位格式。
輸入範例1:66
輸出範例1:01000010
輸入範例2:9
輸出範例2:00001001