(不好意思小宣傳一下我的繪圖 希望大家喜歡)

 

 

\\

這是我的海苔貓粉專

www.facebook.com/norinekocat/

 

海苔貓IG

海苔貓Instagram

 

謝謝大家:))

 

裡面有許多繪圖作品~ 

希望大家支持我會繼續努力

 

請多多指教哦

 

 

 


【C語言教學手冊(四版)-練習題解答】第四章 格式化的輸出與輸入

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, 輸入字串的錯誤 */

02 #include 
03 #include 
04 int main(void) 
05 { 
06 char ch1,ch2; 
07 
08 printf("請輸入第一個字元:"); 
09 scanf("%c",&ch1); 
10 printf("請輸入第二個字元:"); 
11 scanf("%c",&ch2); 
12 printf("ch1=%c, ch2=%c\n",ch1,ch2); 13 
14 system("pause"); 
15 return 0; 
16 }
(a) 試說明為什麼第二個字元無法順利輸入?
(b) 試修改第 11 行的格式字串,使得本例中的第二個字元可以順利的輸入。
(c) 試撰寫程式碼,利用 fflush()函數來清空緩衝區內的資料,使得本例中的第二 個字元可以順利的輸入。

(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

新的貼圖終於出來了

可愛的海苔貓-第三代

 


海苔貓繪圖作品\\

海苔貓 norineko

 

海苔貓 norineko

 

海苔貓 norineko

 

海苔貓 norineko

 

 

海苔貓 norineko海苔貓 norineko

    

海苔貓 norineko海苔貓 norineko

 

海苔貓 norineko

 

希望大家支持~~

 

 

海苔貓粉專

www.facebook.com/norinekocat/

 

海苔貓IG

海苔貓Instagram

 

海苔貓 norineko

 

arrow
arrow

    海苔貓Nori 發表在 痞客邦 留言(0) 人氣()