




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、选择结构程序设计选择结构程序设计2主要内容nif语句nswitch语句和break语句3if 语句if语句的三种形式:n实现单分支选择结构的形式n实现双分支选择结构的形式n实现多分支选择的形式4if语句之单分支选择结构n一般形式:ifif(表达式)语句(表达式)语句n说明:当表达式的结果为非0时,执行后面的语句,否则不执行。n注意:若“语句”部分只能有一条C语句;若由多条C语句组成,则应加上,构成一个复合语句。表达式语句 0=0单分支选择结构流程图表达式真 假语句 NS流程图5#include void main() float a,b,c,t;scanf (%f%f%f,&a, &a
2、mp;b, &c);if (a b) t = a; a = b; b = t; /*a、b间的较小值存入间的较小值存入a*/if (a c) t = a; a = c; c = t; /*a、c间的较小值存入间的较小值存入a*/if (b c) t = b; b = c; c = t;printf(%5.2f,%5.2f,%5.2fn,a, b, c);将输入的三个数按照从小到大的顺序输出将输入的三个数按照从小到大的顺序输出6if语句之双分支选择结构n一般形式:一般形式:if(if(表达式表达式) ) 语句语句1 1else else 语句语句2 2n说明:说明:当表达式的值为非当表达
3、式的值为非0 0时,执行语句时,执行语句1 1,否则执行语句否则执行语句2 2。表达式表达式语句语句1语句语句2 0=0双分支选择结构流程图表达式真 假语句1 语句2NS流程图7显示输出从终端输入的两个整数中绝对值较大的#include void main() int x1, y1, x2, y2;scanf (%d,%d, &x1, &y1);if (x1 0)x2 = -x1;else x2 = x1;if (y1 y2)printf (%dn, x1);elseprintf (%dn, y1);运行情况:23,34348所谓“水仙花数”是指一个三位数,其各位数字立方和等于
4、该数本身。如153是一个水仙花数(153 = 13 + 53 + 33)。要求:输入一个三位整数,判断该数是否是“水仙花数”。9#include void main () int k, a, b, c;printf (“请输入一个三位整数:请输入一个三位整数:”);scanf (“%d”, &k);a = k / 100 % 10;b = k / 10 % 10;c = k % 10;if (k = a*a*a + b*b*b + c*c*c)printf (“%d是水仙花数。是水仙花数。n”, k);elseprintf (“%d不是水仙花数。不是水仙花数。n”, k);10if语句
5、 之多分支选择结构n一般形式:一般形式:ifif(表达式)语句(表达式)语句1 1else ifelse if(表达式)语句(表达式)语句2 2else ifelse if(表达式)语句(表达式)语句3 3else ifelse if(表达式)语句(表达式)语句n nelse else 语句语句n+1n+1n说明:各个表达式按顺序求值,如果某个表达说明:各个表达式按顺序求值,如果某个表达式的值为非式的值为非0 0,则执行与其相关的那条语句,则执行与其相关的那条语句,并由此结束整个并由此结束整个ifif语句。语句。11多分支选择结构流程图表达 式 1语句1表达 式 n表达 式 3表达 式 2语句
6、2语句3语句n 语句n+10000=0=0=0=012判断输入的字符是数字、大写字母、小写字母或其他字符。判断输入的字符是数字、大写字母、小写字母或其他字符。#include void main() char c;printf (Enter a character:);c = getchar();if (c = 0 & c = A & c = a & c 0,有两个不等实根:b2-4ac0计算虚部和实部输出两个不等的复根p+q i, p-q i输出两个不等的实根 x1,x2aacbbx2422aacbbx2412+abp2aacbq2)4(2真真真假假假16#inclu
7、de #include void main()float a,b,c,d,x1,x2,p,q;scanf(%f,%f,%f,&a,&b,&c);printf(The equation );if(fabs(a)=1e-6) /* a = 0 */printf(is not quadratic.n);else /* a != 0 */d=b*b-4*a*c;if(fabs(d)0) /* d 0 */x1=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);printf(has distinct real roots:%8.4f and %8.4f
8、n,x1,x2); /* d 0 */else /* d 0 */p=-b/(2*a);q=sqrt(-d)/(2*a);printf(has complex roots:n);printf(%8.4f+%8.4fin,p,q);printf(%8.4f-%8.4fin,p,q); /* d 0 */ /* a != 0 */18输入一个年份值,判断这一年是否为闰年。判断闰年的条件:能够被4整除并且不能被100整除,或者能够被400整除。19#include void main() int year, leap;scanf (%d, &year);if (year % 4 = 0) /
9、 /* * 被被4 4整除整除 * */ /if (year % 100 = 0) / /* * 被被100100整除整除 * */ / if (year % 400 = 0) / /* * 被被400400整除整除 * */ / leap = 1; else / /* * * * 被被400400整除整除 * * * */ / leap = 0;else / /* * * * 被被100100整除整除 * * * */ / leap = 1;else / /* * * * 被被4 4整除整除 * * * */ / leap = 0;if (leap) printf (%d is , year
10、);else printf (%d is not , year);printf (a leap year.n);20-1 -1 ( (x0)x0)(x0)值,输出值,输出y y值。值。算法:算法: 算法:算法:输入输入x x 输入输入x x若若x0,x0,则则y=-1 y=-1 若若x0,x0,x0,则则y=1 y=1 若若x=0,x=0,则则y=0y=0输出输出y y 若若x0,x0,则则y=1y=1 输出输出y y2122#includevoid main () int x, y;scanf (%d, &x);程序段程序段printf (x=%d, y=%dn, x, y);23程
11、序程序1if (x 0)y = 1;elsey = 0;上例中的程序段有四个,请判断哪个是正确的?程序程序4y = 0;if ( x = 0)if (x 0)y = 1;elsey = -1;程序程序2if (x = 0)if (x 0)y = 1;elsey = 0;elsey = -1;24条件运算符格式: 表达式 ? 表达式 : 表达式 功能: 判断表达式1的值,如果成立就执行表 达式2,否则就执行表达式3使用场合:若在if语句中,当被判别的表达式的 值为“真”或“假” 时,都执行一个赋值语 句且向同一个变量赋值时,可以用一个 条件运算符来处理。 25例:if (a b) max = a
12、;else max = b;当ab时将a的值赋给max,当ab时将b的值赋给max,可以看到无论ab是否满足,都是向同一个变量赋值。 可以用下面的条件运算符来处理: ()?;26说明n条件运算符的执行顺序条件运算符的执行顺序:先求解表达式,若为:先求解表达式,若为非(真),则求解表达式,此时表达式的非(真),则求解表达式,此时表达式的值就作为整个条件表达式的值;若表达式的值值就作为整个条件表达式的值;若表达式的值为(假),则求解表达式,表达为(假),则求解表达式,表达 式的值就式的值就是整个条件表达式的值。是整个条件表达式的值。 n条件运算符优先级高于赋值运算符条件运算符优先级高于赋值运算符
13、,低于关系运,低于关系运算符和算术运算符。算符和算术运算符。 n条件运算符的结合方向为条件运算符的结合方向为“自右至左自右至左”。 n“表达式表达式2”和和“表达式表达式3”不仅可以是数值表达式,不仅可以是数值表达式,还可以是赋值表达式或函数表达式。还可以是赋值表达式或函数表达式。n条件表达式中,表达式的类型可以与表达式条件表达式中,表达式的类型可以与表达式和表达式的类型不同。和表达式的类型不同。 27输入一个字母,将大写字母换成小写字母,小写字母换成大写字母,并输出。#include void main () char ch;scanf (%c, &ch);ch = (ch=A &a
14、mp; ch=A & ch=Z)ch += 32;elsech -= 32;28switchswitch语句和语句和breakbreak语句语句nswitch switch 语句:语句:是专门用于实现多分支选择的语句。nbreakbreak语句:语句:终止switch语句的执行。nswitchswitch语句的语句的一般形式:一般形式:switch(表达式)case 常量表达式 1: :语句序列 1case 常量表达式 2:语句序列 2 case 常量表达式 n:语句序列 ndefault:语句序列 n+129char bus_type;switch(bus_type) case A:
15、printf(RMB60.00);break; /*大客车大客车*/case B:printf(RMB50.00);break; /*大货车大货车*/case C:printf(RMB40.00);break; /*面包车面包车*/case D:printf(RMB20.00);break; /*小轿车小轿车*/default: printf(RMB10.00); /*其他车辆其他车辆*/公路收费站的车辆收费问题。公路收费站的车辆收费问题。说明:变量说明:变量“bus_type”用来表示汽车的类型。用来表示汽车的类型。30说明:说明:n表达式的值应为与整型数据兼容的类型:整型、表达式的值应为与
16、整型数据兼容的类型:整型、字符型、枚举型;字符型、枚举型;ncasecase语句中的语句中的“常量表达式常量表达式”和和switchswitch后面的后面的“表达式表达式”的结果值的类型应该一致;的结果值的类型应该一致;n每一个每一个casecase的常量表达式的值必须互不相同,的常量表达式的值必须互不相同,否则出现矛盾现象;否则出现矛盾现象;n各个各个casecase的出现次序的出现次序通常通常不影响执行结果;不影响执行结果;n执行完一个执行完一个casecase后面的语句后,流程控制转移后面的语句后,流程控制转移下一个下一个casecase继续执行,除非有继续执行,除非有breakbrea
17、k语句跳出语句跳出switchswitch;ndefault default 语句为选择项,可有可无。另外,语句为选择项,可有可无。另外,default default 后面可以不加后面可以不加breakbreak语句。语句。31根据考试成绩的等级打印出百分制分数段:#include void main() char grade;grade = getchar ();switch (grade) case a: printf(85100n);break;case b: printf(7084n);break;case c: printf(6069n);break;case d: printf(60n);break;default: printf(error!n);程序执行结果:程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子产品固定塑料容器企业制定与实施新质生产力项目商业计划书
- 高端水疗设备租赁服务行业跨境出海项目商业计划书
- 电子屏蔽涂料行业跨境出海项目商业计划书
- 乡村垂钓园行业跨境出海项目商业计划书
- 数字资产安全保险行业深度调研及发展项目商业计划书
- 出口退税融资担保服务行业深度调研及发展项目商业计划书
- 儿童游乐城企业制定与实施新质生产力项目商业计划书
- 冲浪运动主题酒店企业制定与实施新质生产力项目商业计划书
- 高精度自适应光学望远镜行业深度调研及发展项目商业计划书
- 平安险AI应用企业制定与实施新质生产力项目商业计划书
- 2025云南中考:物理必背知识点
- 2025年江苏省南京市玄武区中考一模历史试卷
- 2025年全国保密教育线上培训考试试题库及参考答案(完整版)及答案详解1套
- 西师大版小学五年级数学(下)期末测试题(带答案)
- Unit8SectionA1a2d课件人教版八年级英语下册
- 《社区多元主体协同治理研究的国内外文献综述》6700字
- 铝电解基础知识培训教材
- 2025年大学生人文知识竞赛题库及答案(完整版)
- 上诉状的课件
- 【合同范文】传媒公司合作合同6篇
- 乳腺癌防治知识手册运动与健康生活方式建议
评论
0/150
提交评论