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

相关文章
|
14天前
|
C语言
c语言运算符
C的运算符有以下几种: 算术运算符:+、-、*、/、% 结合方向自左向右 关系运算符:>、<、==、>=、<=、!= 逻辑运算符:!、&&、|| 位运算符<<、>>、~、|、^、& 赋值运算符:=及符号扩展赋值运算符(+=、-=、*=、/=) 条件运算符:? : 逗号运算符:, 指针运算符:*、& 求字节运算符:sizeof 强制类型转换运算符:((类型)) 分量运算符:.、-> 下标运算符:[]
25 4
|
15天前
|
搜索推荐 C语言
【排序算法】快速排序升级版--三路快排详解 + 实现(c语言)
本文介绍了快速排序的升级版——三路快排。传统快速排序在处理大量相同元素时效率较低,而三路快排通过将数组分为三部分(小于、等于、大于基准值)来优化这一问题。文章详细讲解了三路快排的实现步骤,并提供了完整的代码示例。
41 4
|
1天前
|
存储 C语言 C++
【c语言】运算符汇总(万字解析)
今天博主跟大家分享了c语言中各种操作符的功能、使用方法以及优先级和结合性,并且与大家深入探讨了表达式求值的两个重要规则--算数转换和整形提升。学习这些知识对我们的C语言和C++学习都有着极大的帮助。
16 2
|
26天前
|
存储 算法 数据管理
C语言算法复杂度
【10月更文挑战第20天】
C语言算法复杂度
|
16天前
|
搜索推荐 算法 C语言
【排序算法】八大排序(上)(c语言实现)(附源码)
本文介绍了四种常见的排序算法:冒泡排序、选择排序、插入排序和希尔排序。通过具体的代码实现和测试数据,详细解释了每种算法的工作原理和性能特点。冒泡排序通过不断交换相邻元素来排序,选择排序通过选择最小元素进行交换,插入排序通过逐步插入元素到已排序部分,而希尔排序则是插入排序的改进版,通过预排序使数据更接近有序,从而提高效率。文章最后总结了这四种算法的空间和时间复杂度,以及它们的稳定性。
63 8
|
16天前
|
搜索推荐 算法 C语言
【排序算法】八大排序(下)(c语言实现)(附源码)
本文继续学习并实现了八大排序算法中的后四种:堆排序、快速排序、归并排序和计数排序。详细介绍了每种排序算法的原理、步骤和代码实现,并通过测试数据展示了它们的性能表现。堆排序利用堆的特性进行排序,快速排序通过递归和多种划分方法实现高效排序,归并排序通过分治法将问题分解后再合并,计数排序则通过统计每个元素的出现次数实现非比较排序。最后,文章还对比了这些排序算法在处理一百万个整形数据时的运行时间,帮助读者了解不同算法的优劣。
54 7
|
1月前
|
存储 C语言
【c语言】数据类型和变量
本文介绍了C语言中的数据类型和变量。数据类型分为内置类型和自定义类型,内置类型包括字符型、整型、浮点型等,每种类型有不同的内存大小和取值范围。变量分为全局变量和局部变量,它们在内存中的存储位置也有所不同,分别位于静态区和栈区。通过示例代码和图解,详细阐述了这些概念及其应用。
42 1
|
1月前
|
存储 Java C语言
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
【一步一步了解Java系列】:了解Java与C语言的运算符的“大同小异”
39 3
|
1月前
|
C语言
大学生期末C语言实验(学生成绩和鞍点)
大学生期末C语言实验(学生成绩和鞍点)
180 0
大学生期末C语言实验(学生成绩和鞍点)
|
1月前
|
C语言
C语言条件运算符详解
C语言条件运算符,也称为三元运算符,是一种简化if-else语句的表达式,形式为:条件?表达式1:表达式2。当条件为真时,计算并返回表达式1的值;否则计算并返回表达式2的值。它可用于快速实现简单的条件分支逻辑。
下一篇
无影云桌面