3.3、数据类型、运算符和简单的输入输出实验题目3:输入以下程序:
输入以下程序:
#include <stdio.h> int main() { int i, j, m, n; i = 8; j = 10; m = ++i; n = j ++; printf("%d, %d, %d, %d\n", i, j, m, n); return 0; }
① 编译和运行程序,注意i,j,m,n各变量的值。
运行以上程序,输出如下所示
++i是先将变量自身加一,然后赋值给变量m。
j ++是变量先赋值给变量n, 然后在自身加一。
所以m=9, n=10
② 将第6,7行改为
m = i++; n = ++j;
再编译和运行运行以上程序,输出如下所示
i ++是变量先赋值给变量m, 然后在自身加一。
++j是先将变量自身加一,然后赋值给变量m。
所以m=8, n=11
- 3-6的分析情况也1-2的分析类似。
③ 程序改为
#include <stdio.h> int main() { int i, j; i = 8; j = 10; printf("%d,%d\n", i++, j ++); }
再编译和运行运行以上程序,输出如下所示
④ 在③的基础上,将printf
语句改为
printf("%d, %d\n", ++i, ++j);
再编译和运行运行以上程序,输出如下所示
⑤ 再将printf语句改为
printf("%d, %d, %d, %d\n", i, j, i++, j++);
再编译和运行运行以上程序,输出如下所示
⑥ 程序改为:
#include <stdio.h> int main() { int i, j, m = 0, n = 0; i = 8; j = 10; m += i ++; n -= --j; printf("i= %d,j= %d,m= %d,n= %d\n", i, j, m, n); return 0; }
再编译和运行运行以上程序,输出如下所示
3.4、数据类型、运算符和简单的输入输出实验题目4:程序设计题:假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。编写程序。
(4)假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。编写程序.(第3章第1题)
计算公式为:
r为年增长率,n为年数,p为与现在相比的倍数。
- ① 输入自己编好的程序,编译并运行,分析运行结果。
3.4.1、编写程序
编写程序如下
3.4.1.1、for 循环方式计算百分比如下所示
//for 循环方式计算 for (int i = 0; i < n; i++) { p = p * (1 + r); } printf("%.3lf\n", p);
3.4.1.2、调用math函数方式计算百分比如下所示
// 调用math函数方式 p = 1.0; r = 0.09; n = 10; p = pow(1 + r, n); printf("%.3lf\n", p);
3.4.1.3、for 循环方式和调用math函数方式计算百分比形成综合程序如下所示
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { system("color 3E"); double p, r; int n; p = 1.0; r = 0.09; n = 10; // for 循环方式 for (int i = 0; i < n; i++) { p = p * (1 + r); } printf("%.3lf\n", p); // 调用math函数方式 p = 1.0; r = 0.09; n = 10; p = pow(1 + r, n); printf("%.3lf\n", p); system("pause"); return 0; }
程序编译结果如下所示
- ② 年增长率不在程序中指定,改用scanf函数语句输入,分别输入7%,8%,10%。观察结果。
3.4.2、年利率改为输入方式
程序如下所示
p = 1.0; //r = 0.09; n = 10; scanf("%lf", &r); // for 循环方式 for (int i = 0; i < n; i++) { p = p * (1 + r); } printf("%.3lf\n\n", p); // 调用math函数方式 p = 1.0; //r = 0.09; n = 10; scanf("%lf", &r); p = pow(1 + r, n); printf("%.3lf\n", p);
分别输入7%,8%,10%运行结果如下所示
7%
2. 8%
- 10%
3.4.3、在程序中增加printf函数语句
③ 在程序中增加printf函数语句,用来提示输入什么数据,说明输出的是什么数据。
增添printf
语句如下
printf("输入年利率: "); printf("\n国民生产总值与现在相比增长%.3lf百分比\n\n", p);
程序运行结果如下所示
四、实验总结
本次通过C语言及算法设计课程实验二:数据类型、运算符和简单的输入输出。掌握了如下几点。
(1) 掌握c语言数据类型,了解字符型数据和整型数据的内在关系。
(2) 掌握对各种数值型数据的正确输入方法。
(3) 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加( + + )和自减(- -)运算符的使用。
(4) 学会编写和运行简单的应用程序。
(5) 进一步熟悉C程序的编辑、编译、连接和运行的过程。
五、实验完整程序
5.1、数据类型、运算符和简单的输入输出实验题目1:输入并运行教材第3章第4题给出的程序的完整程序
完整程序如下所示
#include <stdio.h> int main() { /*char cl, c2;*/ int cl, c2; cl = 97; c2 = 98; printf("%c %c\n", cl, c2); printf("%d %d\n", cl, c2); return 0; }
5.2、数据类型、运算符和简单的输入输出实验题目2:输入第3章第5题的程序的完整程序
完整程序如下所示
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int a, b; float x, y; char c1, c2; scanf("a=%d b=%d", &a, &b); scanf("%f %e", &x, &y); scanf("%c%c", &c1, &c2); printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n", a, b, x, y, c1, c2); return 0; }
5.3、数据类型、运算符和简单的输入输出实验题目3:输入以下程序的完整程序
完整程序如下所示
#include <stdio.h> int main() { //int i, j, m, n; //i = 8; //j = 10; ///*m = ++i; n = j++;*/ //m = i++; //n = ++j; //printf("%d, %d, %d, %d\n", i, j, m, n); /*int i, j; i = 8; j = 10;*/ /*printf("%d,%d\n", i++, j++);*/ /*printf("%d, %d\n", ++i, ++j);*/ /*printf("%d, %d, %d, %d\n", i, j, i++, j++);*/ int i, j, m = 0, n = 0; i = 8; j = 10; m += i++; n -= --j; printf("i= %d,j= %d,m= %d,n= %d\n", i, j, m, n); return 0; }
5.4、数据类型、运算符和简单的输入输出实验题目4:程序设计题:假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。编写程序的完整程序
完整程序如下所示
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <math.h> int main() { system("color 3E"); double p, r; int n; p = 1.0; //r = 0.09; n = 10; printf("输入年利率: "); scanf("%lf", &r); // for 循环方式 for (int i = 0; i < n; i++) { p = p * (1 + r); } printf("\n国民生产总值与现在相比增长%.3lf百分比\n\n", p); // 调用math函数方式 p = 1.0; //r = 0.09; n = 10; printf("输入年利率: "); scanf("%lf", &r); p = pow(1 + r, n); printf("\n国民生产总值与现在相比增长%.3lf百分比\n\n", p); system("pause"); return 0; }