Java programing Java programing

Java 程式設計上課教材

Java 程式設計上課教材 > 課程內容 > 期中考練習

期中考練習

上次更新日期 2018/11/20

考試不是為了要考倒大家,而是希望大家能夠更清楚的知道自己哪裡不夠好,可以持續進步這樣。 不論你未來要走哪個行業,多認識點程式,多瞭解點邏輯,多一些知道判斷式,都會是好事!那就,大家來測驗一下自己的程度囉! 另外,你最好每一堂課的課後練習全部拿出來重新看一遍、寫一遍,底下的題目你才會知道怎麼辦!

  • 期中考練習

期中考的練習題

務必記得:

  • 期中考雖然是 Open book 的考試,不過,並不會有網際網路可以使用
  • 也不能使用 FB 或 line 等通訊軟體。
  • 雖然可以使用手機或平板,不過,也只能用於查詢你曾經拍照過的照片或筆記
  • 可以攜帶任何書籍、筆記、或其他紙本資料
  • 你依舊可以翻閱自己在電腦裡面的程式碼來參考。

開始來練習吧!

  1. 變數型態 (chapter 3) 以及內建數學函數 (chapter 7) 加上型別轉換 (chapter 4) 的設計:
    設計一隻名為 pracetice1_01 的 java 程式,使用第七章講的內建函數來處理底下的任務:
    • 設計一個變數為『整數型態』 (注意,整數有那幾種宣告方式)
    • 使用內建函數的方式,去計算出 321 結果,最終將結果印出來。
    C:\Users\dic\java>java practice1_01
    計算 3 的 21 次方的整數結果為: 10460353203
    
    上面的結果是由計算式計算出來的,並不是自己手動 keyin 的喔!不要惡搞。
  2. 在座標軸上,假設兩點均位於第一象限 (兩個點都是正值),那麼如何算出這兩點的連線、每一點與 X 軸垂直劃線,組成的梯形面積會是多少? 設計出一隻名為 practice1_02 的 java 程式來處理上述的功能。
    C:\Users\dic>java practice1_02
    請輸入第一象限的兩個點,我將會計算這兩個點之間的面積
    第一個點 (使用空白隔開 X 與 Y 值,例如 3 5): 3 5
    第二個點 (使用空白隔開 X 與 Y 值,例如 7 9): 7 9
    梯形的面積為: 28.0
    
  3. 讓使用者輸入 (1)性別與 (2)身高,並根據底下的公式來計算標準體重的範圍:
    • 男性 (公斤) = [ (身高-80) * 0.7 ] ± 10%
    • 女性 (公斤) = [ (身高-70) * 0.6 ] ± 10%
    最終告訴使用者他的標準體重應該是要在哪個範圍內才好。設計出一個名為 practice1_03 的程式來處理。
    C:\Users\dic\java>java practice1_03
    根據男生還是女生,我會根據你的身高算出你的標準體重
    你是男生還是女生?男生輸入 1 ,女生輸入 0 : 1
    你的身高有多少公分: 177
    你填寫的資料是 男生, 身高是: 177.0
    標準體重計算如下:
    最低體重: 61.10999999999999 公斤
    最高體重: 74.69 公斤
    
  4. 輸入一個數字,計算能被 3 整除的阿拉伯數字的三次方總和的值。舉例來說,如果輸入為 10 的話,那可以被 3 整除的數 有 3, 6, 9 ,因此,你要算出 33 + 63 + 93 的數值。這需要用到迴圈以及算餘數的處理方式。 請設計一隻名為 practice1_04 的程式來處理。
    C:\Users\dic\java>java practice1_04
    請輸入一個數值,我將算出該數值內可以被 3 整除的數值,每個值的 3 次方總和
    請輸入數值: 10
    你輸入的值: 10, 計算的結果為: 972
    
  5. 持續擲出三個骰子,一直到有某兩個骰子相同為止。將每次的結果輸出到螢幕上,且最終告知你是幾點 (就是非相同的那個骰子的點數) 寫一隻名為 practice1_05 的程式來完成。
    C:\Users\dic\java>java practice1_05
    開始電腦自動擲骰子...
    第 1 次: 3 6 4
    第 2 次: 5 3 2
    第 3 次: 1 2 1
    擲出的點數: 2
    
  6. 假設你需要正常 BMI 值的身高與體重資料,總共需要產生 N 組 (N 由使用者輸入), 我們知道 BMI 值的計算公式為:『 BMI = 體重 (kg) / 身高 (公尺)平方 』,請產生 N 組 BMI 值符合 『 16 ≦ BMI < 20 』的資料, 並將這些資訊列印在螢幕中 (你需要用到迴圈、迴圈控制等項目的支援)。請寫一隻名為 practice1_06 的程式來完成。 如果有格式化輸出,成機會更好。
    C:\Users\dic\java>java practice1_06
    我將嘗試計算數個算是正常的 BMI 身高與體重
    你得注意到,身高應該是要在 150~190 公分之間才算合理啊!
    你想要計算幾組?例如 5 組: 10
    第   1 組 (身高 x 體重):  158.5 cm,   41.6 kg, BMI = 16.6
    第   2 組 (身高 x 體重):  153.1 cm,   44.8 kg, BMI = 19.1
    第   3 組 (身高 x 體重):  160.1 cm,   46.5 kg, BMI = 18.1
    第   4 組 (身高 x 體重):  166.4 cm,   51.7 kg, BMI = 18.7
    第   5 組 (身高 x 體重):  170.8 cm,   49.1 kg, BMI = 16.9
    第   6 組 (身高 x 體重):  165.7 cm,   51.3 kg, BMI = 18.7
    第   7 組 (身高 x 體重):  172.4 cm,   53.2 kg, BMI = 17.9
    第   8 組 (身高 x 體重):  166.8 cm,   50.7 kg, BMI = 18.2
    第   9 組 (身高 x 體重):  166.2 cm,   54.8 kg, BMI = 19.8
    第  10 組 (身高 x 體重):  173.1 cm,   56.8 kg, BMI = 19.0
    
  7. 四邊形的四個內角和是 360 度角,現在因為繪圖的需求,所以我想要隨機產生 N 組隨機的四角形。 假設內角的角度中,a, b, c, d 三個角都必需要介於 1 到 175 之間,但是最後的 d 角度則是 360-a-b-c 所產生。 請印出 N 組的四角形角度資料。寫一隻名為 practice1_07 的程式來完成。
    C:\Users\dic\java>java practice1_07
    我將嘗試處理 N 個四邊形的隨機運算!
    你想要計算幾組?例如 5 組: 7
    第   1 組角度:  106  45  98 111
    第   2 組角度:  125  18 159  58
    第   3 組角度:  108  26 122 104
    第   4 組角度:   99  42  68 151
    第   5 組角度:   97  67 160  36
    第   6 組角度:   23 136 137  64
    第   7 組角度:   36 122 171  31
    
  8. 一般汽油車的油耗大概介於『 9.0 ~ 25.0 km/liter 』之間,至於一般車輛的油箱容量則大概在 35~70 liter 之間。 一般來說:『汽車可行走距離 = 油箱容量 * 每公升跑幾公里』 這個公式是成立的。請產生 N 組油箱容量、油耗情況的組成, 該組成必需要能夠:
    • 讓你的汽車跑到 300 公里的距離。
    • 並請隨機產生一個平均時速介於 50~120 km/hr 的時速。
    • 最終告知該組合下,汽車要跑多久才能跑完 300 公里的距離。
    撰寫一隻名為 practice1_08 的程式來完成上述功能。
    C:\Users\dic\java>java practice1_08
    我將嘗試計算汽車油耗相關資訊
    你想要計算幾組?例如 5 組: 5
    第   1 組(油耗, 油箱, 時速, 時間):  19.8km/liter,  48.4liter,  69.0km/hr,  4.4hr
    第   2 組(油耗, 油箱, 時速, 時間):  15.2km/liter,  68.3liter,  81.1km/hr,  3.7hr
    第   3 組(油耗, 油箱, 時速, 時間):  10.2km/liter,  53.0liter,  86.3km/hr,  3.5hr
    第   4 組(油耗, 油箱, 時速, 時間):  20.9km/liter,  57.1liter, 113.1km/hr,  2.7hr
    第   5 組(油耗, 油箱, 時速, 時間):  19.1km/liter,  44.3liter,  60.3km/hr,  5.0hr
    
  9. 讓使用者輸入一個數值,然後開始計算從 1 到這個數值之間的所有阿拉伯數字, 找出可以被 7 整除的數字,將這堆數字個別乘上 3 次方之後,加總,將加總的結果輸出。 撰寫一隻名為 practice1_09 的程式來完成上述的功能。
    C:\Users\dic\java>java practice1_01
    請輸入一個數值,我將計算該數字內可被 7 整除的 3 次方總和結果: 10
    計算結果總和為: 343
    
    C:\Users\dic\java>java practice1_01
    請輸入一個數值,我將計算該數字內可被 7 整除的 3 次方總和結果: 100
    計算結果總和為: 3781575
    
  10. 讓使用者輸入兩個長度一樣的數字 (例如都是 6 位數),假設為 A 與 B,分別計算相同位數的數值, A 大於 B 的次數有幾次?例如 A 為 987654 與 B 為 979797 這兩個數值中,A 比 B 相同位置的數字大的,共有 1 次 ( 8 > 7 )。 撰寫一隻名為 practice1_10 的程式碼來完成上述的功能。(若有位數防呆功能,予以加分。)
    C:\Users\dic\java>java practice1_10
    請輸入兩個長度一樣的數值,我將計算這兩個數值同位數的數值大小
    第 1 個數值: 35323
    第 2 個數值: 123423
    你輸入的兩個數字位數並不一致,所以這裡就結束程式了。
    
    C:\Users\dic\java>java practice1_10
    請輸入兩個長度一樣的數值,我將計算這兩個數值同位數的數值大小
    第 1 個數值: 898989
    第 2 個數值: 887766
    A 的數字是:898989
    B 的數字是:887766
    A 比 B 相同位數大的次數共: 5
    
    
  11. 我需要設計一個打怪的遊戲,這個遊戲的定位是個直角座標。現在假設我需要產生 N 組怪物在第一、第三象限, 且座標需要在 -200 到 200 之間。假設主人翁的座標位於 (3, 5) 內,這些怪物距離主人翁的位置不能超過 100,算距離時, 可以使用 Math.sqrt (計算式) 來求得平方根。請將隨機產生的怪物座標印出來。請撰寫一隻名為 practice1_11 的程式碼來完成上面的動作。
    C:\Users\dic\java>java practice1_11
    我要開始設計打怪程式,我需要你輸入怪物出現的總數量
    請輸入數量 ex> 5: 10
    第 1 隻怪物的座標 ( 27, 43 )
    第 2 隻怪物的座標 ( 82, 50 )
    第 3 隻怪物的座標 ( 79, 41 )
    第 4 隻怪物的座標 ( 14, 93 )
    第 5 隻怪物的座標 ( 37, 6 )
    第 6 隻怪物的座標 ( -9, -37 )
    第 7 隻怪物的座標 ( 63, 58 )
    第 8 隻怪物的座標 ( 11, 33 )
    第 9 隻怪物的座標 ( -64, -54 )
    第 10 隻怪物的座標 ( 79, 6 )
    
  12. 我要設計一個遊戲,這個遊戲的是由一組團隊所產生,團隊內有主人與寵物,每個人物都有體力、魔力與攻擊力三個分數。 主人的體力、魔力與攻擊力數值範圍都在 10~100 之間,寵物的三個數值都在 30~80 之間。但整個團隊 (兩種人物) 的總體力、總魔力與總攻擊力數值均在 100~150 之間。 請產生 N 組這樣的團隊。請撰寫名為 practice1_12 的程式來達成上述的目的。
    C:\Users\dic\java>java practice1_12
    我要設計一個遊戲,虛擬團隊人物有主人與寵物,準備隨機算出能力值:
    請輸入數量 ex> 5: 5
    第 1 組的數值:
      主人體力, 魔力, 攻擊力: 80, 53, 90
      寵物體力, 魔力, 攻擊力: 34, 74, 47
    第 2 組的數值:
      主人體力, 魔力, 攻擊力: 60, 56, 81
      寵物體力, 魔力, 攻擊力: 78, 44, 38
    第 3 組的數值:
      主人體力, 魔力, 攻擊力: 82, 54, 76
      寵物體力, 魔力, 攻擊力: 31, 57, 53
    第 4 組的數值:
      主人體力, 魔力, 攻擊力: 37, 63, 95
      寵物體力, 魔力, 攻擊力: 77, 37, 35
    第 5 組的數值:
      主人體力, 魔力, 攻擊力: 50, 69, 87
      寵物體力, 魔力, 攻擊力: 72, 51, 34