(不好意思小宣傳一下我的繪圖 希望大家喜歡)
\\♥
謝謝大家:))
希望大家支持我會繼續努力
【C語言教學手冊(四版)-練習題解答】第四章 格式化的輸出與輸入
----第2題, 試撰寫一程式,利用 printf() 函數列印出如下的字串(必須包含雙引號): "I love C language best."
#include<stdio.h>
int main(){
printf("\"I love C language best.\"\n");
}
----第3題, 試嘗試利用一個 printf() 函數將字串常數 "Hello, C" 與 "Hello, World" 分別列印在 不同一行(必須包含雙引號)。
#include<stdio.h>
int main(){
printf(“\”Hello, C\”\n”);
printf(“\”Hello, World\”\n”);
}
----第4題, 試撰寫一程式,利用 printf() 函數列印出如下的字串(必須包含雙引號):
#include<stdio.h>
int main(){
printf("\"100/4=25\"\n");
}
----第5題, 試撰寫一程式,利用 printf() 函數列印出如下的字串(必須包含單引號): '30% 的學生來自中部地區,42% 的學生來自南部地區。
#include <stdio.h>
int main(){
printf(“\’30%% 的學生來自中部地區,42%% 的學生來自南部地區。\’\n”);
}
----第6題, 試撰寫一程式,將浮點數變數 num=28.47f 以下圖的格式印出(小數點前面有 4 位,小 數點後有 2 位,不滿欄位長度時填入 0):num=0028.47
#include <stdio.h>
int main(){
float num = 28.47f;
printf(“num=%07.2f\n”, num);
}
----第7題, 試撰寫一程式,將浮點數變數 num=12.34f 以下圖的格式印出(小數點前面有 4 位,小 數點後有 2 位,不滿欄位長度時填入 0,並印出其變數的正負號):num=+0012.34
#include <stdio.h>
int main(){
float num = 12.34f;
printf(“num=%+08.2f\n”, num);
}
----第8題, 試撰寫一程式,利用 printf() 函數將下列字串印出: There is an old saying, "Love me, love my dog."
#include<stdio.h>
int main(){
printf("There is an old saying,\"Love me, love my dog.\"\n");
}
----第9題, 下面的程式碼是想設計從鍵盤讀入一個整數,並設定給變數 num 存放。此程式於執行 時會發生錯誤,試指出錯誤之所在,並試著修正之,使得程式可以正確的執行。
第七行 scanf(“%d”, num); 有誤,欲從鍵盤輸入資料儲存於變數 num,然而機器找不到變數 num。
應改為:scanf(“%d”, &num);
----第11題, 試撰寫一程式,由鍵盤輸入學生的學號(整數型態)及年齡(整數型態),輸入完畢 後將剛才所輸入的內容印出在螢幕中。
#include <stdio.h>
int main(){
int num, age;
printf("請輸入學生學號 :");
scanf("%d", &num);
printf("請輸入學生年齡 :");
scanf("%d", &age);
printf("所輸入的學生學號是 %d,年齡為 %d 歲\n", num, age);
}
----第12題, 試撰寫一程式,由使用者先輸入姓氏,再輸入名字,輸出時則先印出名字,再印出姓氏。
#include<stdio.h>
int main(){
char fname[10];
char lname[10];
printf("請輸入姓氏: ");
scanf("%s", fname);
printf("請輸入名字: ");
scanf("%s",lname);
printf(“\n 所輸入的資料是\n”);
printf("名字: %s\n", fname);
printf("姓氏: %s\n",lname);
}
----第13題, 試撰寫一程式,輸入一長度最多為 10,且不包括空白的字串,並做下列的處理。
(a) 以雙引號將字串包圍。
(b) 以反斜線\將字串包圍,印出時的欄寬為 20。
(c) 以反斜線\將字串包圍,印出時的欄寬為 20,靠左印出。
#include <stdio.h>
int main(){
char str[10];
printf("請輸入長度最多為 10 不包含空白的字串: ");
scanf("%s", str);
printf("\"%s\"\n", str);
printf("\\%20s\\\n”, str);
printf("\\%-20s\\\n”, str);
}
----第16題, 試著利用下面的程式,將字串 "No more goodbye" 輸入:
(a) 當輸入字串 No more goodbye 後,於第九行卻只讀到 No,原因是讀到空白時會認為字串結束,此即使用 scanf(“%s”, str); 輸入字串時不能有空白。
(b) 將第九行 scanf(“%s”, str); 改為 gets(str);
----第17題, 請先執行下面的程式碼,然後回答接續的問題:
01 /* hw4_17.c, 輸入字串的錯誤 */
(a) 輸入第一個字元後按 enter 鍵,第九行的 scanf() 會讀到該字元。但是按 enter 鍵會產生CR 與 LF 兩個控制碼,CR 的 ASCII code 是 13,而 LF 的 ASCII code 是 10,鍵盤的緩衝區會殘留 LF。因此第十一行的 scanf() 會讀到 LF,以為是輸入的第二個字元。
(b) 將第十一行 scanf("%c",&ch2); 改為 scanf(" %c",&ch2);,此即於 %c 前多一個空白。
(c) 於第十一行 scanf("%c",&ch2); 前加入 fflush(stdin); 來清除緩衝區的殘留字元。
----第18題, 試說明 getchar()、getche() 與 getch() 函數各適用於哪些情況。
getchar():使用者從鍵盤上輸入一個字元,當按下 enter 鍵後,此字元才會被變數所接收。
getche():使用者從鍵盤上輸入一個字元不用按 enter 鍵,該字元立即被變數所接收。
getch():使用者從鍵盤上輸入一個字元不用按 enter 鍵,該字元立即被變數所接收,但該字元不會顯示在螢幕上。
----第19題, 試修改 prog4_20 的第 14 行,以 getchar() 函數來取代。
第 14 行改為: ch = getchar();
----第20題, 試修改 prog4_22,使得字元的輸出是利用 putchar() 函數,而不是用 printf() 函數。
將第 10 行與第 14 行改為:
putchar(ch);
putchar('\n');
ps
新的貼圖終於出來了
海苔貓繪圖作品\\
希望大家支持~~
留言列表