C语言程序设计教程第2章程序流程课件_第1页
C语言程序设计教程第2章程序流程课件_第2页
C语言程序设计教程第2章程序流程课件_第3页
C语言程序设计教程第2章程序流程课件_第4页
C语言程序设计教程第2章程序流程课件_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计C语言程序设计第二章 程序设计和程序结构本章概述2.4流程图及程序例子2.2流程图2.1程序设计与算法2.3程序结构第二章 程序设计和程序结构本章概述2.4流程图及程序例子2本章概述本章主要介绍了C语言的程序结构、流程图的绘制和程序设计的过程。学习目标:1、理解程序的开发、设计过程2、掌握C语言程序结构 C语言程序设计 第二章 程序设计和程序结构本章概述本章主要介绍了C语言的程序结构、流程图的绘制和程序设3、掌握程序流程图的绘制方法4、了解三种程序结构:顺序、选择与 循环5、熟练C语言程序的开发过程6、逐步建立程序的概念7、了解良好的程序设计风格 3、掌握程序流程图的绘制方法内容

2、框架: C语言程序设计 第二章 程序设计和程序结构内容框架: C语言程序设计 2.1.1程序设计的概念1. 程序包括对数据的描述和对数据处理的描述数据处理数据程序包括 C语言程序设计 第二章 程序设计和程序结构2.1 程序设计与算法2.1.1程序设计的概念1. 程序包括对数据的描述和对数据处(2)对数据处理方法的明确描述,即算法,是程序的灵魂,是程序设计的核心。著名计算机科学家数据结构算法 =+程序沃思(Nikiklaus Wirth) C语言程序设计 第二章 程序设计和程序结构(2)对数据处理方法的明确描述,即算法,是程序的灵魂,是程序 实际上,一个程序除了数据结构和算法外,还必须使用一种计

3、算机语言来实现,C语言就是这样的一种计算机语言。 C语言程序设计 第二章 程序设计和程序结构 实际上,一个程序除了数据结构和算 C语言程2. 程序设计过程 C语言程序设计 第二章 程序设计和程序结构问题描述准确认真分析明确系统目标条件内容分析详尽力求似是而非简单化避免2. 程序设计过程 C语言程序设计 (2)设计算法:根据题目要求,设计合理 的算法。对于复杂的问题,一般都需经过 抽象后再建立数学模型,即对问题进行数 学上 的描述,使问题变得简明而有效。(3)选择合适的程序结构:根据算法和所 用的计算机语言特点,确定程序结构。 C语言程序设计 第二章 程序设计和程序结构(2)设计算法:根据题目要

4、求,设计合理 C语言程序设计 (4)确定变量及其数据类型: 一般的程序都会用到变量,根据问题的条件 、处理过程、结果要求所涉及到的所需的各种数据,选用适当的变量形式来描述、处理。正确 、合理、经济地处理所需的变量,是计算机应 用技术的基本功之一。 C语言程序设计 第二章 程序设计和程序结构 (4)确定变量及其数据类型: C语言程序设计 (5)画流程图(7)调试程序结构变量类型算法确定流程图详细思路画出体现编写程序语句调试(6)编写代码 C语言程序设计 第二章 程序设计和程序结构(5)画流程图(7)调试程序结构变量类型算法确定流程图详细思 良好的程序编写风格会大大缩短调试过程,附录4介绍了C语言

5、程序的一般书写风格,附录11介绍了一些常见的错误。 C语言程序设计 第二章 程序设计和程序结构 良好的程序编写风格会大大缩短调试过程2.1.2 算法 在实际的编程过程中要注意: 1、避免拿起题目就开始写程序的 2、应该先设计出合适的算法 C语言程序设计 第二章 程序设计和程序结构2.1.2 算法 在实际的编程过程中要注用程序实现对一个具体问题的处理,往往基于手工处理的方式,也就是设计人员对实际问题的分析。在算法设计之前 首先,要认真考虑和设计数据的组织方式 然后,再针对此数据结构设计相应的操作步骤计算机中的算法可以更简洁地表示繁琐的手工操作过程。 C语言程序设计 第二章 程序设计和程序结构用程

