




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1,第2章(1) 选择结构程序设计,if 语句 switch 语句 关系运算符和关系表达式 逻辑运算符和逻辑表达式,学习方法:多看课本,分析例题,模仿例题,自己编程上机实验,2,if 语句,一、if语句的三种形式 1、单分支形式,if (表达式) 语句;,例: x=1; y=2; if (xy) printf(%dn, x); printf(%dn, y);,3,2、双分支形式,if (表达式) 语句1; else 语句2;,例: if (ab) x=a; else x=b;,if (x=0) printf(%.3fn, x); else printf(%.3fn, -x);,4,3、多分支形
2、式,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;,5,关于if语句的说明:,1、表达式一般为关系表达式或逻辑表达式。但在C语言中它也可以是任意的数值表达式。,if (3) n=1;,if (a) printf(%d, a);,if (n=3-3) x=1; else x=-1;,2、表达式后面不能有任何标点符号!每个语句都要以“;”结束,分号是语句的一部分
3、。,3、else只能与if配对使用。仅else本身不能单独作为一个语句使用。,if (x5); y=x; else y=2*x-1;,if (x5) ; y=x; else y=2*x-1;,将出现语法错误,6,4、每个语句序列可以是一个语句也可以是若干个语句,但要用花括号括起来构成复合语句。,if (ab) t=a; a=b; b=t; ,if (a+bc ,复合语句的花括号后不能再写分号。复合语句在语法上是一个整体,相当于一个语句。,7,例1:输入3个数a,b,c,按由小到大的顺序输出。,#include void main( ) int a,b,c,t; printf(please in
4、put three numbers:); scanf(%d%d%d, ,8,例2:设有分段函数: -e2x+1+3 (x-2) y= 2x-1 (-2x3) 3log10(3x+5)-11 (x3) 编写一个程序,输入x,输出y值。,#include #include /* 数学函数头文件 */ void main( ) double x,y; printf(Input x:); scanf(%lf, ,9,二、if语句的嵌套,在if语句的原“语句”中又包含一个或多个if语句,1. if (表达式1) if (表达式2) 语句,2. if (表达式1) 语句1 else if (表达式2) 语
5、句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,10,例: 求一元二次方程ax2+bx+c=0的根,a,b,c由键盘输入。,分析:对于一元二次方程有以下几种可能: a=0,不是二次方程; b2-4ac=0,有两个相等的实根; b2-4ac0,有两个不等的实根; b2-4ac0
6、,有两个共轭复数根。,11,#include #include /* 数学函数头文件 */ void main( ) double a,b,c; double disc,x1,x2,rpart,ipart; printf(Input a,b,c:); scanf(%lf%lf%lf, /* 第一个else结束 */ ,12,条件运算符,条件运算符“?:”是if语句的缩写形式。 条件表达式的一般形式为: 表达式1 ?表达式2 :表达式3 其功能是:先计算“表达式1”的值,若为真(非0)则取“表达式2”的值为整个条件表达式的值;若“表达式1”的值为假(0),则取“表达式3”的值为整个条件表达式的值
7、。,13,例如: max=ab?a:b 将该式用if语句表示,即: if (ab) max=a; else max=b; 说明: 条件表达式不能完全取代if 语句,只有在 if 语句中内嵌语句为赋值语句、且两个分支都给同一个变量赋值时才能代替if语句。 条件运算符的优先级高于赋值运算符,低于关系运算符和算术运算符。 例如: max=ab?a:b 等价于: max=(ab)?a:b),14, 条件运算符的结合性为“自右向左”。 例如:ab?a:cd?c:d 等价于: (ab)?a:(cd)?c:d) 表达式2和表达式3不仅可以是数值表达式,还可以是赋值表达式或函数表达式。 例如: ab?(a=1
8、00):(b=100) ab?prinf(%dn,a):prinf(%dn,b) 表达式1、表达式2和表达式3的类型都可以不同。条件表达式值的类型是表达式2和表达式3中类型较高的类型。,21 ? 1 : 1.5 1 ? a : 10 值为1.0 值为97,15,例:输入一个字符,如果是大写字母,转换为小写,如果不是则不转换。输出最后得到的字符。 #include void main( ) char ch; scanf(%c, 表达式ch= (ch=Abreak case 常量表达式2: 语句2;break case 常量表达式n: 语句n;break default: 语句 n+1,2、功能:
9、 先计算表达式的值,测试该值是否与某常量表达式的值相同 、若有相同者,流程转向其后面的语句执行 、若无,再看有没有default部分:若有default,则执行其后面的语句;若无default,则switch语句什么也不做,流程转向其后继语句。,17,说明:,1、switch后面括号内的表达式只能是整型、字符型或枚举型表达式。 2、各个case后常量表达式的值必须互不相同; 3、各个case和default的出现次序不影响执行结果; 4、如果没有break语句执行完一个case后面的语句后,流程控制转移到下一个case继续执行.,void main ( ) int x, y ; scanf(%
10、d, ,5、case后常量表达式只起语句标号的作用,每个case之后通常都有一个break,使流程跳出switch语句;,18,6、多个case可以共用一组执行语句;,case 6 : case 7 : printf(Resetn); break;,但不能写成:case 6,7: printf(Resetn); break;,7、switch语句可以嵌套;但有多层switch语句时,break只能退出本层的switch语句体;,19,举例,1.输入一个字符,如果是大写字母,转化成小写,如果是小写字母转化成大写,void main() char ch; scanf(“%c”, ,20,2. 在学
11、生成绩管理中,成绩经常要在百分制与等级制之间进行转换。90分以上为A等,80-89为B等,70-79为C等,60-69分为D等,其余为E等。编制程序,根据输入的百分制,输出对应的等级。,void main() int score; printf(Input score of student:); scanf(%d, ,21,void main( ) int score,temp; printf(Input score of student:); scanf(%d, ,22,关系运算符和关系表达式,一、关系运算符 种: 、=、=、!= 说明: 1、优先级:前4种相同,后2种也相同,但前4种高于后
12、两种;所有关系运算符的优先级都低于算术运算符而高于赋值运算符。 2、结合性:自左至右,ab-c,a(b-c),a=b=c,a=(b=c),a=b!=c,a=(b!=c),23,注意: 、字符数据按其ASCII码值进行比较; 、应避免两个实数作=或!=的比较,二、关系表达式 用关系运算符将两个表达式连接起来的式子。 其中被连接的表达式可以是算术表达式、关系表达式、逻辑表达式、赋值表达式或字符表达式。 如:a+bc+d、xy=c+d、aA,关系表达式的值只能是1或0,当表达式成立即为“真”时,值为整数1;否则为“假”,值为整数0。因此可看作整型表达式。,假设a=3, b=2, c=1,求以下关系表达式的值: ab (ab)c b+cbc,24,逻辑运算符和逻辑表达式,一、逻辑运算符 种: (! + -)负类指针有地址, (-, 类型转换, *, ( 从右至左)逗号不是停顿符, ( , )顺序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高等教育自学考试当代中国政治制度试题(附答案)
- 2025年反诈知识竞赛考试题库及参考答案
- 第三单元含硅矿物与信息材料
- 知道智慧树锻炼心理学满分测试答案
- 2025年证券登记、结算机构服务项目发展计划
- 发动机曲轴箱通风系统的设计与性能分析考核试卷
- 保健品企业品牌声誉风险管理考核试卷
- 糖业教育与人才培养模式研究考核试卷
- 艺术家参与赛事活动的后勤保障考核试卷
- 纺织品耐磨损等级评定方法考核试卷
- GB/T 30099-2025实验室离心机
- 实验室留样管理制度
- 2025-2030中国阻焊油墨行业运行现状与场竞争格局分析报告
- 建筑桩基技术规范 JGJ 94-2008知识培训
- 公司电商财务管理制度
- 2025年中国铷铯及其化合物行业市场前景预测及投资价值评估分析报告
- 医院口腔科管理制度
- T/CIIA 014-2022智慧工地总体规范
- T/CATCM 001.1-2017保健类眼贴第1部分:通用要求
- 温泉游泳馆免责协议书
- 移交模具协议书
评论
0/150
提交评论