C语言程序的流程控制

上传人:jin****ng 文档编号:164564617 上传时间:2022-10-25 格式:DOCX 页数:18 大小:78.13KB
收藏 版权申诉 举报 下载
C语言程序的流程控制_第1页
第1页 / 共18页
C语言程序的流程控制_第2页
第2页 / 共18页
C语言程序的流程控制_第3页
第3页 / 共18页
资源描述:

《C语言程序的流程控制》由会员分享,可在线阅读,更多相关《C语言程序的流程控制(18页珍藏版)》请在装配图网上搜索。

1、第3章 C 语言程序的流程控制利用计算机进行程序设计时,不仅仅只 处理一些简单的数据,在大部分的程序设计 里处理的问题还是相当复杂的。对于那些复 杂的程序设计,读者不可能直接就能写出程 序的源代码,而是要通过一些具体的设计方 法(如用程序流程图)把程序设计思想先写 出来,然后根据程序流程图编写代码。本章 将具体介绍进行程序设计时使用的基本方 法和 C 程序的流程控制。3.1程序设计的基本知识3.1.1程序流程图在描述一个程序的基本结构思想时有很多种方法,其中程序流程图是最常用也是 最基本的方法。传统程序流程图传统流程图表示法的特点是用一些 图框表示各种类型的操作,用线表示这些操作 的执行顺序。

2、美国国家标准化协会 ANSI 规 定了一些常用的流程图符号,现已为世界各 国普遍采用。我国也有自己的国家标准 GB 1526-89 与该标准基本相同,本书就参照ANSI 标准做具体介绍。标准中各种图示如 图 3.1 所示。起止框 输入输出框 判断框 处理框1或一 O -匚流程线 连接点 注释框图 3.1 传统流程图表示法下面对其中一些主要符号作简要说明:(1) 起止框是用来标识程序的开始和 结束位置的。规定流程图以起止框开始,以 起止框结束。(2) 输入输出框也叫数据框,其中可 以注明数据名称、来源、用途或其它的文字 说明。(3) 菱形框的作用是对一个给定的条 件进行判断,根据给定的条件是否成

3、立来决 定如何执行其后的操作。(4) 处理框用矩形表示各种处理功 能。例如,执行一个或一组特定的操作,从 而使信息的值、信息的形式或所在位置发生 变化。另外在矩形框内可注明特定处理名称 或其简要功能。(5) 流程线用带箭头的直线表示程序 的执行顺序。当流程自左向右或自上向下时 流程线可以不带箭头,其它情况应加箭头表 示流程。(6) 连接点用小圆圈表示将画在不同 地方的流程线连接起来。下图中有两个以 为标志的连接点,它表示这两个点是互联在 一起的,实际它们是同一个点。这种连接通 常用在图形画不下而需要分开画时。(7) 注释框不是流程图的必要部分, 其不反映流程操作,只是为了流程图中某些 操作做解

4、释补充的,以帮助阅读流程图的人 更好的理解流程图的作用。2. N-S流程图灵活的流程线在程序设计中有它自己的 优点,但也隐藏着许多导致错误的祸根。因 为它允许用流程线使流程任意转移,这对程 序设计是一个隐患,它使程序流程看起来很 乱,使程序难以理解和维护。针对这一弊病, 1973 年美国学者 I . Nassi 和 B . Shneiderman 提出了一种无流程线的流程图,称为N-S图它的基本表示方法是用一个矩形框,把整个程序算法像堆积木一样组成。其基本结构如图 3.3 、3.4、3.5 、3.6 所示。312 程序的三种基本结构结构化的程序设计方法是面向过程的程序设计的基本方法。1996

5、年意大利 Bobra 和Jacopini 提出了三种基本程序结构。已经证 明,这三种算法可以解决任何复杂的问题。1顺序结构不成立表示)语句组2条件P 真N-S辛图表示)、3.4选择结构流程图1成立循环结构n语句组:, _ _1(1)while循环结构不成立条件P成立(传统流程图表示)当条件P成立语W(N-S流程图表示)“.5当型循环结构流程图卜”(2)语网0while循环结构语句组直到条件P成立语句组成立不成立传统流程图表示)(N-S流程图表示)_图3.6直到型流程图例 3.1 画出求 s=1+2+3+ +100的传统流程图和N-S流程图。开始i=l; s=0;i=100s=s+i;i=i+1

6、;3.2|弋语言的基本语句3.2.1样达式语句C语言是一种表达式语言,所有的操作是通过表达式来实输出s由表达式组现的。,_达这里要特别强调,没运算成的语句称为表达式语句式后接一个分号组成。有分号的不是语句。1结赋值语句赋值语句由赋值表达式加一个分号组成。例如:i = 1 ;2 . 函数调用语句函数调用语句由函数调用表达式后跟 一个分号组成。例如:strcpy( s1, student, 4 );printf(good afternoonn );3空语句空语句是只有一个分号而没有其他表 达式的语句。例如:它不产生任何操作运算,只作为形式上的语 句,被填充在控制结构之中。322 复合语句C 语言还

7、允许把一组语句放在一对花括号 之中,称为复合语句。要特别强调一点,一 个复合语句的后花括号之后不应再写分号。 例如:c = getchar();b = b + c ;putchar();3 2 3 流程控制语句选择型结构语句 循环控制结构语句 流程转向语句3.3 选择结构程序设计在 C 语言中实现选择结构的语句有两 大类:if语句和switch语句3.3.1 if 语句(1)简单 if 语句格式:if (表达式)语句;单表达语功能:如果表达式的值为真,则执行其 后的语句,否则不执行该语句。其N-S流程 图如图 3.9 表示。冬e语句图3.(2)基本句els格式:if (表达式)语句1; els

