




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
顺序结构、分支结构(选择)、循环 结构是C语言程序的基本结构,第二章 C语言程序的基本结构,2.1 分支结构 2.2 关系运算和逻辑运算 2.3 循环结构 2.4 break语句和continue语句,第二章 C语言程序的基本结构,2.1 分支结构,为什么需要分支结构 顺序结构只能解决一些简单的问题, 遇到需要进行条件判断的问题,就必须采用分支结构来处理。 例: 个人所得税的计算,求三角形的面积(如果三个数不构成三角形怎么办?),2.2 关系运算,关系运算符及其优先级 关系表达式,关系运算符及其优先级,C语言提供了6种关系运算符,它们是:,=,=,!=。 前四种运算符的优先级相同且高于后两种,但整个关系运算符的优先级低于算术运算符,而高于赋值运算符。如:ab-c;a=b=c;a=b!=c。 关系运算符的结合性是自左向右的;如果参与关系运算的两个数据类型不一样,自动进行类型转换。如:a=60首先将a转换成ASCII码97再与60比较。,关系表达式,用关系运算符把两个表达式连接起来的式子叫关系表达式。 其中的表达式可以是算术表达式、赋值表达式、字符表达式、逻辑表达式或关系表达式。 关系表达式的结果只能是1或0,当关系成立时即为“真”,表达式的值为整数1;否则为“假”,取值整数0。 例如:假设a=3,b=2,c=1,则a+b=b+c相当于5=3,该关系表达式的值为1;(ab)bc;则 f 值为?,2.2逻辑运算,逻辑运算符及其优先级 逻辑表达式,逻辑运算符及其优先级,C语言提供了3种逻辑运算符&(逻辑与)、|(逻辑或)、!(逻辑非)。其中&和|是双目运算符,!是单目运算符。 逻辑运算的功能是: a&b 只有a、b都为真时,结果才为真,取值1,否则 为假,取值0。 a|b 只有a、b都为假时,结果才为假,取值0,否则 为真,取值1。 !a a为真, !a 则为假,取值0; a为假, !a 为真,取值1。,表1.1 逻辑运算真值表,逻辑运算符优先级从高到底如下: !(非)算术运算符关系运算符&和|赋值运算符 如下表达式:a=1|!b,逻辑表达式,用逻辑运算符将表达式连接起来的式子叫逻辑表达式。 逻辑表达式的结果只能是1或0,即真或假。逻辑表达式成立则为1,否则为0。C语言规定“0”代表假,“非0”代表真。如:a=100,b=15,则!a值为0,a&b为1。 逻辑表达式的运算量可以是任何类型的数据。如:b|c,值为1。注意逻辑表达式中各种运算符的优先级,如: 3 8 & 2 | 5 4 - ! 0 运算过程 逻辑运算“短路”: (1)两个运算量做&,只要一个为0,不必计算另一个,该表达式为0;(2)两个运算量做|,只要一个为1,则表达式为1。,3 8 & 2 | 5 4 - ! 0 0 1 3 0 0 0,2.1 分支结构,1、单分支结构,if (表达式) 语句序列,例: x=1; y=2; if (xy) t=x;x=y;y=t; ,2、双分支结构,if (表达式) 语句序列1 else 语句序列2,反首页,例: 1. if (ab) x=a; else x=b;,2. if (x=0) printf(“%.3fn“, x); else printf(“%.3fn“, -x);,3、多分支结构(if语句嵌套),if (表达式1) 语句1 else if (表达式2) 语句2 else if (表达式3) 语句3 else if (表达式n) 语句n else 语句n+1,例:分段函数,if (x1) y=x; else if (x10) y=2*x-1; else y=3*x+5;,关于if语句的说明:,1、表达式一般为关系表达式或逻辑表达式。但在C语言中它也可以是任意的数值表达式。,if (3) n=1;,if (a) printf(“%d“, a);,if (n=3-3) x=1; else x=-1;,2、每个语句序列可以是一个语句也可以是若干个语句,但要用花括号括起来构成复合语句。,if (ab) t=a; a=b; b=t; ,if (a+bc ,3、表达式后面不能有任何标点符号!每个语句都要以“;”结束,分号是语句的一部分。,4、else只能与if配对使用。仅else本身不能单独作为一个语句使用。,if (x5); y=x; else y=2*x-1;,if (x5) ; y=x; else y=2*x-1;,将出现语法错误,复合语句的花括号后不能再写分号。复合语句在语法上是一个整体,相当于一个语句。,例1、输入一个字符,并输出。其中有一个条件是如果该字符是小写的英文字母,则需把它转换成大写字母再输出。 #include void main() char ch; scanf(“%c”, ,如果条件满足后还想再输出该字母的前导字符和后继字符怎么做?,例2.2 输入3个数a,b,c,按由小到大的顺序输出。,#include void main( ) int a,b,c,t; scanf(“%d%d%d“, ,Ex4_3.c,二、if语句的嵌套,在if语句的原“语句”中又包含一个或多个if语句,1. if (表达式1) if (表达式2) 语句,2. if (表达式1) 语句1 else if (表达式2) 语句2,3. if (表达式件1) 语句1 else if (表达式2) 语句2 else 语句3,4. if (表达式1) if (表达式2) 语句1 else 语句2,二义性?,语言规定:else总是与它前面最近的且未曾配对的if配对。,if (表达式1) if (表达式2) 语句1 else 语句2 ,if (表达式1) if (表达式2) 语句1 else 语句2,例2.4 编程求解函数:,程序1: if (x0) y=-1; else if (x=0) y=0; else y=1;,程序2: if (x=0) if (x0) y=1; else y=0; else y=-1;,eg502.c,if (x0) y=1;,程序3: y=-1; if (x!=0) if (x0) y=1; else y=0;,改正程序3: y=-1; if (x!=0) if (x0) y=1; else y=0;,例如:,if (x=1,有时必须用 if 嵌套解决,例如:实验4中的第1题,if语句的嵌套要完全嵌套,if(表达式1) if(表达式1) else 语句序列; else 语句序列;,不可以是:,if(表达式1) if(表达式1) else 语句序列; else 语句序列;,if语句的使用格式简单,但要把实际生活中的问题转化有时不简单,小提示:,例如: a能被2整除; a是奇数; 是3的倍数;a是大写字母或小写字母等等;,上一次课程回顾,单分支if 的使用格式、执行流程 双分支if的使用格式、执行流程 if语句的嵌套 特别注意:=和=的区别 多条语句是整体时用 ,三、 switch(多分支)语句,switch语句是多分支选择结构。多分支选择结构可以用if 语句的嵌套来实现。,1、格式:,switch(表达式) case 常量表达式1: 语句1;break; case 常量表达式2: 语句2;break; case 常量表达式n: 语句n;break; default: 语句 n+1 ,2、功能: 先计算表达式的值,测试该值是否与某常量表达式的值相同 、若有相同者,流程转向其后面的语句执行 、若无,再看有没有default部分:若有default,则执行其后面的语句;若无default,则switch语句什么也不做,流程转向其后继语句。,说明:,1、switch后面括号内的表达式可以是整型,也可以是字符型 2、各个case后常量表达式的值必须互不相同; 3、各个case和default的出现次序不影响执行结果; 4、如果没有break语句执行完一个case后面的语句后,流程控制转移到下一个case继续执行,void main ( ) int x, y ; scanf(“%d“, ,5、case后常量表达式只起语句标号的作用,每个case之后通常都有一个break,使流程跳出switch语句;,Ex4_4.c,6、多个case可以共用一组执行语句;,case 6 : case 7 : printf(“Resetn“); break;,但不能写成:case 6,7: printf(“Resetn“); break;,7、switch语句可以嵌套;但有多层switch语句时,break只能退出本层的switch语句体;,例:用 switch 实现: 当score60时:输出不及格 当60=score80时:输出及格 当80=score90时:输出良 当90=score=100时:输出优,举例,1. 输入一个字符,如果是大写字母,转化成小写,如果是小写字母转化成大写,2.输入一个成绩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中级花艺师实操技能考核试题集及解析
- 抢救课件结束语
- 2025年压力校验仪表项目发展计划
- 2025年液晶平面显示器及其配套部件和材料项目建议书
- 2025年合同研究组织合作协议书
- 2025年二元酸二甲酯合作协议书
- 2025年社会养老保障服务项目建议书
- 吉林省延边朝鲜族自治州延边州2025-2026学年高三上学期9月期初考试数学试题(含答案)
- 河南省周口市郸城县实验中学2025-2026学年七年级上学期开学考试英语试题(含答案)
- 校史知识竞赛题库及答案
- 老挝药品注册管理办法
- 建设工程项目协同作业方案
- 鹿寨县城南水厂寨沙分厂建设项目环评报告
- 森林火灾应急处置
- GB/T 45972-2025装配式建筑用混凝土板材生产成套装备技术要求
- 变频及伺服应用技术(郭艳萍 钟立)全套教案课件
- Inventor教案打印完整
- 秋冬季安全知识培训
- 2024新译林版英语八年级上单词汉译英默写表(开学版)
- 电力营销稽查培训课件
- 绿色金融培训课件
评论
0/150
提交评论