C Primer Plus 第6版 第4章 编程练习

1.提示用户输入名和姓,然后以名,姓的格式打印。 

#include<stdio.h>
int main(void)
{
	char ming[20], xing[20];
	printf("输入名");
	scanf_s("%s",ming,20);
	printf("输入姓");
	scanf_s("%s", xing,20);
	printf("%s,%s", ming, xing);

	getchar(); getchar();
	return 0;
}

注:如果是在vs2017中编译,要用scanf_s替代scanf,或者在程序最前面加:
#define _CRT_SECURE_NO_DEPRECATE

2.提示用户输入名和姓,然后:

a.打印名和姓包括双引号

b.在宽度为20的字段右段打印名和姓包括双引号

c.在宽度为20的字段左段打印名和姓包括双引号

d. 在比姓名宽度+3的字段中打印名和姓

#include<stdio.h>
#include<string.h>
int main(void)
{
	char ming[20], xing[20];
	int len_ming, len_xing;
	printf("输入名");
	scanf_s("%s",ming,20);
	printf("输入姓");
	scanf_s("%s", xing,20);
	len_ming = strlen(ming);
	len_xing = strlen(xing);
	printf("\"%s,%s\"\n", ming, xing);
	printf("\"%20s,%20s\"\n", ming, xing);
	printf("\"%-20s,%-20s\"\n", ming, xing);

	printf("\"%*s,%*s\"\n",len_ming+3, ming, len_xing+3,xing);
	getchar(); getchar();
	return 0;
}


3.读取1个浮点数,分别以小数、指数打印

#include<stdio.h>
int main(void)
{
	float n;
	printf("输入一个浮点数:");
	scanf_s("%f", &n);
	printf("小数形式:%.1f 指数形式:%.1e\n", n,n);
	printf("小数形式:%.3f 指数形式:%.3E\n", n, n);

	getchar(); getchar();
	return 0;
}


4.提示用户输入身高(厘米)和姓名,然后按照格式显示。格式:

dabney, you are 6.208 feet tall.

#include<stdio.h>
int main(void)
{
	float tall;
	char name[50];
	printf("输入你的身高(cm):");
	scanf_s("%f", &tall);
	printf("输入你的姓名:");
	scanf_s("%s", &name, 50);
	printf("%s, 你身高%.1f厘米", name, tall);

	getchar(); getchar();
	return 0;
}


5.用户输入下载速度(MB/S),文件大小(MB)计算下载时间

#include<stdio.h>
int main(void)
{
	float download_speed;
	float file_v;
	float download_time;
	printf("请输入下载速度(MB/s):");
	scanf_s("%f", &download_speed);
	printf("请输入文件大小(MB):");
	scanf_s("%f", &file_v);
	download_time = file_v / download_speed;
	printf("下载速度为%.2f MB/S, %.2fMB的文件将在%.2f秒后下载完成", download_speed, \
		file_v, download_time);

	getchar(); getchar();
	return 0;
}


6.提示用户输入名和姓,然后一行打印名和姓,下一行打印名和姓的字母数,数字和相应的名和姓的结尾对齐。

#include<stdio.h>
#include<string.h>
int main(void)
{
	char name[40], surname[40];
	int len_name,len_surname;
	printf("请输入名:");
	scanf_s("%s",name,40);
	printf("请输入姓:");
	scanf_s("%s", surname, 40);
	len_name = strlen(name);
	len_surname = strlen(surname);
	printf("%s %s\n", name, surname);
	printf("%*d %*d", len_name, len_name, len_surname, len_surname);
	getchar(); getchar();
	return 0;
}


7.将一个double 和float 变量设置为1.0/3.0 ,然后显示小数点后6,12,16位。

包含头文件float.h,打印FLT_DIG和DBL_DIG;

#include<stdio.h>
#include<float.h>
int main(void)
{
	double d = 1.0 / 3.0;
	float f = 1.0 / 3.0;
	printf("Float:%.6f %.12f %.16f\n", f, f, f);
	printf("Double %.6f %.12f %.16f\n", d, d, d);

	printf("float:%d\ndouble:%d\n", FLT_DIG, DBL_DIG);
	getchar(); getchar();
	return 0;
}


8.提示用户输入旅行的里程 和消耗的汽油量,然后计算每 加仑 汽油 行驶的路程(英里) 精度为小数点后1位。

1加仑约3.785升,1英里约 1.609 千米 把英里/加仑 转换成 升/百公里 显示结果(1位小数)

#include<stdio.h>
int main(void)
{
	const float gallonToL = 3.785;
	const float mileToKm = 1.609;
	float miles, gallon;
	printf("请输入里程(英里)和耗油量(加仑)");
	scanf_s("%f %f", &miles, &gallon);
	printf("每加仑行驶%.1f英里\n", miles / gallon);
	printf("相当于%.f升/100公里", 100* gallon*gallonToL / miles * mileToKm);
	getchar(); getchar();
	return 0;
}


猜你喜欢

转载自blog.csdn.net/qq_41068877/article/details/83308574