6、序实现对一个具体问题的处理,往往基于手工处理的方式,也就 算法具有如下性质:(1)有穷性 (2)确定性 (3)有效性 (4)有0个或多个输入 (5)有一个或多个输出另外,算法还应有清晰、直观的表示方式,以利于算法的理解、维护。 C语言程序设计 第二章 程序设计和程序结构 C语言程序设计 描述算法的方法初学者可以从流程图开始(1)自然语言(2)N-S图(3)结构化流程图应先分析题意画出流程图再进行编程在实际编程过程中 C语言程序设计 第二章 程序设计和程序结构描述算法的方法初学者可以从流程图开始(1)自然语言(2)N-2.2流程图流程图是用几何图形、箭头和文字说明来表示算法的框图。直观形象描述算

7、法清楚的表达设计者的思路 C语言程序设计 第二章 程序设计和程序结构2.2流程图流程图是用几何图形、箭头和文字说明来表示算法的框 图形符号 名称 操作起止流程的起点与终点处理各种形式的数据处理输入输出数据的输入与输出判断根据条件选择相应的分支预定义过程一个定义过的过程,如函数连接点与流程图其它部分连接流程线连接各图框,表执行顺序表2-1 程序流程图符号 图形符号 名称 操作起止流程的起点与终点处理 在长期的程序设计实践中,人们提出了结构化的流程图,即一个流程图都可以由三种基本的结构(顺序、选择、循环)组成,程序设计语言对这三种结构都可以实现,而且计算机都能够执行。 C语言程序设计 第二章 程序

8、设计和程序结构 在长期的程序设计实践中,人们提 C语言程顺序、选择、循环这三种基本结构可以相互嵌套,从而组成复杂的算法。根据结构化流程图写出的程序就是结构化的程序。顺序、选择、循环这三种基本结构可以相互嵌套,从而组成复杂的算三种基本结构的流程如图2-1所示。三种基本结构的流程如图2-1所示。它们的特点是:顺序结构:按语句书写顺序执行。选择结构:根据条件判断选择执行的分支。循环结构:根据给定条件反复执行某程序段。C是一种结构化程序设计语言,其任何程序都可由这三种基本逻辑结构来描述。 C语言程序设计 第二章 程序设计和程序结构它们的特点是: C语言程序设计 2.3 程序结构一个完整的C语言程序的组

9、成若干个其它函数一个main()函数一个main()函数或 C语言程序设计 第二章 程序设计和程序结构2.3 程序结构一个完整的C语言程序的组成若干个其它函数如果一个程序中有多个源文件,则 只能在一个 源文件中存在 。在第二章至第五章的例题中,主要以只有一个 函数的程序进行讲解 ;第六章开始 ,我们将介绍由多个函数构成的程序。 C语言程序设计 第二章 程序设计和程序结构main()main()如果一个程序中有多个源文件,则 只能在一2.3.1 C语言程序总体结构 C语言程序设计 第二章 程序设计和程序结构编程思路:这是第一个程序例子,通过这一例子,我们来了解源程序的结构:首先是对源程序的一些说

10、明 例2-1 由main()函数构成的语言程序。包括文件名、程序功能,放在由“/*”和“*/”对构成的注释部分中 2.3.1 C语言程序总体结构 C语言程序设计 指定程序中要调用的函数printf()所在的头文件;接下来给出以“#include”开始的预处理命令行接下来是main()函数,将所有需要程序完成的语句均放在以、括起来的函数体内,本程序中只有一条语句,用来在屏幕显示信息。指定程序中要调用的函数printf()所在的头文件;接下来给 C语言程序设计 第二章 程序设计和程序结构程序源代码如下: /*代码文件名:E2_1.C*/*功能:由main()函数构成的程序示例*/#include

