C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计((一、二、三、四)的综合文章)

C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计((一、二、三、四)的综合文章)

在这里插入图片描述

一、实验目的

(1) 掌握c语言中使用最多的一种语句一赋值语句的使用方法。
(2) 掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
(3) 进一步掌握编写程序和调试程序的方法。

二、 实验内容

在这里插入图片描述

2.1、实验内容1:通过下面的程序掌握各种格式转换符的正确使用方法

(1)通过下面的程序掌握各种格式转换符的正确使用方法。

① 输入以下程序:

#include <stdio.h>
int main()
{
    
    
	int a, b;
	float d, e;
	char cl, c2;
	double f, g;
	long m, n;
	unsigned int p, q;
	a = 61; b = 62;
	cl = 'a'; c2 = 'b';
	d = 3.56; e = -6.87;
	f = 3157.890121; g = 0.123456789;
	m = 50000; n = -60000;
	p = 32768; q = 40000;
	printf("a=%d,b=%d\ncl=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a, b, cl, c2, d, e);
	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n", f, q, m, n, p, q);

}

② 运行此程序并分析结果。
③ 在此基础上,将程序第10〜14行改为

	cl = a; c2 = b;
	f = 3157.890121; g = 0.123456789;
	d = f; e = g;
	p = a = m = 50000; q = b = n = -60000;

运行程序,分析结果。
④ 用sizeof运算符分别检测程序中各类型的数据占多少字节。
例如,int型变量a的字节数为sizeof(a)或sizeof(int),用printf函数语句输出各类型变量的长度(字节数)。

2.2、实验内容2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积

(2)设圆半径r=l. 5,圆柱高九=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体 积。编程序,用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。

2.3、计算存款利息

(3)计算存款利息
有1000元,想存5年,可按以下5种办法存:
① 一次存5年期。
② 先存2年期,到期后将本息再存3年期。
③ 先存3年期,到期后将本息再存2年期。
④ 存1年期,到期后将本息存再存1年期,连续存5次。
⑤ 存活期存款。活期利息每一季度结算一次。
银行存款利率:请去银行査当日利率。
计算利息的公式如下
1年期定期存款利息为4.14%;
2年期定期存款利息为4.68%,
3年期定期存款利息为5.4%;
5年期定期存款利息为5.85%;
活期存款利息为0.72%(活期存款每一季度结算一次利息)。

如果r为年利率,n为存款年数,则计算本息和公式
1年期本息和:p=1000×(l + r);
n年期本息和:p=1000×(l + n×r);
存n次1年期的本息和:p=1000×(1+r)^n
活期存款本息和:p=1000× (1+r/4)^4n
说明:1000×(1+r/4)是一个季度的本息和。

2.4、将"China”译成密码

(4)编程序将"China"译成密码,密码规律是:用原来的字母后面第4个字母代替原来 的字母。例如,字母’A’后面第4个字母是’E’,用’E’代替’A’。因此,"China"应译为"Glmre"。 请编一程序,用赋初值的方法使cl,c2,c3,c4,c5这5个变量的值分别为'C','h','i','n','a', 经过运算,使 cl ,c2,c3 ,c4, c5 分别变为'G','l','m','r','e'。分别用 putchar 函数和 printf 函数输出这5个字符。
① 输入事先已编好的程序,并运行该程序。分析是否符合要求。
② 改变cl,c2,c3,c4,c5的初值为:'T'、'o'、'd'、'a'、'y',对译码规律做如下补充:'W''A'替,'X''B'代替,'Y''C'代替,'Z''D'代替。修改程序并运行。
③ 将译码规律修改为:将一个字母被它前面第4个字母代替,例如'E''A'代替,'Z''U'代替,'D''Z'代替,'C''Y'代替,'B''X'代替,'A''V'代替。修改程序并运行。

三、 实验步骤

在这里插入图片描述

3.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确使用方法的实验步骤

(1)通过下面的程序掌握各种格式转换符的正确使用方法。

① 输入以下程序:

#include <stdio.h>
int main()
{
    
    
	int a, b;
	float d, e;
	char cl, c2;
	double f, g;
	long m, n;
	unsigned int p, q;
	a = 61; b = 62;
	cl = 'a'; c2 = 'b';
	d = 3.56; e = -6.87;
	f = 3157.890121; g = 0.123456789;
	m = 50000; n = -60000;
	p = 32768; q = 40000;
	printf("a=%d,b=%d\ncl=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a, b, cl, c2, d, e);
	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n", f, q, m, n, p, q);

}

② 运行此程序并分析结果。

运行结果如下

在这里插入图片描述

  • 可以看到g、m、n、q、p的值输出不对,原因在于printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n", f, q, m, n, p, q);输出的f,后面应该为g,所以应该该为如下所示
	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n\n", f, g, m, n, p, q);

运行结果如下

在这里插入图片描述

  • 可以看到,现在输出变量的数值完全正确。

③ 在此基础上,将程序第10〜14行改为

	cl = a; c2 = b;
	f = 3157.890121; g = 0.123456789;
	d = f; e = g;
	p = a = m = 50000; q = b = n = -60000;

运行程序,分析结果。

在此基础上,将程序第10〜14行改为如上的代码,运行结果为

a=50000,b=-60000
cl==,c2=>
d=3157.89,e=  0.12
f=    3157.890121,g= 0.123456789000
m=50000,n=-60000
p=50000,q=4294907296

在这里插入图片描述

④ 用sizeof运算符分别检测程序中各类型的数据占多少字节。
例如,int型变量a的字节数为sizeof(a)或sizeof(int),用printf函数语句输出各类型变量的长度(字节数)。

sizeof运算符检测程序中各类型的数据占多少字节的代码如下所示

	printf("sizeof(a)=%d字节,sizeof(b)=%d字节\n", sizeof(a), sizeof(b));
	printf("sizeof(c1)=%d字节,sizeof(c2)=%d字节\n", sizeof(cl), sizeof(c2));
	printf("sizeof(f)=%d字节,sizeof(g)=%d字节\n", sizeof(f), sizeof(g));
	printf("sizeof(m)=%d字节,sizeof(n)=%d字节\n", sizeof(m), sizeof(n));
	printf("sizeof(p)=%d字节,sizeof(q)=%d字节\n", sizeof(p), sizeof(q));

sizeof运算符检测程序中各类型的数据占多少字节的运行结果如下所示

在这里插入图片描述

3.2、顺序程序设计实验题目2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的实验步骤

(2)设圆半径r=l. 5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体 积。编程序,用scanf输入数据,输出计算结果。输出时要有文字说明,取小数点后两位数字。

3.2.1、定义宏

定义宏的代码如下所示

#define PI 3.1415926		// π

3.2.2、定义变量

定义变量的代码如下所示

	float R;				// 定义半径变量
	float Height;			// 定义高变量

	float CP;				// 定义圆周长变量
	float CA;				// 定义圆面积变量

	float BSA;				// 定义圆球表面积变量
	float BV;				// 定义圆球体积变量

	float CCV;				// 定义圆柱体变量

3.2.3、输入圆的半径、高

输入圆的半径、高的代码如下所示

	printf("输入圆的半径,圆柱的高: ");
	scanf("%f%f", &R, &Height);			// 输入圆的半径、高

3.2.4、计算圆的周长、面积等参数

计算圆的周长、面积等参数的代码如下所示

	CP = 2 * PI * R;				// 计算圆周长
	CA = PI * R * R;				// 计算圆面积

	BSA = 4 * PI * R * R;				// 计算圆球表面积
	BV = 3.0 / 4.0 * PI * R * R * R;		// 计算圆球体积

	CCV = PI * R * R * Height;			// 计算圆柱体积

3.2.5、输出圆的周长、面积等参数

输出圆的周长、面积等参数的代码如下所示

	// 输出数据
	printf("圆周长 =        %.2f\n", CP);
	printf("圆面积 =        %.2f\n", CA);

	printf("圆球表面积 =    %.2f\n", BSA);
	printf("圆球体积 =      %.2f\n", BV);

	printf("圆柱体积 =      %.2f\n", CCV);

3.2.6、程序运行结果

求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的实验运行结果如下所示

在这里插入图片描述

3.3、顺序程序设计实验题目3:计算存款利息的实验步骤

(3)计算存款利息
有1000元,想存5年,可按以下5种办法存:
① 一次存5年期。
② 先存2年期,到期后将本息再存3年期。
③ 先存3年期,到期后将本息再存2年期。
④ 存1年期,到期后将本息存再存1年期,连续存5次。
⑤ 存活期存款。活期利息每一季度结算一次。
银行存款利率:请去银行査当日利率。

计算利息的公式如下

1年期定期存款利息为4.14%;
2年期定期存款利息为4.68%,
3年期定期存款利息为5.4%;
5年期定期存款利息为5.85%;
活期存款利息为0.72%(活期存款每一季度结算一次利息)。

如果r为年利率,n为存款年数。

则计算本息和公式

1年期本息和:p=1000×(l + r);
n年期本息和:p=1000×(l + n×r);
存n次1年期的本息和:p=1000×(1+r)^n
活期存款本息和:p=1000× (1+r/4)^4n
说明:1000×(1+r/4)是一个季度的本息和。

3.3.1、变量的声明

变量的声明 代码如下所示

// 变量的声明
float r5, r3, r2, r1, r0;		// 定期存款利息
float p, p1, p2, p3, p4, p5;	// 本息和

3.3.2、变量的赋值

变量的赋值 代码如下所示

// 变量的赋值
p = 1000;
r5 = 0.03;
r3 = 0.0275;
r2 = 0.021;
r1 = 0.015;
r0 = 0.0035;

3.3.3、计算五种方案得到的本息和

计算五种方案得到的本息和 代码如下所示

	// 计算五种方案得到的本息和
	p1 = p * (1 + r5 * 5);				  //一次存5年期
	p2 = p * (1 + 2 * r2) * (1 + 3 * r3); //先存2年期,到期后将本息再存3年期
	p3 = p * (1 + 3 * r3) * (1 + 2 * r2); //先存3年期,到期后将本息再存2年期
	p4 = p * pow(1 + r1, 5);			  //存1年期,到期后将本息再存1年期,连续存5次
	p5 = p * pow(1 + r0 / 4, 4 * 5);	  //存活期存款,活期利息每一季度结算一次

3.3.4、输出五种方案得到的本息和

输出五种方案得到的本息和 代码如下所示

	// 输出五种方案得到的本息和
	printf("p1= %f\n", p1);				  //输出按第1种方案得到的本息和
	printf("p2= %f\n", p2);				  //输出按第2种方案得到的本息和
	printf("p3= %f\n", p3);				  //输出按第3种方案得到的本息和
	printf("p4= %f\n", p4);				  //输出按第4种方案得到的本息和
	printf("p5= %f\n", p5);				  //输出按第5种方案得到的本息和

3.3.5、程序运行结果

计算存款利息的实验运行结果如下所示

在这里插入图片描述

  • 可以看到第一种方案的本息和是最高的。
    输出运行结果时,得到6位小数,连同整数部分有10 位数字,而一个float 型变量只能保证6位有效数字,后面几位是无意义的。而且在输出款额时,入们一般只要求精确到两位小数(角、分),因此可以在printf 函数中用%10.2格式符输出。

最后5个语句可改为如下所示

	// 输出五种方案得到的本息和
	printf("p1=%10.2f\n", p1); //输出按第1种方案得到的本息和
	printf("p2=%10.2f\n", p2); //输出按第2种方案得到的本息和
	printf("p3=%10.2f\n", p3); //输出按第3种方案得到的本息和
	printf("p4=%10.2f\n", p4); //输出按第4种方案得到的本息和
	printf("p5=%10.2f\n", p5); //输出按第5种方案得到的本息和

运行结果如下所示

在这里插入图片描述

3.4、顺序程序设计实验题目4:将"China”译成密码的实验步骤

(4)编程序将"China"译成密码,密码规律是:用原来的字母后面第4个字母代替原来 的字母。例如,字母’A’后面第4个字母是’E’,用’E’代替’A’。因此,"China"应译为"Glmre"。 请编一程序,用赋初值的方法使cl,c2,c3,c4,c5这5个变量的值分别为'C','h','i','n','a', 经过运算,使 cl ,c2,c3 ,c4, c5 分别变为'G','l','m','r','e'。分别用 putchar 函数和 printf 函数输出这5个字符。
① 输入事先已编好的程序,并运行该程序。分析是否符合要求。

3.4.1、变量的定义与赋初值

// 变量的定义与赋初值
	char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a';

3.4.2、将字符译成密码

	// 将字符译成密码
	c1 = c1 + 4;
	c2 = c2 + 4;
	c3 = c3 + 4;
	c4 = c4 + 4;
	c5 = c5 + 4;

3.4.3、putchar与printf方式输出密码

	// putchar与printf方式输出密码
	printf("putchar方式输出China的密码是:");
	putchar(c1); 
	putchar(c2);
	putchar(c3);
	putchar(c4);
	putchar(c5);
	
	printf("\nprintf方式输出China的密码是: %c%c%c%c%c\n", c1, c2, c3, c4, c5);

3.4.4、程序运行结果

将"China”译成密码的实验运行结果如下

在这里插入图片描述

② 改变cl,c2,c3,c4,c5的初值为:'T'、'o'、'd'、'a'、'y',对译码规律做如下补充:'W''A'替,'X''B'代替,'Y''C'代替,'Z''D'代替。修改程序并运行。

  • 程序修改如下
	// 将字符译成密码
	c1 = c1 + 4;
	c2 = c2 + 4;
	c3 = c3 + 4;
	c4 = c4 + 4;
	c5 = c5 + 4 - 26;

运行结果

在这里插入图片描述

③ 将译码规律修改为:将一个字母被它前面第4个字母代替,例如'E''A'代替,'Z''U'代替,'D''Z'代替,'C''Y'代替,'B''X'代替,'A''V'代替。修改程序并运行。

  • 程序修改如下
	// 将字符译成密码
	c1 = c1 - 4;
	c2 = c2 - 4;
	c3 = c3 - 4 + 26;
	c4 = c4 - 4 + 25;
	c5 = c5 - 4;

运行结果

在这里插入图片描述

四、 实验总结

在这里插入图片描述

通过本次的实验:C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计的4个题目,掌握了如下的几点。

-(1)掌握c语言中使用最多的一种语句一赋值语句的使用方法。
-(2)掌握各种类型数据的输入输出的方法,能正确使用各种格式转换符。
-(3)进一步掌握编写程序和调试程序的方法。

五、 实验完整程序

在这里插入图片描述

5.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确使用方法的完整程序

完整程序如下所示

#include <stdio.h>
int main()
{
    
    
	int a, b;
	float d, e;
	char cl, c2;
	double f, g;
	long m, n;
	unsigned int p, q;
	a = 61; b = 62;

	cl = 'a'; c2 = 'b';
	d = 3.56; e = -6.87;
	f = 3157.890121; g = 0.123456789;
	m = 50000; n = -60000;
	p = 32768; q = 40000;

	//cl = a; c2 = b;
	//f = 3157.890121; g = 0.123456789;
	//d = f; e = g;
	//p = a = m = 50000; q = b = n = -60000;

	printf("a=%d,b=%d\ncl=%c,c2=%c\nd=%6.2f,e=%6.2f\n", a, b, cl, c2, d, e);
	/*printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n", f, q, m, n, p, q);*/

	printf("f=%15.6f,g=%15.12f\nm=%ld,n=%ld\np=%u,q=%u\n\n", f, g, m, n, p, q);

	printf("sizeof(a)=%d字节,sizeof(b)=%d字节\n", sizeof(a), sizeof(b));
	printf("sizeof(c1)=%d字节,sizeof(c2)=%d字节\n", sizeof(cl), sizeof(c2));
	printf("sizeof(f)=%d字节,sizeof(g)=%d字节\n", sizeof(f), sizeof(g));
	printf("sizeof(m)=%d字节,sizeof(n)=%d字节\n", sizeof(m), sizeof(n));
	printf("sizeof(p)=%d字节,sizeof(q)=%d字节\n", sizeof(p), sizeof(q));
}

5.2、顺序程序设计实验题目2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的完整程序

完整程序如下所示

#define _CRT_SECURE_NO_WARNINGS

#define PI 3.1415926		// π

#include <stdio.h>
int main()
{
    
    
	float R;				// 定义半径变量
	float Height;			// 定义高变量

	float CP;				// 定义圆周长变量
	float CA;				// 定义圆面积变量

	float BSA;				// 定义圆球表面积变量
	float BV;				// 定义圆球体积变量

	float CCV;				// 定义圆柱体变量

	printf("输入圆的半径,圆柱的高: ");
	scanf("%f%f", &R, &Height);			// 输入圆的半径、高

	CP = 2 * PI * R;				// 计算圆周长
	CA = PI * R * R;				// 计算圆面积

	BSA = 4 * PI * R * R;				// 计算圆球表面积
	BV = 3.0 / 4.0 * PI * R * R * R;		// 计算圆球体积

	CCV = PI * R * R * Height;			// 计算圆柱体积

	// 输出数据
	printf("圆周长 =        %.2f\n", CP);
	printf("圆面积 =        %.2f\n", CA);

	printf("圆球表面积 =    %.2f\n", BSA);
	printf("圆球体积 =      %.2f\n", BV);

	printf("圆柱体积 =      %.2f\n", CCV);
	return 0;
}

5.3、顺序程序设计实验题目3:计算存款利息的实验完整程序

完整程序如下所示

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <math.h>

int main()
{
    
    
	// 变量的声明
	float r5, r3, r2, r1, r0;		// 定期存款利息
	float p, p1, p2, p3, p4, p5;	// 本息和

	// 变量的赋值
	p = 1000;
	r5 = 0.03;
	r3 = 0.0275;
	r2 = 0.021;
	r1 = 0.015;
	r0 = 0.0035;

	// 计算五种方案得到的本息和
	p1 = p * (1 + r5 * 5);				  //一次存5年期
	p2 = p * (1 + 2 * r2) * (1 + 3 * r3); //先存2年期,到期后将本息再存3年期
	p3 = p * (1 + 3 * r3) * (1 + 2 * r2); //先存3年期,到期后将本息再存2年期
	p4 = p * pow(1 + r1, 5);			  //存1年期,到期后将本息再存1年期,连续存5次
	p5 = p * pow(1 + r0 / 4, 4 * 5);	  //存活期存款,活期利息每一季度结算一次

	// 输出五种方案得到的本息和
	//printf("p1= %f\n", p1);				  //输出按第1种方案得到的本息和
	//printf("p2= %f\n", p2);				  //输出按第2种方案得到的本息和
	//printf("p3= %f\n", p3);				  //输出按第3种方案得到的本息和
	//printf("p4= %f\n", p4);				  //输出按第4种方案得到的本息和
	//printf("p5= %f\n", p5);				  //输出按第5种方案得到的本息和

	// 输出五种方案得到的本息和
	printf("p1=%10.2f\n", p1); //输出按第1种方案得到的本息和
	printf("p2=%10.2f\n", p2); //输出按第2种方案得到的本息和
	printf("p3=%10.2f\n", p3); //输出按第3种方案得到的本息和
	printf("p4=%10.2f\n", p4); //输出按第4种方案得到的本息和
	printf("p5=%10.2f\n", p5); //输出按第5种方案得到的本息和

	return 0;
}

5.4、顺序程序设计实验题目4:将"China”译成密码的实验步骤的完整程序

完整程序如下所示

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

int main()
{
    
    
	// 变量的定义与赋初值
	/*char c1 = 'C', c2 = 'h', c3 = 'i', c4 = 'n', c5 = 'a';*/

	// 变量的定义与赋初值
	char c1 = 'T', c2 = 'o', c3 = 'd', c4 = 'a', c5 = 'y';

	// 将字符译成密码
	//c1 = c1 + 4;
	//c2 = c2 + 4;
	//c3 = c3 + 4;
	//c4 = c4 + 4;
	//c5 = c5 + 4;

	// 将字符译成密码
	//c1 = c1 + 4;
	//c2 = c2 + 4;
	//c3 = c3 + 4;
	//c4 = c4 + 4;
	//c5 = c5 + 4 - 26;

	// 将字符译成密码
	c1 = c1 - 4;
	c2 = c2 - 4;
	c3 = c3 - 4 + 26;
	c4 = c4 - 4 + 25;
	c5 = c5 - 4;

	// putchar与printf方式输出密码
	printf("putchar方式输出Today的密码是:");
	putchar(c1); 
	putchar(c2);
	putchar(c3);
	putchar(c4);
	putchar(c5);

	printf("\nprintf方式输出Today的密码是: %c%c%c%c%c\n", c1, c2, c3, c4, c5);

	return 0;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_47419053/article/details/127151957
今日推荐