基础篇3 C语言的三种语句结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
真
A
A
P
假
B
I. II.
B
图1
图2 版权:力天电子
主讲人:尹延辉
www.LT430.com
新语新知 ——程序的三种基本结构
C语言的三种语句结构
III. 循环结构,有两种循环结构: ① 当型循环结构,见图3。当P条件成立(“ 真”)时,反复执行A操作。直到P为“假 ”时才停止循环。 ② 直到型循环结构,见图4。先执行A操作, 再判断P是否为“假”,若P为“假”,再 执行A,如此反复,直到P为“真”为止。 由选择结构可以派生出另一种基本结构 : 多分支选择结构,见图5。根据k的值 (k1,k2,…,kn) 不 同 而 决 定 执 行 A1,A2,…,An之一。
{ z=x+y; t=z/100; }
C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式 无固定要求。
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——程序的三种基本结构
C语言的三种语句结构
为了提高程序设计的质量和效率,现 在普遍采用结构化程序设计方法。结 构化程序由若干个基本结构组成。每 一个基本结构可以包含 一个或若干 个语句。有三种基本结构: 顺序结构,见图1。先执行a操作,再执 行b操作,两者是顺序执行的关系。 选择结构,见图2。P代表一个条件,当 p条件成立(或称为“真”)时执行A, 否则执行B。注意,只能执行A或B之 一。两条路径汇合在一起然后出口。
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
逻辑运算符
熟练掌握C语言的关系运算符和逻辑运算符后,可以巧妙地用一个逻辑 表达式来表示一个复杂的条件。 例如,要判别某一年year是否闰年。闰年的条件是符合下面二者之一: ①能被4整除,但不能被100整除。②能被4整除,又能被400整除。 可以用一个逻辑表达式来表示: (year%4==0 && year%100!=0)||year%400==0 当year为某一整数值时,如果上述表达式值为真(1),则year为闰年; 否则year为非闰年。 可以加一个“!”用来判别非闰年: !((year%4==0 && year%100!=0)||year%400==0)
C语句的分类
2. 3. 函数调用语句。由一次函数调用加一个分号构成一个语句,例如:
printf("this is a c statement.");
表达式语句。 由一个表达式构成一个语句,最典型的是,由赋值表达式 构成一个赋值语句。
a=3
是一个赋值表达式,而
a=3;
是一个赋值语句。可以看到一个表达式的最后加一个分号就成了一个语句 。一个语句必须在最பைடு நூலகம்出现分号,分号是语句中不可缺少的一部分。例如 :
k
k=k1 k=k2 k=kn
A
B 假
A1
A2
An
真
图5
图6
版权:力天电子
主讲人:尹延辉
www.LT430.com
新语新知 ——顺序结构程序设计
顺序语句设计举例
此处用流水灯和延时函数编写一个顺序语 句的例子。 1. void main(void) 2. { 3. LED_BIT = 1;//74HC573的L引 脚置高电平,使其处于直通状态 4. P0 = 0xff;//8位流水灯全亮 5. delay_1s();//延时1秒 6. P0 = 0x00;//8位流水灯全灭 7. delay_1s();//延时1秒 8. P0 = 0xff;//8位流水灯全亮 9. while(1);//条件总为真,死循环 10. }
手把手教你学51单片机
——之MCS-51基础篇
主 策 讲: 尹延辉 划:张 勇
开发板:LT-Super51
QQ群:31646346 网址:www.lt430.com E-Mail:litianmcu@qq.com litianmcu@foxmail.com
基础篇 第三讲 ——C语言的三种语句结构
本讲内容提要
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
逻辑运算符
I. II. III. C语言提供三种逻辑运算符(等同于逻辑代数的原理): && 逻辑与(相当于其他语言中的AND) || 逻辑或(相当于其他语言中的OR) ! 逻辑非(相当于其他语言中的NOT) “&&”和“||”是“双目(元)运算符”,它要求有两个运算量(操作数),如(a> b)&&(x>y),(a>b)||(x>y)。 “!”是“一目(元)运算符”,只要求有一个运 算量,如!(a>b)。 逻辑运算举例如下: a&&b若a、b为真,则a&&b为真。 a||b 若a、b之一为真,则a||b为真。 !a 若a为真,则!a为假。 注意优先级 (a>b) && (x>y) 等价于a>b && x>y (a==b)||(x==y) 等价于a==b||x==y
实验题
① ② ③ ④
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——C语句概述
C语句的定义
和其他高级语言一样,c语言的语句用来向计算机系统发出操作指令。一 个语句经编译后产生若干条机器指令。一个实际的程序应当包含若干语句 。应当指出,c语句都是用来完成一定操作任务的。声明部分的内容不应 称为语句。如:int a;不是一个c语句,它不产生机器操作,而只是对变 量的定义。 从入门篇第四讲已知,一个函数包含声明部分和执行部分,执行部分即由 语句组成。c程序结构可以用下图表示。即一个c程序可以由若干个源程 序文件(分别进行编译的文件模块)组成,一个源文件可以由若干个函数和 预处理命令以及全局变量声明部分组成,一个函数由数据定义部分和执行 语句组成。 已经说明,程序应该包括数据描述(由声明部分来实现)和数据操作(由语 句来实现)。数据描述主要定义数据结构(用数据类型表示)和数据初值。 数据操作的任务是对已提供的数据进行加工。
主讲人:尹延辉
版权:力天电子
www.LT430.com
释疑解惑 ——C数据类型与表达式(1)
填空题
char型、int型、long int型变量分别占用1、2、4字节存储单元。 有以下语句:char a=‘0’;则变量a用十六进制表示的值为0x30。 对于单片机型号STC89C58,具有256字节的片内用户数据区,其中的 128字节定义的C变量需要用data修饰、128字节需要用idata修饰。想要 存储一个1K字节的液晶显示器字符表,需要在定义变量时在其前加code 修饰使得字符表变量位于片内ROM存储器内。 设有char a=10;写出下面表达式的值,并编写程序通过流水灯输出验证 a+=a:20 a-=12:-2 a*=3+a:130 a/=a+a:0
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
C语言位运算符简介
所谓位运算是指进行二进制位的运算。在系统软件中,常要处理 二进位的问题。例如,将一个存储单元中的各二进位左移或右移 一位,两个数按位相加等。C语言提供位运算的功能,与其他高 级语言相比,它显然具有很大的优越性。 & :按位取与 | :按位取或 ~:按位取反 ^ :按位异或 <<:按位左移 >>:按位右移 版权:力天电子
① ② ③ ④ ⑤ ⑥
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
关系表达式
用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值 表达式、字符表达式)连接起来的式子,称关系表达式。例如,下面都是合法的关 系表达式: a>b, a+b>b+c, (a=3)>(b=5), 'a'<'b', (a>b)>(b<c) 关系表达式的值是一个逻辑值,即“真”或“假”。例如,关系表达式“5==3” 的值为“假”,“5>=0”的值为“真”。c语言没有逻辑型数据以”1”(或者非0) 代表“真”,以“0”代表“假”。例如,a=3,b=2,c=1,则: 关系表达式“a>b”的值为“真”,表达式的值为1。 关系表达式“(a>b)==c”的值为“真”(因为a>b的值为1,等于c的值),表达 式的值为1。 关系表达式“b+c<a”的值为“假”,表达式的值为0。 如果有以下赋值表达式:d=a>b 则d的值为1。 f=a>b>c则f的值为0 (因为“>”运算符是自左至右的结合方向,先执行“a> b”得值为1, 再执行关系运算“1>c”,得值0,赋给f)。
i=i+1 i=i+1; (是表达式,不是语句) (是语句)
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——C语句概述
C语句的分类
4. 空语句。下面是一个空语句:
;
5.
即只有一个分号的语句,它什么也不做。有时用来做被转向点,或循环语 句中的循环体(循环体是空语句,表示循环体什么也不做)。 可以用 {}把一些语句括起来成为复合语句,又称分程序。如下面是一 个复合语句。
上 面 9 种 语 句 中 的 括 号 () 表 示 其 中 是 一 个 条 件 , … 表 示 内 嵌 的 语 句 。 例 如 : “if()… else…”的具体语句可以写成: if(x>y) z=x;else z=y;
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——C语句概述
C语句概述 程序的三种基本结构 顺序结构程序设计 逻辑运算与位运算符 选择结构程序设计 循环结构程序设计 习题
真
P
假
A B
P
真
假
A
B
A
主讲人:尹延辉
版权:力天电子
www.LT430.com
温故知新 ——C的数据类型与表达式
C语言的数据类型:字符型、整型、长整型,有符号、无符号 51单片机存储器结构:ROM、片内RAM数据区、片外RAM C51的变量类型修饰符: code、data、idata、xdata C运算符与表达式:优先级、结合性的概念 算术运算符与表达式:加、减、乘、除、取模 赋值运算符与表达式:一般赋值表达式、复合赋值符与表达式 C程序的流水灯验证:软仿的概念
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——C语句概述
C程序
源程序文件1 预处理命令
源程序文件2 数据声明 函数1
源程序文件n 函数n
函数首部 数据声明
函数体 执行语句
版权:力天电子
主讲人:尹延辉
www.LT430.com
新语新知 ——C语句概述
C语句的分类
1. ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ C语句可以分为以下5类: 控制语句,完成一定的控制功能。c只有9种控制语句,它们是: if()…else… (条件语句) for()… (循环语句) while() … (循环语句) do…while() (循环语句) continue (结束本次循环语句) break (中止执行switch或循环语句) switch (多分支选择语句) goto (转向语句) return (从函数返回语句)
P
真
假
A
假
A
P
真
图3
图4
版权:力天电子
主讲人:尹延辉
www.LT430.com
新语新知 ——程序的三种基本结构
已经证明,由以上基本结构
组成的程序能处理任何 复杂的问题。上面图1~ 图 6 中 方 框 中 的 A,B,A1,…,An 等 可 以 是 一个简单的语句,也可以 又是一个基本结构。例 如,图6是一个顺序结构, 它由两个操作顺序组成 。虚线框内是一个当型 循环结构,可以用”B”表示 ,因此图6就 可以理解为 图1所示的顺序结构。
开始 开流水灯
延时1秒
关流水灯
延时1秒
开流水灯
死循环
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
关系运算符
关系运算是逻辑运算中比较简单的一种。所谓“关系运算”实际上是“比较运算 ”。将两个值进行比较,判断其比较的结果是否符合给定的条件。例如,a>3是 一个关系表达式,大于号(>)是一个关系运算符,如果a的值为5,则满足给定的 “a>3”条件,因此关系表达式的值为“真”(即“条件满足”);如果a的值为2 ,不满足“a>3”条件,则称关系表达式的值为“假”。 C语言提供6种关系运算符: 优先级相同 (高): <(小于) 算术运算符 高 <=(小于或等于) >(大于) 关系运算符 >=(大于或等于) 优先级相同 (低): 赋值运算符 低 == (等于) !=(不等于)
A
A
P
假
B
I. II.
B
图1
图2 版权:力天电子
主讲人:尹延辉
www.LT430.com
新语新知 ——程序的三种基本结构
C语言的三种语句结构
III. 循环结构,有两种循环结构: ① 当型循环结构,见图3。当P条件成立(“ 真”)时,反复执行A操作。直到P为“假 ”时才停止循环。 ② 直到型循环结构,见图4。先执行A操作, 再判断P是否为“假”,若P为“假”,再 执行A,如此反复,直到P为“真”为止。 由选择结构可以派生出另一种基本结构 : 多分支选择结构,见图5。根据k的值 (k1,k2,…,kn) 不 同 而 决 定 执 行 A1,A2,…,An之一。
{ z=x+y; t=z/100; }
C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式 无固定要求。
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——程序的三种基本结构
C语言的三种语句结构
为了提高程序设计的质量和效率,现 在普遍采用结构化程序设计方法。结 构化程序由若干个基本结构组成。每 一个基本结构可以包含 一个或若干 个语句。有三种基本结构: 顺序结构,见图1。先执行a操作,再执 行b操作,两者是顺序执行的关系。 选择结构,见图2。P代表一个条件,当 p条件成立(或称为“真”)时执行A, 否则执行B。注意,只能执行A或B之 一。两条路径汇合在一起然后出口。
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
逻辑运算符
熟练掌握C语言的关系运算符和逻辑运算符后,可以巧妙地用一个逻辑 表达式来表示一个复杂的条件。 例如,要判别某一年year是否闰年。闰年的条件是符合下面二者之一: ①能被4整除,但不能被100整除。②能被4整除,又能被400整除。 可以用一个逻辑表达式来表示: (year%4==0 && year%100!=0)||year%400==0 当year为某一整数值时,如果上述表达式值为真(1),则year为闰年; 否则year为非闰年。 可以加一个“!”用来判别非闰年: !((year%4==0 && year%100!=0)||year%400==0)
C语句的分类
2. 3. 函数调用语句。由一次函数调用加一个分号构成一个语句,例如:
printf("this is a c statement.");
表达式语句。 由一个表达式构成一个语句,最典型的是,由赋值表达式 构成一个赋值语句。
a=3
是一个赋值表达式,而
a=3;
是一个赋值语句。可以看到一个表达式的最后加一个分号就成了一个语句 。一个语句必须在最பைடு நூலகம்出现分号,分号是语句中不可缺少的一部分。例如 :
k
k=k1 k=k2 k=kn
A
B 假
A1
A2
An
真
图5
图6
版权:力天电子
主讲人:尹延辉
www.LT430.com
新语新知 ——顺序结构程序设计
顺序语句设计举例
此处用流水灯和延时函数编写一个顺序语 句的例子。 1. void main(void) 2. { 3. LED_BIT = 1;//74HC573的L引 脚置高电平,使其处于直通状态 4. P0 = 0xff;//8位流水灯全亮 5. delay_1s();//延时1秒 6. P0 = 0x00;//8位流水灯全灭 7. delay_1s();//延时1秒 8. P0 = 0xff;//8位流水灯全亮 9. while(1);//条件总为真,死循环 10. }
手把手教你学51单片机
——之MCS-51基础篇
主 策 讲: 尹延辉 划:张 勇
开发板:LT-Super51
QQ群:31646346 网址:www.lt430.com E-Mail:litianmcu@qq.com litianmcu@foxmail.com
基础篇 第三讲 ——C语言的三种语句结构
本讲内容提要
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
逻辑运算符
I. II. III. C语言提供三种逻辑运算符(等同于逻辑代数的原理): && 逻辑与(相当于其他语言中的AND) || 逻辑或(相当于其他语言中的OR) ! 逻辑非(相当于其他语言中的NOT) “&&”和“||”是“双目(元)运算符”,它要求有两个运算量(操作数),如(a> b)&&(x>y),(a>b)||(x>y)。 “!”是“一目(元)运算符”,只要求有一个运 算量,如!(a>b)。 逻辑运算举例如下: a&&b若a、b为真,则a&&b为真。 a||b 若a、b之一为真,则a||b为真。 !a 若a为真,则!a为假。 注意优先级 (a>b) && (x>y) 等价于a>b && x>y (a==b)||(x==y) 等价于a==b||x==y
实验题
① ② ③ ④
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——C语句概述
C语句的定义
和其他高级语言一样,c语言的语句用来向计算机系统发出操作指令。一 个语句经编译后产生若干条机器指令。一个实际的程序应当包含若干语句 。应当指出,c语句都是用来完成一定操作任务的。声明部分的内容不应 称为语句。如:int a;不是一个c语句,它不产生机器操作,而只是对变 量的定义。 从入门篇第四讲已知,一个函数包含声明部分和执行部分,执行部分即由 语句组成。c程序结构可以用下图表示。即一个c程序可以由若干个源程 序文件(分别进行编译的文件模块)组成,一个源文件可以由若干个函数和 预处理命令以及全局变量声明部分组成,一个函数由数据定义部分和执行 语句组成。 已经说明,程序应该包括数据描述(由声明部分来实现)和数据操作(由语 句来实现)。数据描述主要定义数据结构(用数据类型表示)和数据初值。 数据操作的任务是对已提供的数据进行加工。
主讲人:尹延辉
版权:力天电子
www.LT430.com
释疑解惑 ——C数据类型与表达式(1)
填空题
char型、int型、long int型变量分别占用1、2、4字节存储单元。 有以下语句:char a=‘0’;则变量a用十六进制表示的值为0x30。 对于单片机型号STC89C58,具有256字节的片内用户数据区,其中的 128字节定义的C变量需要用data修饰、128字节需要用idata修饰。想要 存储一个1K字节的液晶显示器字符表,需要在定义变量时在其前加code 修饰使得字符表变量位于片内ROM存储器内。 设有char a=10;写出下面表达式的值,并编写程序通过流水灯输出验证 a+=a:20 a-=12:-2 a*=3+a:130 a/=a+a:0
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
C语言位运算符简介
所谓位运算是指进行二进制位的运算。在系统软件中,常要处理 二进位的问题。例如,将一个存储单元中的各二进位左移或右移 一位,两个数按位相加等。C语言提供位运算的功能,与其他高 级语言相比,它显然具有很大的优越性。 & :按位取与 | :按位取或 ~:按位取反 ^ :按位异或 <<:按位左移 >>:按位右移 版权:力天电子
① ② ③ ④ ⑤ ⑥
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
关系表达式
用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值 表达式、字符表达式)连接起来的式子,称关系表达式。例如,下面都是合法的关 系表达式: a>b, a+b>b+c, (a=3)>(b=5), 'a'<'b', (a>b)>(b<c) 关系表达式的值是一个逻辑值,即“真”或“假”。例如,关系表达式“5==3” 的值为“假”,“5>=0”的值为“真”。c语言没有逻辑型数据以”1”(或者非0) 代表“真”,以“0”代表“假”。例如,a=3,b=2,c=1,则: 关系表达式“a>b”的值为“真”,表达式的值为1。 关系表达式“(a>b)==c”的值为“真”(因为a>b的值为1,等于c的值),表达 式的值为1。 关系表达式“b+c<a”的值为“假”,表达式的值为0。 如果有以下赋值表达式:d=a>b 则d的值为1。 f=a>b>c则f的值为0 (因为“>”运算符是自左至右的结合方向,先执行“a> b”得值为1, 再执行关系运算“1>c”,得值0,赋给f)。
i=i+1 i=i+1; (是表达式,不是语句) (是语句)
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——C语句概述
C语句的分类
4. 空语句。下面是一个空语句:
;
5.
即只有一个分号的语句,它什么也不做。有时用来做被转向点,或循环语 句中的循环体(循环体是空语句,表示循环体什么也不做)。 可以用 {}把一些语句括起来成为复合语句,又称分程序。如下面是一 个复合语句。
上 面 9 种 语 句 中 的 括 号 () 表 示 其 中 是 一 个 条 件 , … 表 示 内 嵌 的 语 句 。 例 如 : “if()… else…”的具体语句可以写成: if(x>y) z=x;else z=y;
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——C语句概述
C语句概述 程序的三种基本结构 顺序结构程序设计 逻辑运算与位运算符 选择结构程序设计 循环结构程序设计 习题
真
P
假
A B
P
真
假
A
B
A
主讲人:尹延辉
版权:力天电子
www.LT430.com
温故知新 ——C的数据类型与表达式
C语言的数据类型:字符型、整型、长整型,有符号、无符号 51单片机存储器结构:ROM、片内RAM数据区、片外RAM C51的变量类型修饰符: code、data、idata、xdata C运算符与表达式:优先级、结合性的概念 算术运算符与表达式:加、减、乘、除、取模 赋值运算符与表达式:一般赋值表达式、复合赋值符与表达式 C程序的流水灯验证:软仿的概念
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——C语句概述
C程序
源程序文件1 预处理命令
源程序文件2 数据声明 函数1
源程序文件n 函数n
函数首部 数据声明
函数体 执行语句
版权:力天电子
主讲人:尹延辉
www.LT430.com
新语新知 ——C语句概述
C语句的分类
1. ① ② ③ ④ ⑤ ⑥ ⑦ ⑧ ⑨ C语句可以分为以下5类: 控制语句,完成一定的控制功能。c只有9种控制语句,它们是: if()…else… (条件语句) for()… (循环语句) while() … (循环语句) do…while() (循环语句) continue (结束本次循环语句) break (中止执行switch或循环语句) switch (多分支选择语句) goto (转向语句) return (从函数返回语句)
P
真
假
A
假
A
P
真
图3
图4
版权:力天电子
主讲人:尹延辉
www.LT430.com
新语新知 ——程序的三种基本结构
已经证明,由以上基本结构
组成的程序能处理任何 复杂的问题。上面图1~ 图 6 中 方 框 中 的 A,B,A1,…,An 等 可 以 是 一个简单的语句,也可以 又是一个基本结构。例 如,图6是一个顺序结构, 它由两个操作顺序组成 。虚线框内是一个当型 循环结构,可以用”B”表示 ,因此图6就 可以理解为 图1所示的顺序结构。
开始 开流水灯
延时1秒
关流水灯
延时1秒
开流水灯
死循环
主讲人:尹延辉
版权:力天电子
www.LT430.com
新语新知 ——逻辑运算与位运算
关系运算符
关系运算是逻辑运算中比较简单的一种。所谓“关系运算”实际上是“比较运算 ”。将两个值进行比较,判断其比较的结果是否符合给定的条件。例如,a>3是 一个关系表达式,大于号(>)是一个关系运算符,如果a的值为5,则满足给定的 “a>3”条件,因此关系表达式的值为“真”(即“条件满足”);如果a的值为2 ,不满足“a>3”条件,则称关系表达式的值为“假”。 C语言提供6种关系运算符: 优先级相同 (高): <(小于) 算术运算符 高 <=(小于或等于) >(大于) 关系运算符 >=(大于或等于) 优先级相同 (低): 赋值运算符 低 == (等于) !=(不等于)