11、stdio.hmain( )printf(Wonderful, this is my first C program.nn);程序运行结果: C语言程序设计 C语言程序设计 第二章 程序设计和程序结构其中最后一行的“Press any key to continue”是VC6.0自动添加在每个程序运行结果后面的一句提示信息,它表示当程序执行结束时,操作者可以按任意键返回到编辑界面。在后面的程序运行结果中,将不再给出这一信息。 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构例2-2 求两个整数的和。 编程思路:要求两个整数的和,首先必须存在两个整数,因此先定义两个整数 :程序中用整型

12、变量来表示 再从键盘输入两个整数,然后将两个数相加,最后在输出两个数的和 如果没有输出,就不知道结果在main()函数中,对变量的定义要放在输入、相加、输出等可以执行的语句前面。 当然,还得定义一个整型变量存放两数之和。 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构程序源代码如下: /*代码文件名:E2_2.C*/*程序功能:实现两个整数的相加*/#include stdio.h main( ) int num1,num2,sum; printf(Input the 1st integer number: ); scanf(%d, &num1); printf(Input the

13、 2nd integer number: ); scanf(%d, &num2); sum=num1+num2; printf(sum=%dn,sum); C语言程序设计 C语言程序设计 第二章 程序设计和程序结构程序运行结果:通过以上两个程序,我们来了解一下C语言程序结构的特点:1、程序的前两行是用一对/*、*/括 起的描述性语句,这是程序中的注释 部分,对程序的功能作了简要的说明 ,在编译过程中将忽略。 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构2. 有一行命令:#include stdio.h 其中的“stdio.h”是C提供的一个头文件,在其中定义了多个函数;当后面的程

14、序要调用一些已经定义过的库函数 (如printf()、scanf()函数)时,就要先用 include命令对包含被调用函数的头文件( 如stdio.h)进行预定义说明。 C语言程序设计 3. 程序中有一个main(),在其后面有一对、,在、中有多行以;结尾的语句。main()函数是C语言程序的主函数,一个程序有且只有一个main()主函数。3. 程序中有一个main(),在其后面有一对、 C语言程序设计 第二章 程序设计和程序结构不论它在程序前面还是后面,整个程序总是从 函数开始执行; 执行完毕时,程序也执行完毕。 一般放在一个源文件的最前头。main()main()main() C语言程序设

15、计 如果在程序中还有其它函数,它们也是直接或间接地被main()调用。 函数是C语言程序的基本单位。如果在程序中还有其它函数,它们也是函数是C语言程序的基本单位2.3.2 函数的一般结构 C语言程序设计 第二章 程序设计和程序结构任何函数(包括主函数main())都是由函数头和函数体两部分组成。其一般结构如下: 函数类型 函数名(函数参数表) /* 函数头部分*/ /* 函数体部分*/说明语句部分;执行语句部分; 2.3.2 函数的一般结构 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构1、函数头 函数头由函数类型(可缺省)、函数名 和函数参数表(可缺省)三部分组成。2、函数体 在

16、函数说明部分的下面、大括号(必须配对 使用)内的部分。函数体一般由说明 语句 和可执行语句构成: C语言程序设计 C语言程序设计 第二章 程序设计和程序结构(1)说明语句部分 由变量定义、自定义类型说明、外部变 量说明等组成。如果不需要,也可以缺 省变量定义语句。(2)可执行语句 一般由若干条可执行语句构成,所有可 执行语句必须在说明语句部分之后。 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构下面是例2-2中main()函数的结构说明: /*主函数main()*/#include stdio.h /*头文件说明*/main( ) /*函数头部分*/ /*下面为函数体部分*/ in

17、t num1,num2,sum; /*变量定义部分*/ /*下面是可执行语句部分*/ printf(Input the 1st integer number: ); scanf(%d,&num1); printf(Input the 2nd integer number: ); scanf(%d,&num2); sum=num1+num2; printf(sum=%dn,sum); C语言程序设计 C语言程序设计 第二章 程序设计和程序结构函数体内的说明语句不能放在可执行语句中间,在下面的例2-3中,定义语句“int max;”的位置就是非法的:例2-3 一个位置错误的定义语句。编程思路:函数

