天天看點

C Primer Plus第六版 第四章程式設計練習

1.編寫一個程式,提示使用者輸入名和姓,然後以“名,姓”的格式列印出來。

#include<stdio.h>

int main(void)
{
	char first_name[10];
	char last_name[10];
	printf("Please input your first name:");
	scanf("%s", first_name);
	printf("Please input your last name:");
	scanf("%s", last_name);
	printf("your name:%s.%s", first_name, last_name);
	return 0;
}
           

 2.編寫一個程式,提示使用者輸入姓名,并執行以下操作:

a.列印名字,包括雙引号

b.在寬度為20的字段右端列印名字,包括雙引号

c.在寬度為20的字段左端列印名字,包括雙引号

d.在比姓名寬度寬3的字段中列印名字

#include<stdio.h>
#include<string.h>

int main(void)
{
	char name[25];
	int number;
	printf("Please input your name:");
	scanf("%s", name);
	printf("\"%s\"\n", name);
	printf("\"%20s\"\n", name);
	printf("\"%-20s\"\n", name);
	number=strlen(name)+3;
	printf("\"%*s\"\n",number, name);
	return 0;
}
           

 3.編寫一個程式,讀取一個浮點數,首先以小數點計數法列印,然後以指數法列印,用下面的格式進行輸出:

a.The input is 21.3 or 2.1e+oo1.

b.The input id +21.290 or 2.129E+001

#include<stdio.h>

int main(void)
{
	float number1,number2;
	printf("Please input a number:");
	scanf("%f,%f", &number1,&number2);
	printf("The input %.1f or %.1e.\n", number1, number1);
	printf("The input %+.3f or %.3E.\n", number2, number2);
	return 0;
}
           

4.編寫一個程式,提示使用者輸入身高和姓名,以下面的格式顯示使用者剛輸入的資訊:

Dabney,you are 6.208 feet tall

使用float類型,并用/作為除号。如果你願意,可以要求使用者以厘米為機關顯示。

#include<stdio.h>

int main(void)
{
	char name[10];
	float number;
	printf("Please input your name:");
	scanf("%s", name);
	printf("Please input your height:");
	scanf("%f", &number);
	printf("%s,you are %.3f meter tall", name, number/100);
	return 0;
}
           

5.編寫一個程式,提示使用者輸入以兆位每秒(Mb/s)為機關的下載下傳速度和以兆位元組(MB)為機關的檔案大小。程式中應計算檔案的下載下傳時間。注意,這裡1位元組等于8位。使用float類型,并用/作為除号。該程式要以下面的格式列印3個變量的值(下載下傳速度、檔案大小和下載下傳時間),顯示小數點後面兩位數字:

At 18.12 megabits per second, a file of 2.20 megabytes

downloads in 0.97 seconds.

#include<stdio.h>

int main(void)
{
	float mb_speed, MB;
	printf("Please input mb_speed:");
	scanf("%f", &mb_speed);
	printf("Please input MB:");
	scanf("%f", &MB);
	printf("At %.2f megabits per second, a file of %.2f megabytes\n", mb_speed,MB);
	printf("downloads in %.2f seconds.", MB * 8 / mb_speed);

	return 0;
}
           

6.編寫一個程式,先提示使用者輸入名,然後提示使用者輸入姓。在一行列印使用者輸入的名和姓,下一行分别列印名和姓的字母數。字母數要與相應名和姓的結尾對齊,如下所示:

Melisia        Honeybee

         7                       8

接下來,再列印相同的資訊,但是字母個數與相應的姓和名的開頭對齊,如下所示:

Melisia        Honeybee

 7                8

#include<stdio.h>
#include<string.h>
int main(void)
{
	char first_name[8];
	char last_name[8];
	int m, n;
	printf("Please input first_name:");
	scanf("%s", first_name);
	printf("Please input last_name:");
	scanf("%s", last_name);
	m = strlen(first_name);
	n = strlen(last_name);
	printf("%s	%s\n", first_name, last_name);
	printf("%*d	%*d\n", m, m,n,n);
	printf("%s	%s\n", first_name, last_name);
	printf("%d	%d", m, n);
	

	return 0;
}
           

7.編寫一個程式,将一個double類型的變量設定為1.0/3.0,一個float類型的變量設定為1.0/3.0。分别顯示兩次計算的結果各3次:一次顯示小數點後面6位數字;一次顯示小數點後面12位數字;一次顯示小數點後面16位數字。程式中要包含float.h頭檔案,并顯示FLT_DIG和DBL_DIG的值。1.0/3.0的值與這些值一緻嗎?

8.編寫一個程式,提示使用者輸入旅行的裡程和消耗的汽油量。然後計算并顯示消耗每加侖汽油行駛的英裡數,顯示小數點後面一位數字。接下來,使用1加侖大約3.785升,1英裡大約為1.609千米,把機關是英裡/加侖的值轉換為升/100公裡(歐洲通用的燃料消耗表示法),并顯示結果,顯示小數點後面1位數字。

#include<stdio.h>

#define JIALUN_SHENG 3.785
#define YINGLI_QIANMI 1.609
int main(void)
{
	float m, n;
	printf("please input the jialun:");
	scanf("%f", &m);
	printf("please input the yingli:");
	scanf("%f", &n);
	printf("please input the jialun/yingli:%.1f\n",m/n);
	printf("please input the sheng/100qianmi:%.1f\n", m* JIALUN_SHENG /100* n* YINGLI_QIANMI);

	return 0;
}
           

繼續閱讀