C语言及算法设计课程实验二:数据类型、运算符和简单的输入输出(下)

简介: C语言及算法设计课程实验二:数据类型、运算符和简单的输入输出(下)

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各变量的值。

运行以上程序,输出如下所示

cf3ed468494148fd85554cf5e83fb191.png


++i是先将变量自身加一,然后赋值给变量m。

j ++是变量先赋值给变量n, 然后在自身加一。

所以m=9, n=10

② 将第6,7行改为

m = i++;
n = ++j;


再编译和运行运行以上程序,输出如下所示


32a30f27692849948215edc5e0e10554.png


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 ++);
}


再编译和运行运行以上程序,输出如下所示

43d0152d88794db6858a61586a23cf2a.png


④ 在③的基础上,将printf语句改为

printf("%d, %d\n", ++i, ++j);

再编译和运行运行以上程序,输出如下所示


bbdfbd21cc904c3295f92cc3ff0df2db.png


⑤ 再将printf语句改为

printf("%d, %d, %d, %d\n", i, j, i++, j++);


再编译和运行运行以上程序,输出如下所示

a1f28cc0f8e549a1bf7cd4e3b0788370.png

⑥ 程序改为:

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

再编译和运行运行以上程序,输出如下所示


image.png


3.4、数据类型、运算符和简单的输入输出实验题目4:程序设计题:假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。编写程序。


(4)假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。编写程序.(第3章第1题)

计算公式为:



92165bac66544397a9d58af8f719e8db.png


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

程序编译结果如下所示


47eed6b3497546a8bd4168fd4996972d.png


  • ② 年增长率不在程序中指定,改用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%

9f1690cbb3874e75ac7ba0dc6ce75877.png


2. 8%

e853ceab71ea4893a382a13d8be3f5cc.png


  1. 10%


e958d383cb24459ebd94216174fe3672.png


3.4.3、在程序中增加printf函数语句


③ 在程序中增加printf函数语句,用来提示输入什么数据,说明输出的是什么数据。

增添printf语句如下


  printf("输入年利率: ");
  printf("\n国民生产总值与现在相比增长%.3lf百分比\n\n", p);

程序运行结果如下所示



7662d73a1c7f4a1199f8838f922f3f9c.png


四、实验总结


760f916c77b849938c8a2c1d6aea5b44.jpg


本次通过C语言及算法设计课程实验二:数据类型、运算符和简单的输入输出。掌握了如下几点。


(1) 掌握c语言数据类型,了解字符型数据和整型数据的内在关系。

(2) 掌握对各种数值型数据的正确输入方法。

(3) 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加( + + )和自减(- -)运算符的使用。

(4) 学会编写和运行简单的应用程序。

(5) 进一步熟悉C程序的编辑、编译、连接和运行的过程。


五、实验完整程序


7507c9d209254dbeab98f89bc9a83673.jpg


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

27fa5242a42b4af3b3d57b2e5ba43241.jpg

相关文章
|
2天前
|
算法 C语言 人工智能
|
2天前
|
算法 C语言
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-2
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
2天前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
2天前
|
存储 缓存 算法
【C 言专栏】C 语言实现算法的高效性
【5月更文挑战第6天】本文探讨了C语言在实现高效算法上的优势,包括其高效性、灵活性、可移植性和底层访问能力。关键点包括选择合适的数据结构(如数组、链表、树和图)、应用优化策略(如减少计算、空间换时间、分治和动态规划),以及内存管理和代码优化技巧。通过实际案例(如排序和图遍历算法),阐述了如何利用C语言实现算法高效性,并强调在实践中不断探索和优化以提升算法效率。C语言在计算机科学中的重要地位使其成为实现高效算法的首选工具。
【C 言专栏】C 语言实现算法的高效性
|
2天前
|
搜索推荐 C语言
【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)
【C语言/数据结构】排序(归并排序|计数排序|排序算法复杂度)
11 0
|
2天前
|
存储 C语言
【C 言专栏】C 语言中的数据类型详解
【4月更文挑战第30天】本文介绍了C语言中的核心数据类型,包括整型(short, int, long, long long)、浮点型(float, double)、字符型(char)、指针、数组、结构体、共用体和枚举。理解这些类型的特点和适用场景对于编写高效准确的C语言代码至关重要。选择合适的数据类型并注意转换和运算规则,能避免错误,为编程打下坚实基础。
|
2天前
|
C语言
C语言数据类型和变量(C语言零基础教程)
C语言数据类型和变量(C语言零基础教程)
|
2天前
|
算法 搜索推荐 C语言
C语言用流程图表示算法
C语言用流程图表示算法
23 0
|
2天前
|
算法 C语言
【算法与数据结构】 C语言实现单链表队列详解2
【算法与数据结构】 C语言实现单链表队列详解
|
2天前
|
存储 算法 C语言
【算法与数据结构】 C语言实现单链表队列详解1
【算法与数据结构】 C语言实现单链表队列详解