18、中的说明语句只能放在可执行语句之前,本程序给出了一个位置错误的定义语句。 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构程序源代码如下: /*代码文件名:E2_3.C*/*主函数main()*/#include stdio.h main() int x,y; x=3; y=6; int max;max=xy?x:y;printf(max=%dn,max);/*头文件说明*/ /*说明语句:定义2个整型变量x、y*/ /*可执行的赋值语句:将3赋值给x*/ /*可执行的赋值语句:将6赋值给y*/ /*说明语句:定义一个整型变量 max */ C语言程序设计 C语言程序设计 第二章 程

19、序设计和程序结构在main()函数中,第4条语 出现在可执行语句后面,是非法的,应该将其移到第2条语句 的前面。int max ;x=3; C语言程序设计 C语言程序设计 第二章 程序设计和程序结构下面给出C源程序的结构特点:1. 一个C语言源程序可以由一个或多个源文件组成。2. 每个源文件可由一个或多个函数组成。 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构3. 一个源程序不论由多少个文件组成,都有一个且只能有一个main()函数,即主函数。4. 源程序中可以有预处理命令(include 命令仅为其中的一种),预处理命令通常应放在源文件或源程序的最前面。 C语言程序设计 5.

20、每一个说明、每一个语句都必须以分号结尾,但预处理命令,函数头和花括号之后不能加分号。6. 标识符与关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。5. 每一个说明、每一个语句都必须以分号结尾,但预处理命令,2.4 流程图及程序例子说明:在这一节 中,给出了本教材中涉及到的各类数据类型和控制结构的例子 ,学习时主要领会编程的思路和流程图的绘制;而对于程序代码, 可以在上机练习时参考调试, 以建立程序的概念。 C语言程序设计 第二章 程序设计和程序结构2.4 流程图及程序例子说明:在这一节 中,给出了本教材中 C语言程序设计 第二章 程序设计和程序结构例2-4 用*

21、号输出字母C的图案。 编程思路:可先用*号在纸上写出字母C ,再分行输出。 流程图如右图2-2所示。开始结束输出 “*”输出 “*”输出 “*”输出 “*” C语言程序设计 C语言程序设计 第二章 程序设计和程序结构程序源代码如下: 程序运行结果: /*代码文件名:E2_4.C*/*输出练习*/#include stdio.hmain()printf( *n);printf( *n);printf( *n);printf( *n); C语言程序设计 C语言程序设计 第二章 程序设计和程序结构例2-5 输入三个整数x,y,z,并将这三个数由小到大输出。 编程思路:我们先来看一个熟悉的环境 :学校

22、是一个进行教学活动的场所 :每个班级都有不同的名称思考题:如果希望输出的图案效果更好一点,该如何调整程序? C语言程序设计 C语言程序设计 第二章 程序设计和程序结构如06软件(1)班、05机电(2)班等 每个班级都有一定数量的学生,学校为每个班级分配了一个大小合适的教室以进行各种活动,如图2-3 (a)所示,我们知道,如果没有学生,这些班级就没有意义,教室浪费了,也不存在教学活动;而且一个教室只能安排一个班级 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构比如 3203教室原来是分配给06软件(1)班,而如果现在要安排 05机电(2)班在3203教室上课那么就必须给06软件 (1

23、) 班另外安排一个足够容得下该班所有学生的教室,否则该班就无法上课了。在教学活动的各种场合,通常以班级名称来安排各种活动。 C语言程序设计 类似的,计算机中的程序要运行,完成一定的功能,就要进行各种数据处理。我们可以用x、y、z 等来表示这些要处理的数据 ,在程序执行时,x、y、z 均有具体的数值 ,而且这它们的值是存放在系统为它们分配的各个存储单元(每存储单元均有编号)中 ,如图2-3(b)所示。 C语言程序设计 第二章 程序设计和程序结构类似的,计算机中的程序要运行,完成一定的功能,就要进行各种数同样,一个存储单元只能存放一个数值,比如x的值存储在编号为 12000 的单元中,值为300;

