目錄表
Turnin作業3
- Turnin Code: c.hw3
- Due Date: 2026/09/22 23:59 Hard Deadline
繳交方式說明
本次Turnin作業包含兩個程式題,請將它撰寫完成、編譯無誤後,使用turnin指令上傳作業。以下的示範 假設 同學在ws的家目錄裡已有一個專門用於繳交作業的 homework 資料夾,請在其中建立一個名為 hw3 的子資料夾,然後在homework/hw3裡進行本次作業的撰寫。
[7:17 user@ws in somewhere]$▴cd▴~↵
[7:17 user@ws in ~]$▴cd▴homework↵
[7:17 user@ws in homework]$▴mkdir▴hw3↵
[7:17 user@ws in ~]$▴cd▴hw3↵
[7:17 user@ws in hw3]$▴joe▴size_of_floatings.c↵ <--撰寫 size_of_floatings.c 程式
[7:17 user@ws in hw3]$▴joe▴num_convert.c↵ <--撰寫 num_convert.c 程式
[7:17 user@ws in hw3]$▴joe▴floating.c↵ <--撰寫 floating.c 程式
[7:17 user@ws in hw3]$▴joe▴square_meter_2_ping.c↵ <--撰寫 square_meter_2_ping.c 程式
[7:17 user@ws in hw3]$▴joe▴ntd_2_jpy.c↵ <--撰寫 ntd_2_jpy.c 程式
本次作業撰寫完成後,請先使用以下指令對.c進行編譯與執行:
[7:17 user@ws in hw3]$▴cc▴size_of_floatings.c↵
[7:17 user@ws in hw3]$▴./a.out↵
待編譯與執行結果皆確認無誤後,請使用 turnin 指令上傳作業。請參考以下指令:
[7:17 user@ws in hw3]$▴turnin▴c.hw3▴size_of_floatings.c↵
至於第二題的num_convert.c,也同樣使用類似指令完成編譯與執行:
[7:17 user@ws in hw3]$▴cc▴num_convert.c↵
[7:17 user@ws in hw3]$▴./a.out↵
同樣地,待編譯與執行結果皆確認無誤後,再次使用 turnin 指令上傳作業。請參考以下指令:
[7:17 user@ws in hw3]$▴turnin▴c.hw3▴num_convert.c↵
你也可以使用以下指令,一次將homework/h3裡的所有c程式上傳:
[7:17 user@ws in hw3]$▴turnin▴c.hw3▴*.c↵
如果一切順利,你應該可以使用以下指令確認已上傳的內容:
[7:17 user@ws in hw3]$▴turnin▴-ls▴c.hw3↵
.:
total 40
-rw-rw----. 1 turninman turnin 263 Sep 14 13:15 size_of_floatings.c
-rw-rw----. 1 turninman turnin 593 Sep 14 13:15 ntd_2_jpy.c
-rw-rw----. 1 turninman turnin 379 Sep 14 13:15 num_convert.c
-rw-rw----. 1 turninman turnin 212 Sep 14 13:15 floating.c
-rw-rw----. 1 turninman turnin 259 Sep 14 13:15 square_meter_2_ping.c
[7:17 user@ws in hw3]$▴
註:本文使用▴及↵代表空白字元與Enter換行字元,並且將使用者輸入的部份使用灰階方式顯示。另外,出現在程式執行結果中的符號皆為半形。
p1 浮點數型別之記憶體大小(size_of_floatings.c)
請設計一個C語言的程式size_of_floatings.c,將float、double與long double等浮點數型態所佔用的記憶體空間(單位為位元組)輸出,其執行結果可參考以下的畫面:
[7:17 user@ws in hw3]$▴./a.out↵
long▴double:▴memory▴space▴=▴16▴bytes.↵
double:▴memory▴space▴=▴8▴bytes.↵
float:▴memory▴space▴=▴4▴bytes.↵
[7:17 user@ws in hw3]$▴
p2 數字系統轉換(num_convert.c)
請設計一個C語言的程式num_convert.c,要求使用者輸入一個八進制與一個十進制的整數,並將這兩個整數轉換為十六進制後輸出,其執行結果可參考以下的畫面:
[7:17 user@ws in hw3]$▴./a.out↵
Please▴input▴an▴integer▴in▴octal:▴77↵
Octal(77)▴=▴Hexadecimal(3f).↵
↵
Please▴input▴an▴integer:▴101↵
Decimal(101)▴=▴Hexadecimal(65).↵
[7:17 user@ws in hw3]$▴./a.out↵
Please▴input▴an▴integer▴in▴octal:▴30↵
Octal(30)▴=▴Hexadecimal(18).↵
↵
Please▴input▴an▴integer:▴1000↵
Decimal(1000)▴=▴Hexadecimal(3e8).↵
[7:17 user@ws in hw3]$▴
p3 浮點數與科學記號(floating.c)
請設計一個C語言的程式floating.c,要求使用者輸入一個浮點數(宣告為float型態), 並將該浮點數改以科學記號表示法(scientific notation)輸出,其執行結果可參考以下的畫面:
[7:17 user@ws in hw3]$▴./a.out↵
Please▴input▴a▴floating▴number:▴21.5166↵
The▴scientific▴notation▴of▴21.516600▴is▴2.151660e+01.↵
[7:17 user@ws in hw3]$▴./a.out↵
Please▴input▴a▴floating▴number:▴1.1234↵
The▴scientific▴notation▴of▴1.123400▴is▴1.123400e+00.↵
[7:17 user@ws in hw3]$▴
p9 土地單位轉換(square_meter_2_ping.c)
請設計一個C語言程式square_meter_2_ping.c,讓使用者以平方公尺為單位輸入一筆土地面積(可包含小數),將其轉換為對應的坪數(台灣慣用的面積單位)後輸出。注意,此題請以 double型態 的浮點數進行計算,並以 1平方公尺 = 0.3025坪 進行計算。本題的執行結果可參考以下的畫面:
[7:17 user@ws in hw3]$▴./a.out↵
Please▴input▴an▴area▴in▴square▴meters:▴100↵
100.000000(square▴meters)▴=▴30.250000(ping).↵
[7:17 user@ws in hw3]$▴./a.out↵
Please▴input▴an▴area▴in▴square▴meters:▴65.942↵
65.942000(square▴meters)▴=▴19.947455(ping).↵
[7:17 user@ws in hw3]$▴
p10 台幣兌換日幣(ntd_2_jpy.c)
假設某銀行在處理台幣兌換日幣時,會先將台幣依匯率轉換為日幣總額,接著收取日幣總額的千分之95作為「基本手續費」。此外,每兌換1元台幣,銀行還會提供0.2元日幣的「折抵金」。最終的「實際手續費」為「基本手續費」扣除「折抵金」。
請設計一個C語言程式ntd_2_jpy.c,讓使用者輸入欲兌換的台幣金額(整數),計算並輸出被扣除的「實際手續費」以及最終可換取的日幣金額。此題如需要使用浮點數,請一律使用double型態,並以1元台幣=4.82元日幣進行計算。本題的執行結果可參考以下的畫面:
注意:此程式最終輸出的兩個金額必須為整數,有小數部份則一律無條件捨去。
[7:17 user@ws in hw3]$▴./a.out↵
Please▴input▴the▴NTD▴amount:▴5500↵
Deducted▴fee▴is▴1418▴JPY.↵
You▴can▴get▴25091▴JPY.↵
[7:17 user@ws in hw3]$▴./a.out↵
Please▴input▴the▴NTD▴amount:▴12345↵
Deducted▴fee▴is▴3183▴JPY.↵
You▴can▴get▴56319▴JPY.↵
[7:17 user@ws in hw3]$▴
