next up previous contents
Next: 運算子 Up: 格式化輸入輸出 Previous: scanf 數值後字元問題處理   Contents

實機練習題

  1. 共同要求:
    1. 在家目錄下建立 zzz 目錄。
    2. 切換工作目錄到 zzz,所有練習皆存在此目錄。
    3. 題目沒要求的,不要多做,除題目輸出範例要求的空白外,不要多加任何空白或空白行。
  2. 撰寫 C 語言程式
    1. 程式 formatio1.c 以 fgets 從鍵盤輸一字串,印出此字串且以雙引號括起來,印出結束要換行,編譯成可執行檔 formatio1。 例如:輸入「string test!」,輸出如下,前面的數字是字串長度 (包含結束字元)。
      13 "string test!"
      
      提示:include string.h 使用 strlen 取得輸入字串長度,並將字串最後的換行字元 '\n' 取代成結束字元 '\0'
    2. 承上題 formatio1.c,程式 formatio2.c 以 fgets 從鍵盤輸一小數點浮點數,以整數 5 位,小數點 2 位方式印出此浮點數,例如:輸入 123.45,輸出為 num=00123.45,印出結束要換行,編譯成可執行檔 formatio2。 提示:include stdlib.h 使用 atof 函式將輸入的字元轉換成 double 再用 printf 輸出。
    3. 程式 formatio3.c 提示「輸入:姓名 學號 IP末段:」(以空白隔開),以 scanf 讀取輸入內容,輸出「192.168.1.IP末段,學號,姓名」(中間以逗號 ","分隔),例如:輸入「王大明 10927000 111」,輸出如下,印出結束要換行,編譯成可執行檔 formatio3。
      輸入:姓名 學號 IP末段:王大明 10927000 111
      192.168.1.111,10927000,王大明
      
    4. 程式 formatio4.c 以 scanf 輸入兩個整數,中間夾兩個字元,輸出兩個數字的相加,輸入輸出如下,印出結束要換行,編譯成可執行檔 formatio4。
      Enter TWO numbers with two chars: 12we34
      e-w : 12 + 34 = 46
      
    5. 程式 formatio5.c 以 scanf 輸入兩個整數,中間夾一個字串,輸出兩個數字的相加,輸入輸出如下,印出結束要換行,編譯成可執行檔 formatio5。 提示:scanf 取字串的格式碼為 %s,使用 %[^0-9-] 取非數子及負號的字串。
      Enter TWO numbers with a string: -98qwert-12
      qwert : -98 + -12 = -110
      


De-Yu Wang 2019-09-19