24、现在如果要使x的值为z的值 ,那么就必须为x原来的数值(300)分配另外一个存储单元,否则 x原来的值就会丢失,因此我们可以将它另存到编号为12006的单元中,并以t来表示。 C语言程序设计 第二章 程序设计和程序结构同样,一个存储单元只能存放一个数值,比如x的值存储在编号为 在程序运行中,各数据量(如x)的存储单元是在数据处理之前就由系统分配好的,如果它没有具体的数值,那么就没有意义,系统为其分配的存储单元也浪费了。而且,在程序中,通常以数据的名称(如x)参与数据处理,对于存储单元可以不必关心(一般由系统自动分配)。 C语言程序设计 第二章 程序设计和程序结构在程序运行中,各数据量(如x)的

25、存储单元是在数据处理之前就由 C语言程序设计 第二章 程序设计和程序结构图2-3 学校中的班级安排与程序中的数据存储 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构下面,我们分析本例的题目要求:要实现将三个数x、y、z由小到大输出,可以: (1)先把最小的数放到x上:先将x与y进行比 较,如果xy,则将x与y的值进行交换;然 后再用x与z进行比较,如果xz,则将x与z 的值进行交换,这样能使x最小;(2)将剩下y、z进行比较,如果yz,则交换 y与z的值。这样,z 的值最大,y 的值居于 中间; C语言程序设计 C语言程序设计 第二章 程序设计和程序结构(3)要交换两个变量x、y的

26、值,如果直 接使用: x=y; y=x; 由前面的分析可知,当进行 x=y 处理时(x的存储单元存入了y的值),x的值就 会丢失,无法实现交换两个数的目的 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构因此需借助另外的一个变量(设为t),先将x的值给t(x的值存于t所对应的存储单元中)再把y的值给x(y的值存于x的存储单元),最后将t的值(即x原来的值)赋给y(t的值存于y所对应的存储单元中),这样就完成了交换x与y的值。 C语言程序设计 开始A结束流程图如图2-4所示。 输入 x、y、z交换 x、y:t-x,x-y,y-t交换x、z:t=x,x=z,z=t交换y、z:t=y,y=

27、z,z=t输出:x、y、zA定义:三个整数x、y、z,一个临时变量tNyzYNNXzYXyY开始A结束流程图如图2-4所示。 输入 x、y、z交换 x、 C语言程序设计 第二章 程序设计和程序结构说明:在流程图中的 A是连接点,表示右边的流程图连接在左边的流程图之后,这在流程图较大或较长时可以使用。程序源代码如下: /*代码文件名:E2_5.C*/*选择程序设计例题*/#include stdio.hmain()int x,y,z,t;printf(请输入三个整数:n);scanf(%d%d%d,&x,&y,&z); C语言程序设计 C语言程序设计 第二章 程序设计和程序结构if (xy) /

28、*如果xy,则交换x、y的值*/t=x; x=y;y=t; if(xz) /*交换x,z的值*/t=z;z=x;x=t;if(yz) /*交换z,y的值*/t=y;y=z;z=t;printf(这三个数从小到大排列顺序为: %d %d %dn,x,y,z); C语言程序设计 C语言程序设计 第二章 程序设计和程序结构程序运行结果: C语言程序设计 C语言程序设计 第二章 程序设计和程序结构例2-6 打印输出个位数为6且能被3整除的所有正的5位数。 编程思路:程序处理对象用整型变量i来表示,i是个位数为6的5位数,即范围是10006-99996,在 VC6.0环境下,int 型数据的宽度为4个字节,可用整型 int 或长整型long int 来定义i(在TC2.0环境下,int 型数据的宽度为2个字节 C语言程序设计 C语言程序设计 第二章 程序设计和程序结构所能表示的整数范围是-3276832767,就要用长整型long int 来定义i);接下来判断i是否能被3整除,如果整除就输出,否则就不输出。一个数判断完毕后,再判断下一个数,直到将这一范围符合条件的数全部输出,因此要用循环的方法来处理。 C语言程序设计 结束定义一个整型变量:i=1000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论