C51-流程控制语句课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C51-流程控制语句课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C51 流程 控制 语句 课件
- 资源描述:
-
1、 4.1 顺序结构顺序结构 4.2 选择结构选择结构 4.3 循环结构循环结构 4.4 C51 数组数组 4.5 函数函数 4.6 程序设计程序设计返回4.1 顺顺 序序 结结 构构顺序结构是一种最基本、最简单的编程结构。在这种结构中,程序由顺序结构是一种最基本、最简单的编程结构。在这种结构中,程序由低地址向高地址顺序执行指令代码。如低地址向高地址顺序执行指令代码。如图图4.1 所示,程序先执行所示,程序先执行A 操操作,再执行作,再执行B 操作,两者是顺序执行的关系。操作,两者是顺序执行的关系。例例4.1 要求把内部要求把内部RAM 30H 中的一个压缩中的一个压缩BCD 码(如码(如97H
2、),转换),转换为十六进制数,并把该数存放入内部为十六进制数,并把该数存放入内部RAM 31H,编程实现之。,编程实现之。#include#include void main()unsigned char data a20;下一页返回4.1 顺顺 序序 结结 构构DBYTE0 x30=0 x97;a0=0 x97;a2=a0;a1=a14;a1=a1*10;a2=a2&0 x0F;a1=a1+a2;DBYTE0 x31=a1;while(1);上一页返回4.2 选选 择择 结结 构构 4.2.1 if 语句的三种基本形式语句的三种基本形式C51 语言的语言的if 语句有三种基本形式。语句有三种
3、基本形式。1.第一种形式(基本形式)第一种形式(基本形式)if(表达式表达式)语句语句其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句,其过程如语句,其过程如图图4.2 所示。所示。例例4.4 输入两个整数,输出其中的大数。请编程实现此功能。输入两个整数,输出其中的大数。请编程实现此功能。#include void main()下一页返回4.2 选选 择择 结结 构构int a,b,max;printf(n input two numbers:);scanf(%d%d,&a,&b);max=a;if(maxb)max=
4、b;printf(max=%d,max);上一页 下一页返回4.2 选选 择择 结结 构构2.第二种形式第二种形式if(表达式表达式)语句语句1;else语句语句2;其语义是:如果表达式的值为真,则执行语句其语义是:如果表达式的值为真,则执行语句A,否则执行语句,否则执行语句B。其过程如其过程如图图4.3 所示。所示。上一页 下一页返回4.2 选选 择择 结结 构构3.第三种形式(第三种形式(if-else-if 形式)形式)前两种形式的前两种形式的if 语句一般都用于两个分支的情况。当有多个分支选择语句一般都用于两个分支的情况。当有多个分支选择时,可采用时,可采用if-else-if语句,其
5、一般形式为:语句,其一般形式为:if(表达式表达式1)语句语句1;else if(表达式表达式2)语句语句2;else if(表达式表达式3)语句语句3;上一页 下一页返回4.2 选选 择择 结结 构构else if(表达式表达式m)语句语句m;else语句语句n;其语义是:依次判断表达式的值,当出现某个值为真时,则执行其到其语义是:依次判断表达式的值,当出现某个值为真时,则执行其到整个整个if 语句之外继续执行程序。如果所有的表达式均为假,则执行语语句之外继续执行程序。如果所有的表达式均为假,则执行语句句n。然后继续执行后续程序。使用。然后继续执行后续程序。使用if 语句应注意以下问题:语句
6、应注意以下问题:(1)在三种形式的在三种形式的if 语句中,在语句中,在if 关键字之后均为表达式。该表达关键字之后均为表达式。该表达式通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值式通常是逻辑表达式或关系表达式,但也可以是其他表达式,如赋值表达式等,甚至也可以是一个变量。表达式等,甚至也可以是一个变量。上一页 下一页返回4.2 选选 择择 结结 构构例如:例如:“if(a=5)语句;)语句;”“”“if(b)语句;)语句;”都是允许的。只要表都是允许的。只要表达式的值为非达式的值为非0,即为,即为“真真”。如在。如在“if(a=5);”中,表达式中,表达式的值永远为非的值永远为非
7、0,所以其后的语句总是要执行的,当然这种情况在程,所以其后的语句总是要执行的,当然这种情况在程序中不一定会出现,但在语法上是合法的。序中不一定会出现,但在语法上是合法的。(2)在在if 语句中,条件判断表达式必须用括号括起来,在语句之后语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。必须加分号。(3)在在if 语句的三种形式中,所有的语句应为单个语句,如果要想语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用在满足条件时执行一组(多个)语句,则必须把这一组语句用“”括起来组成一个复合语句。但要注意的是在括起来组成一个复合语句。
8、但要注意的是在“”之后不能再加分号。之后不能再加分号。上一页 下一页返回4.2 选选 择择 结结 构构(4)if 语句的嵌套。语句的嵌套。当当if 语句中的执行语句又是语句中的执行语句又是if 语句时,则构成了语句时,则构成了if 语句嵌套的情形。语句嵌套的情形。其一般形式可表示如下:其一般形式可表示如下:if(表达式表达式)if 语句语句;或者为:或者为:if(表达式表达式)if 语句语句;elseif 语句语句;上一页 下一页返回4.2 选选 择择 结结 构构在嵌套内的在嵌套内的if 语句可能又是语句可能又是if-else 型的,这将会出现多个型的,这将会出现多个if 和多个和多个else
9、 重叠的情况,这时要特别注意重叠的情况,这时要特别注意if 和和else 的配对问题。的配对问题。4.2.2 switch-case 语句语句C51 语言还提供了另一种用于多分支选择的语言还提供了另一种用于多分支选择的switch 语句,其一般形语句,其一般形式为:式为:switch(表达式表达式)case 常量表达式常量表达式1:语句语句1;上一页 下一页返回4.2 选选 择择 结结 构构case 常量表达式常量表达式2:语句语句2;case 常量表达式常量表达式n:语句语句n;default:语句语句n+1;其语义是:计算表达式的值,并逐个与其后的常量表达式值相比较,其语义是:计算表达式的
10、值,并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有后不再进行判断,继续执行后面所有case后的语句。如果表达式的后的语句。如果表达式的值与所有值与所有case 后的常量表达式均不相同时,则执行后的常量表达式均不相同时,则执行default 后的语句。后的语句。其执行流程图如其执行流程图如图图4.4 所示。所示。上一页 下一页返回4.2 选选 择择 结结 构构在使用在使用switch 语句时还应注意以下几点:语句时还应注意以下几点:(1)在在case 后的各
11、常量表达式的值不能相同,否则会出现错误。后的各常量表达式的值不能相同,否则会出现错误。(2)在在case 后,允许有多个语句,可以不用后,允许有多个语句,可以不用“”括起来。括起来。(3)各各case 和和default 子句的先后顺序可以变动,而不会影响程序子句的先后顺序可以变动,而不会影响程序执行结果。执行结果。(4)default 子句可以省略不用。子句可以省略不用。上一页返回下一页4.2 选选 择择 结结 构构 4.2.3 break语句语句C51语言还提供了一种语言还提供了一种break语句,专用于跳出语句,专用于跳出switch语句。语句。Break语句只有关键字语句只有关键字br
12、eak,没有参数。,没有参数。上一页返回4.3 循循 环环 结结 构构程序设计中,常常要求某一段程序重复执行多次,这时可采用循环结程序设计中,常常要求某一段程序重复执行多次,这时可采用循环结构程序。这种结构可大大简化程序,但程序执行的时间并不会减少。构程序。这种结构可大大简化程序,但程序执行的时间并不会减少。图图4.5 是典型的当型循环结构,控制语句在循环体之前,所以在结束是典型的当型循环结构,控制语句在循环体之前,所以在结束条件已具备的情况下,循环体程序可以一次也不执行,条件已具备的情况下,循环体程序可以一次也不执行,C51 提供了提供了while 和和for 语句实现这种循环结构。语句实现
13、这种循环结构。图图4.6 中其控制部分在循环体之后,因此,即使在执行循环体程序之中其控制部分在循环体之后,因此,即使在执行循环体程序之前结束条件已经具备,循环体程序至少还要执行一次,因此称为直到前结束条件已经具备,循环体程序至少还要执行一次,因此称为直到型循环结构,型循环结构,C51 提供了提供了do-while 语句实现这种循环结构。语句实现这种循环结构。下一页返回4.3 循循 环环 结结 构构循环程序一般包括以下循环程序一般包括以下4 个部分:个部分:(1)初始化:置循环初值,即设置循环开始的状态,比如设置地址初始化:置循环初值,即设置循环开始的状态,比如设置地址指针、设定工作寄存器、设定
14、循环次数等。指针、设定工作寄存器、设定循环次数等。(2)循环体:这是要重复执行的程序段,是循环结构的基本部分。循环体:这是要重复执行的程序段,是循环结构的基本部分。(3)循环控制:循环控制包括修改指针、修改控制变量和判断循环循环控制:循环控制包括修改指针、修改控制变量和判断循环是否结束还是继续,修改指针和变量是为下一次循环判断做准备,当是否结束还是继续,修改指针和变量是为下一次循环判断做准备,当符合结束条件时,结束循环;否则,继续循环。符合结束条件时,结束循环;否则,继续循环。(4)结束:存放结果或做其他处理。结束:存放结果或做其他处理。在循环程序中,有两种常用的控制循环次数的方法:一种是循环
15、次数在循环程序中,有两种常用的控制循环次数的方法:一种是循环次数已知,这时把循环次数作为循环计算器的初值,当计数器的值加满或已知,这时把循环次数作为循环计算器的初值,当计数器的值加满或减为减为0 时,即结束循环;否则,继续循环。时,即结束循环;否则,继续循环。上一页 下一页返回4.3 循循 环环 结结 构构另一种是循环次数未知,这时可根据给定的问题条件来判断是否继续。另一种是循环次数未知,这时可根据给定的问题条件来判断是否继续。一、一、while 语句语句while 语句的一般形式为:语句的一般形式为:while(表达式表达式)语句语句;其中表达式是循环条件,语句为循环体。其中表达式是循环条件
16、,语句为循环体。while 语句的语义是:计算表达式的值,当值为真(非语句的语义是:计算表达式的值,当值为真(非0)时,执行)时,执行循环体语句。循环体语句。上一页 下一页返回4.3 循循 环环 结结 构构例例4.9 统计从键盘输入一行字符的个数。请编程实现此功能。统计从键盘输入一行字符的个数。请编程实现此功能。#include void main()int n=0;printf(input a string:n);while(getchar()!=n)n+;printf(%d,n);上一页 下一页返回4.3 循循 环环 结结 构构(1)while 语句中的表达式一般是关系表达式或逻辑表达式,
17、只要语句中的表达式一般是关系表达式或逻辑表达式,只要表达式的值为真(非表达式的值为真(非0)即可继续循环。即可继续循环。(2)循环体如果包括有一个以上的语句,则必须用循环体如果包括有一个以上的语句,则必须用“”括起来,括起来,组成复合语句。组成复合语句。(3)应注意循环条件的选择以避免死循环。应注意循环条件的选择以避免死循环。二、二、do-while 语句语句do-while 语句的一般形式为:语句的一般形式为:do语句语句;上一页 下一页返回4.3 循循 环环 结结 构构while(表达式表达式);其中语句是循环体,表达式是循环条件。其中语句是循环体,表达式是循环条件。do-while 语句
18、的语义是:先执行循环体语句一次,再判别表达式的语句的语义是:先执行循环体语句一次,再判别表达式的值,若为真(非值,若为真(非0)则)则继续循环,否则终止循环。继续循环,否则终止循环。do-while 语句和语句和while 语句的区别在于语句的区别在于do-while 是先执行后判断,是先执行后判断,因此因此do-while 至少要至少要执行一次循环体。而执行一次循环体。而while 是先判断后执行,如果条件不满足,则循是先判断后执行,如果条件不满足,则循环体语句一次也不执行。环体语句一次也不执行。while 语句和语句和do-while 语句一般都可以相互改写。语句一般都可以相互改写。上一页
19、 下一页返回4.3 循循 环环 结结 构构三、三、for 语句语句for 语句的一般格式为:语句的一般格式为:for(变量赋初值变量赋初值;循环继续条件循环继续条件;循环变量增值循环变量增值)循环体语句组循环体语句组;执行过程如执行过程如图图4.7 所示。所示。(1)求解求解“变量赋初值变量赋初值”表达式表达式1。(2)求解求解“循环继续条件循环继续条件”表达式表达式2。如果其值非。如果其值非0,执行步骤,执行步骤(3);否则,转至步骤();否则,转至步骤(4)。)。(3)执行循环体语句组,并求解执行循环体语句组,并求解“循环变量增值循环变量增值”表达式表达式3,然后,然后转向步骤(转向步骤(
20、2)。)。上一页 下一页返回4.3 循循 环环 结结 构构(4)执行执行for 语句的下一条语句。语句的下一条语句。对对“变量赋初值变量赋初值”“”“循环继续条件循环继续条件”和和“循环变量增值循环变量增值”部分均可缺部分均可缺省,甚至全部缺省,但其间的分号不能省略。省,甚至全部缺省,但其间的分号不能省略。当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。“循环变量赋初值循环变量赋初值”表达式表达式1,既可以是给循环变量赋初值的赋值表,既可以是给循环变量赋初值的赋值表达式,也可以是与此无关的其他表达式(如逗号表达式)。达式,也可
21、以是与此无关的其他表达式(如逗号表达式)。“循环继续条件循环继续条件”部分是一个逻辑量,除一般的关系(或逻辑)表达部分是一个逻辑量,除一般的关系(或逻辑)表达式外,也允许是数值(或字符)表达式。式外,也允许是数值(或字符)表达式。for 语句中的各表达式都可省略,但分号间隔符不能少。语句中的各表达式都可省略,但分号间隔符不能少。上一页返回4.4 C51 数数 组组数组是一组具有固定数目和相同类型成分分量的有序集合。数组是一组具有固定数目和相同类型成分分量的有序集合。1.一维数组一维数组定义:类型说明符定义:类型说明符 数组名整型表达式数组名整型表达式2.二维数组二维数组定义:类型说明符定义:类
22、型说明符 数组名常量表达式常量表达式数组名常量表达式常量表达式3.字符数组字符数组定义方法同上。定义方法同上。字符数组中字符数组中 括起来的一串字符,称为字符串常量。括起来的一串字符,称为字符串常量。C 语言编译器语言编译器会自动地在字符末尾加上结束符会自动地在字符末尾加上结束符o(NULL);用);用 括起来的字符为括起来的字符为字符的字符的ASCII 码值而不是字符串。比如:码值而不是字符串。比如:a 表示表示a 的的ASCII 码值码值97,而而a 表示一个字符串,它由两个字符组成,即表示一个字符串,它由两个字符组成,即a 和和o。下一页返回4.4 C51 数数 组组一个字符串可以用一个
23、一维数组来装入,但数组的元素数目一定要比一个字符串可以用一个一维数组来装入,但数组的元素数目一定要比字符多一个,以便字符多一个,以便C 编译器自动在其后面加入结束符编译器自动在其后面加入结束符 o。二维字符数组中,第一个下标是字符串的个数,第二个下标定义每个二维字符数组中,第一个下标是字符串的个数,第二个下标定义每个字符串的长度,该长度应当比这批字符串中最长的串多一个字符,用字符串的长度,该长度应当比这批字符串中最长的串多一个字符,用于装入字符串的结束符于装入字符串的结束符 o。上一页返回4.5 函函 数数C 语言程序的一般组成结构:语言程序的一般组成结构:下一页返回4.5 函函 数数普通函数
24、之间可以互相调用,但普通函数不能调用主函数。普通函数之间可以互相调用,但普通函数不能调用主函数。一个一个C 程序的指向从程序的指向从main()函数开始,调用其他函数后返回到主函函数开始,调用其他函数后返回到主函数数main()中,最后在主函数中,最后在主函数main()中结束整个中结束整个C 程序的运行。程序的运行。1.函数的分类函数的分类C 语言函数分为主函数语言函数分为主函数main()和普通函数两种。普通函数从不同角和普通函数两种。普通函数从不同角度又可分为:度又可分为:从用户使用的角度划分:标准库函数、用户自定义函数;从用户使用的角度划分:标准库函数、用户自定义函数;从函数定义的形式
25、上划分:无参数函数、有参数函数、空函数。从函数定义的形式上划分:无参数函数、有参数函数、空函数。上一页 下一页返回4.5 函函 数数2.函数的定义函数的定义(1)无参数函数的定义。无参数函数的定义。返回值类型标识符返回值类型标识符 函数名函数名()函数体语句函数体语句无参数函数一般不带返回值,因此函数返回值类型标识无参数函数一般不带返回值,因此函数返回值类型标识符可以省略。符可以省略。(2)有参数函数的定义。有参数函数的定义。返回值类型标识符返回值类型标识符 函数名函数名(形式参数列表形式参数列表)函数体语句函数体语句上一页 下一页返回4.5 函函 数数(3)空函数的定义。空函数的定义。返回值
展开阅读全文