C语言基本概念编程题

1 编程练习一

        这一部分编程练习题可以学到箱子空间重量的计算方法,以及华氏温度转换为摄氏温度的方法。

1.1 计算箱子的空间重量

        箱子的空间重量,是相对于箱子的实际重量的一个概念。

1.1.1 设计代码

/* Computes the dimensional weight */

#include 

int main(void)
{
	int height, length, width, volume, weight;

	height = 8;
	length = 12;
	width = 10;

	volume = height * length * width;
	weight = (volume + 165) / 166;

	printf("Volume (cubic inches): %d\n", volume);
	printf("Dimensional weight (pounds): %d\n", weight);
	
	return 0;
}

1.1.2 执行结果

图1 计算箱子的空间重量代码执行结果

1.2 计算箱子的空间重量(改进版)

        计算箱子的空间重量代码的改进版本中,用户能够自己输入箱子的长、宽、高。

1.2.1 设计代码

/* Computes the dimensional weight of a
   box from input provided by the user
*/

#include 

int main(void)
{
	int height, length, width, volume, weight, ret;

	printf("Enter height of box: ");
	ret = scanf("%d", &height);
	printf("Enter length of box: ");
	ret = scanf("%d", &length);
	printf("Enter width of box: ");
	ret = scanf("%d", &width);
	volume = height * length * width;
	weight = (volume + 165) / 166;

	printf("Volume (cubic inches): %d\n", volume);
	printf("Dimensional weight (pounds): %d\n", weight);

	return 0;
}

1.2.2 执行结果

C语言基本概念编程题_第1张图片 图2 计算箱子的空间重量(改进版)代码执行结果

1.3 华氏温度转换为摄氏温度

        通过定义常量的名字,使代码更容易理解。

1.3.1 设计代码

/* Convert a Fahrenheit temperature to Celsius */

#include 

#define FREEZING_PT 32.0f
#define SCALE_FACTOR (5.0f / 9.0f)

int main(void)
{
	float fahrenheit, celsius;
	int ret;

	printf("Enter Fahrenheit temperature: ");
	ret = scanf("%f", &fahrenheit);

	celsius = (fahrenheit - FREEZING_PT) * SCALE_FACTOR;

	printf("Celsius equivalent: %.1f\n", celsius);

	return 0;
}

1.3.2 执行结果

图3 华氏温度转换为摄氏温度代码执行结果

2 编程练习二

        这一部分的练习能够增加对C语言基本概念的认识,提高使用C语言解决现实问题的能力。

2.1 显示图形

        多次使用printf可以显示比较复杂的图形。

2.1.1 设计代码

/* 显示图形 */

#include 

int main(void)
{
	printf("       *\n");
	printf("      *\n");
	printf("     *\n");
	printf("*   *\n");
	printf(" * *\n");
	printf("  *\n");
	return 0;
}

2.1.2 执行结果

C语言基本概念编程题_第2张图片 图4 显示图形代码执行结果

2.2 计算球体体积

        编写代码,通过公式,实现球体体积的计算。

2.2.1 设计代码

/* 计算球体体积 */

#include 

#define PI 3.1415926

int main(void)
{
	int radius;
	float volume;

	radius = 10;

	volume = (4.0f / 3.0f) * PI * radius * radius * radius;

	printf("%.2f\n", volume);

	return 0;
}

2.2.2 执行结果

图5 计算球体体积代码执行结果

2.3 计算球体体积(改进版)

        改进版代码中,用户可以自己输入球体的半径。

2.3.1 设计代码

/* 计算球体体积(改进版) */

#include 

#define PI 3.1415926

int main(void)
{
	int radius, ret;
	float volume;

	printf("Enter radius of sphere: ");
	ret = scanf("%d", &radius);

	volume = (4.0f / 3.0f) * PI * radius * radius * radius;

	printf("Volume (cubic meters): %.2f\n", volume);

	return 0;
}

2.3.2 执行结果

图6 计算球体体积(改进版)代码执行结果

2.4 增加税率后的美元数量

        对于给定的美元数量,增加税率,显示增加税率后的美元数量。

2.4.1 设计代码

#include 

int main(void)
{
	float amount;
	int ret;

	printf("Enter an amount: ");
	ret = scanf("%f", &amount);
	amount = amount + amount * 0.05f;

	printf("With tax added: $%.2f\n", amount);

	return 0;
}

2.4.2 执行结果

图7 增加税率后的美元数量代码执行结果

2.5 多项式求值

        通过多项式,逐项计算多项式的值。

2.5.1 设计代码

/* 多项式求值 */

#include 

int main(void)
{
	int x, y, ret;

	printf("Enter x: ");
	ret = scanf("%d", &x);

	y = 3 * x * x * x * x * x
		+ 2 * x * x * x * x
		- 5 * x * x * x
		- x * x
		+ 7 * x
		- 6;

	printf("Result: %d\n", y);

	return 0;
}

2.5.2 执行结果

图8 多项式求值代码执行结果

2.6 多项式求值(改进版)

        改进版代码中,使用了Horner法则进行多项式的求值,减少了乘法次数。

2.6.1 设计代码

/* Horner法则求多项式的值 */

#include 

int main(void)
{
	int x, y, ret;

	printf("Enter x: ");
	ret = scanf("%d", &x);

	y = ((((3 * x + 2) * x - 5) * x - 1) * x + 7) * x - 6;

	printf("Result: %d\n", y);

	return 0;
}

2.6.2 执行结果

图9 多项式求值(改进版)代码执行结果

2.7 付款选项

        给定一个金额,代码给出所给金额的最少支付张数。

2.7.1 设计代码

#include 

int main(void)
{
	int amount, ret;
	int bills_20, bills_10, bills_5, bills_1;

	printf("Enter a dollar amount: ");
	ret = scanf("%d", &amount);

	bills_20 = amount / 20;
	amount = amount - 20 * bills_20;
	bills_10 = amount / 10;
	amount = amount - 10 * bills_10;
	bills_5 = amount / 5;
	amount = amount - 5 * bills_5;
	bills_1 = amount / 1;

	printf("\n");
	printf("$20 bills: %d\n", bills_20);
	printf("$10 bills: %d\n", bills_10);
	printf(" $5 bills: %d\n", bills_5);
	printf(" $1 bills: %d\n", bills_1);

	return 0;
}

2.7.2 执行结果

C语言基本概念编程题_第3张图片 图10 付款选项代码执行结果

2.8 贷款余额

        给出每次还款之后的剩余还款金额。

2.8.1 设计代码

#include 

int main(void)
{
	float loan, rate, payment;
	int ret;
	
	printf("Enter amount of loan: ");
	ret = scanf("%f", &loan);
	printf("Enter interest rate: ");
	ret = scanf("%f", &rate);
	printf("Enter monthly payment: ");
	ret = scanf("%f", &payment);

	printf("\n");
	loan = (loan - payment) + loan * (rate / 100 / 12);
	printf("Balance remaining after first payment: $%.2f\n", loan);
	loan = (loan - payment) + loan * (rate / 100 / 12);
	printf("Balance remaining after second payment: $%.2f\n", loan);
	loan = (loan - payment) + loan * (rate / 100 / 12);
	printf("Balance remaining after third payment: $%.2f\n", loan);

	return 0;
}

2.8.2 执行结果

C语言基本概念编程题_第4张图片 图11 贷款金额代码执行结果

3 解题心得

  • 复杂问题的小问题,比较容易解决。
  • 代码编写出用户提示信息,能够让用户更容易使用。
  • 不使用循环的代码,比较容易编写。

你可能感兴趣的:(C程序设计,c语言,算法,开发语言)