第四章 編程練習(xí)
1.編寫一個(gè)程序阿迈,提示用戶輸入名和姓,然后以『名轧叽,姓』的格式打印出來苗沧。
char name[40];
char family[40];
printf("請(qǐng)輸入名和姓:\n");
scanf("%s %s",name,family);
printf("%s,%s\n",name,family);
2.編寫一個(gè)程序,提示用戶輸入名和姓炭晒,并執(zhí)行一下操作:
#include <stdio.h>
#include <string.h>
int main(){
char name[40];
printf("請(qǐng)輸入名和姓:\n");
scanf("%s",name);
printf("%s\n",name);
//a.打印名和姓包括雙引號(hào)
printf("\"%s\"\n",name);
//b.在寬度20的字段右端打印名和姓待逞,包括雙引號(hào)
printf("\"%20s\"\n",name);
//c.在寬度為20的字段左端打印名和姓,包括雙引號(hào)
printf("\"%-20s\"\n",name);
//d.在比姓名寬度寬3的字段中打印名和姓
int len = (int)strlen(name) + 3;
printf("%*s",len,name);
return 0;
}
3.編寫一個(gè)程序网严,讀取一個(gè)浮點(diǎn)數(shù)识樱,首先以小數(shù)點(diǎn)計(jì)數(shù)法打印,然后以指數(shù)計(jì)數(shù)法打印震束。用下面的格式進(jìn)行輸出(系統(tǒng)不同怜庸,指數(shù)計(jì)數(shù)法顯示的位數(shù)可能不同)
float aF;
scanf("%f",&aF);
//1.首先以小數(shù)點(diǎn)計(jì)數(shù)法打印
printf("%f\n",aF);
//2.然后以指數(shù)計(jì)數(shù)法打印
printf("%e\n",aF);
4.編寫一個(gè)程序,提示用戶輸入身高(單位:英寸)和姓名垢村,然后以下面的格式顯示用戶剛剛輸入的信息:
Dabney, you are 6.208 feet tall
int main(){
float aHeight;
printf("輸入身高:");
scanf("%f",&aHeight);
printf("Dabney,you are %.3f feet tall",aHeight);
return 0;
}
5.編寫一個(gè)程序割疾,提示用戶輸入以兆位每秒(Mb/s)為單位的下載速度和以兆字節(jié)(MB)為單位的文件大小,程序中的應(yīng)計(jì)算文件下載時(shí)間嘉栓。注意宏榕,這里1字節(jié)等于8位拓诸。使用float類型,并用/作為除號(hào)麻昼。該程序要以下面的格式打印3個(gè)變量的值(下載速度奠支、文件大小和下載時(shí)間),顯示小數(shù)點(diǎn)后面兩位數(shù)字:
At 18.12 megabits per second, a file of 2.20 megabytes downloads in 0.97 seconds.
#include <stdio.h>
int main(){
float downloadSpeed;
float downloadTime;
float fileSize;
printf("速度:\n大小:\n");
scanf("%f",&downloadSpeed);
scanf("%f",&fileSize);
downloadTime = fileSize/(downloadSpeed/8);
printf("速度%.2f,大小%.2f,需要%.2f秒",downloadSpeed,fileSize,downloadTime);
return 0;
}
6.編寫一個(gè)程序抚芦,先提示用戶輸入名倍谜,然后提示用戶輸入姓。在一行打印用戶輸入的名和姓叉抡,下一行分別發(fā)音名和姓的字母數(shù)枢劝。字母鼠藥雨響應(yīng)名和姓的結(jié)尾對(duì)齊,接下來卜壕,在打印相同的信息,但是字母?jìng)€(gè)數(shù)與相應(yīng)名和姓的開頭對(duì)齊烙常。
#include <stdio.h>
#include <string.h>
int main(){
char name[40];
char family[40];
printf("名:");
scanf("%s",name);
printf("姓:");
scanf("%s",family);
printf("%s %s\n",name,family);
int nameLen = (int)strlen(name);
int familyLen = (int)strlen(family);
printf("%*d %*d\n",nameLen,nameLen,familyLen,familyLen);
printf("%s %s\n",name,family);
printf("%-*d %-*d\n",nameLen,nameLen,familyLen,familyLen);
return 0;
}
7.編寫一個(gè)程序轴捎,將一個(gè)double類型的變量設(shè)置位1.0/3.0,一個(gè)float類型的變量設(shè)置為1.0/3.0蚕脏。分別顯示兩次計(jì)算的結(jié)果各三次:一次顯示小數(shù)點(diǎn)后面6位數(shù)字侦副。一次顯示小數(shù)點(diǎn)后面12位數(shù)字,一次顯示小數(shù)點(diǎn)后面16位數(shù)字驼鞭。程序中要搬float.h文件夾秦驯,并顯示FIT-DIG和DBL-DIG的值。1.0/3.0的值與這些值一致嘛挣棕?
#include <stdio.h>
#include <float.h>
int main(){
float aF = 1.0/3.0;
double aD = 1.0/3.0;
printf("%.6f %.6f\n",aF,aD);
printf("%.12f %.12f\n",aF,aD);
printf("%.16f %.16f\n",aF,aD);
printf("%d %d\n",FLT_DIG,DBL_DIG);
return 0;
}
8.編寫一個(gè)程序译隘,提示用戶輸入旅行的里程和消耗的汽油量。然后計(jì)算并顯示消耗每加侖汽油行駛的英里數(shù)洛心,顯示小數(shù)點(diǎn)后面一位數(shù)字固耘。接下來,使用一加侖大約3.785升词身,一英里約為1.609千米厅目,把單位是英里/加侖的值轉(zhuǎn)換為 升/100公里,并顯示結(jié)果法严,顯示小數(shù)點(diǎn)后面1位數(shù)字损敷。注意,美國(guó)采用的方案測(cè)量消耗單位燃料的行程深啤,而歐洲則采用單位距離消耗的燃料測(cè)量方案拗馒。使用#deifne創(chuàng)建符號(hào)常量或使用const限定符。
#include <stdio.h>
#include <float.h>
int main(){
const double statuteMileToKilometer = 1.609;
const double gallonToLitre = 3.785;
double statuteMile;
double gallon;
double consumption;
printf("里程英里\n");
scanf("%lf",&statuteMile);
printf("加侖耗油量\n");
scanf("%lf",&gallon);
double kilometer = statuteMile/statuteMileToKilometer;
//一公里的耗油量
double litre = gallon/kilometer/gallonToLitre;
consumption = litre * 100;
printf("100公里耗油量是: %.1f/100",consumption);
return 0;
}