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

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

  • 一、实验目的
  • 二、 实验内容
    • 2.1、实验内容1:通过下面的程序掌握各种格式转换符的正确使用方法
    • 2.2、实验内容2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积
    • 2.3、计算存款利息
    • 2.4、将"China”译成密码
  • 三、 实验步骤
  • 3.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确使用方法的实验步骤
  • 3.2、顺序程序设计实验题目2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的实验步骤
    • 3.2.1、定义宏
    • 3.2.2、定义变量
    • 3.2.3、输入圆的半径、高
    • 3.2.4、计算圆的周长、面积等参数
    • 3.2.5、输出圆的周长、面积等参数
    • 3.2.6、程序运行结果
  • 3.3、顺序程序设计实验题目3:计算存款利息的实验步骤
    • 3.3.1、变量的声明
    • 3.3.2、变量的赋值
    • 3.3.3、计算五种方案得到的本息和
    • 3.3.4、输出五种方案得到的本息和
    • 3.3.5、程序运行结果
  • 3.4、顺序程序设计实验题目4:将"China”译成密码的实验步骤
    • 3.4.1、变量的定义与赋初值
    • 3.4.2、将字符译成密码
    • 3.4.3、putchar与printf方式输出密码
    • 3.4.4、程序运行结果
  • 四、 实验总结
  • 五、 实验完整程序
    • 5.1、顺序程序设计实验题目1:通过下面的程序掌握各种格式转换符的正确使用方法的完整程序
    • 5.2、顺序程序设计实验题目2:求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积的完整程序
    • 5.3、顺序程序设计实验题目3:计算存款利息的实验完整程序
    • 5.4、顺序程序设计实验题目4:将"China”译成密码的实验步骤的完整程序

在这里插入图片描述

一、实验目的

(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;
}

在这里插入图片描述


本文链接:https://www.ngui.cc/article/show-845565.html
Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000