8、e语句2; 功能:如果表达式值为真,则执行语句 1,否则执行语句2。其执行过程如图3.10 所示。表达式/真假句流程图一整数,求其绝图3.10基本语句i丫e语句2语,盘输入任意例3.3从键对值并输出。# includeint x;printf( please enter a number: ); scanf(%d,&x);if(xb) a+;b+; else a=10;b=100;3.3.2 switch 语句一种用于多分支选择的语句 switch 语句,用该语句编写的程序简洁、易懂。而 且,其执行效率要比同样功能的阶梯式 ifelse ifelse语句要高的多。1. switch语句的一般形

9、式switch 语句的一般形式如下:switch (表达式)case 常量表达式 1:语句组 1;case 常量表达式 2:语句组 2;case常量表达式n:语句组n; default :语句组 n+1;2. switch语句的执行过程系统首先计算“表达式”的值,并逐个 与其后的“常量表达式”的值相比较,当“表 达式”的值与某个“常量表达式”的值相等 时,就以此作为程序执行的入口,执行 switch 结构中后面的各语句。如果没有任何一个 case 后面的“常量表达式”的值与“表达式” 的值匹配,则执行 default 后面的语句(组)。 例3.6用switch语句实现例3.4的功能。# inc

10、ludemain()int score;printf(please input score(0-100):); scanf( %d ,&score); /*从键盘输入学 生成绩*/switch(score/10);case 10:case 9:printf(excellentn);break; case 8:printf(goodn); break; case 7:printf(mediumn); break;case 6:printf(passn); break; default:printf(failn);34循环结构程序设计C 语言提供了循环控制的三种语句: while语句、dowhil

11、e循环语句和for循环 语句。3.4.1 while 语句while 语句是一种条件循环结构,其控 制结构如下:while (条件表达式)循环体例3.7计算并输出从1加到100的和:s = 1+2+3+100。# includemain()int sum = 0 , i = 1;/*设置和与循环变量*/while(i=100) sum = sum+i;printf( Sum=%d , sum);程序执行结果如下:The sum of 1 to 100 equals is:50503.4.2dowhile循环语句do-while结构在C语言中用于实现“直 到型”循环。其一般形式为: do循环体

12、while (条件表达式);例39 用dowhile语句求1+2+3+100 的和。# include main() int i =1 , sum=0;do sum = sum+i;i+;while(i=100);printf(sum= %d,sum);3.4.3 for循环语句for 语句的使用最为灵活, 既可以用于 循环次数确定的情况,也可以用于循环次数 未知的情况。for 语句的一般形式如下:for (表达式1;表达式2;表达式3)循环体如图3.13所示,for语句的执行流程是:求解表达式1r语句的执行流程I 图 3.13表例3.10输个整数刁的所有 n的全全部整数进求一法,对 1整除n

13、的都是齐的因子。一个已知循环次数的循环 语句。# include求解表达式3起出它的所有因子。 因子可以采用穷举 行判断,凡是能够 由分析可知,这是 ,因此可以使用formain()int n, k; printf(Please input a positive integer:); scanf( %d ,&n);printf( Number %d Factors:,n); for(k=1;k=n;k+)if(n%k= =0)printf( %d,k);printf(n);程序某次的运行结果如下:Please input a positive integer: 36 /Number 36 Fa

14、ctors: 12346912 18 36344循环嵌套一个循环体内又可以包含另外一个完 整的循环结构,从而构成多重循环结构, 这就是循环的嵌套。3 4 5 continue 和 break 语句1 continue语句continue 语句可以出现在循环体中,其 作用是结束本次循环,但不退出循环结构。 它跳过循环体中下面尚未执行的语句,直接 进行下一次是否执行循环的判定。例 3.12 输出 60600 之间所有不能被 9 整除的数。# includemain()int m;for(m=60; m=600 ; m+)if(m%9= =0) continue ;printf(%dn,m);由这个

15、程序可以看出,当某个自然数m 被 9 整除时,就利用 continue 语句结束本次 循环(其后的输出语句不执行),但不退出 for 循环结构,接着对下一个数进行判断。2. break 语句break 语句只能用在 switch 结构或循环 结构,而不能用于其他结构。但用在循环结 构中时,只能跳出(或终止)它所在的循环, 而不能同时跳出(或终止)多层循环。本章小结从程序执行的流程来看,程序可分为三 种最基本的结构:顺序结构、分支结构以及 循环结构。本章从学习程序的流程图画法入 手系统的介绍了这三种基本结构。程序中执行部分最基本的单位是语句。 本章主要介绍了以下三种类型的语句:(1)表达式语句,

16、任何表达式末尾加 上分号即可构成表达式语句,常用的表达式 语句为赋值语句。(2)复合语句,由把多个语句括起 来组成一个语句。复合语句被认为是单条语 句,它可出现在所有允许出现语句的地方, 如循环体等。(3)控制语句,用于控制程序流程, 由专门的语句定义符及所需的表达式组成。 主要有条件判断执行语句,循环执行语句, 转向语句等。C语言提供了多种形式的条件语句以 构成分支结构。(1)if 语句主要用于单向选择。(2) ifelse语句主要用于双向选择。(3) if else if else 语句和 switch 语 句用于多向选择。这几种形式的条件语句一般来说是可以互 相替代的。C语言提供了三种循环语句。for语句 主要用于给定循环变量初值、步长增量以及 循环次数的循环结构。循环次数及控制条件 要在循环过程中才能确定的循环可用 while 或 do-while 循环。三种循环语句可以相互嵌 套组成多重循环。循环之间可以并列但不能 交叉。可用转移语句把流程转出循环体外, 但不能从外面转向循环体内。在循环程序中 应避免出现死循环,即应保证循环变量的值 在运行过程中可以得到修改,并使循环条件 逐步变为假,从而结束循环。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!