计算机二级C++四.ppt

上传人:za****8 文档编号:17067215 上传时间:2020-11-07 格式:PPT 页数:45 大小:612.50KB
收藏 版权申诉 举报 下载
计算机二级C++四.ppt_第1页
第1页 / 共45页
计算机二级C++四.ppt_第2页
第2页 / 共45页
计算机二级C++四.ppt_第3页
第3页 / 共45页
资源描述:

《计算机二级C++四.ppt》由会员分享,可在线阅读,更多相关《计算机二级C++四.ppt(45页珍藏版)》请在装配图网上搜索。

1、第四章 选择结构 回顾: 1、输入的命令是什么? 2、输出的命令是什么? 3、输出一个如下结果:例:已知 a=3.1415927;保 留 3位小数,前面带 2空格的。 printf(%7.3f ,a); 4、 scanf在输入 数据 的时候必须用间隔符(空格、 回车, Tab)隔开 目标 熟练使用关系运算符 熟练使用逻辑运算符 熟练使用 if 结构 熟练使用嵌套 if 结构 熟练使用 switch 结构 理解条件运算符的用法 4.1关系运算和逻辑运算 一、 C语言中的逻辑值 语言中规定: ( 1)用 0、 1 表示逻辑假和真值;语言没有专门的逻辑值,而是用来表示“真”, 用表示“假”。 ( 2

2、)任何基本类型的值都可作为逻辑值使用。所有非 0的值被当作“真”使用,而 0值被 当作“假”使用 二、关系运算符和关系表达式 1.C语言的关系运算符共种: (大于) = (大于等于) (小于) (num3 num4) num=40; num/10 != 2 gender = m 真 假 = 如果 gender = f 如果 m 三、逻辑运算符和逻辑表达式 1) C语言提供了三种逻辑运算符,分别是: b=4;c=4;d=6 ( ab)b=4;c=4;d=6 ( ab)|(cb) |(cd) (ad) (ab) |(cd) 逻辑“非”运算符 ! 表达式 结果 1 0 0 1 天气 NOT 阴天 真

3、 假 带伞 操作 不带伞 逻辑“非”运算符 ! !(真)的值为 0 !(假)的值为 1 !(非零)的值 0 !(零)的值为 1 例如: a=2;b=4;c=0 !(ab) !(ab) !(a) !(0) 逻辑运算符总结 所有学科 及格 考勤率达到 75% 则 y=a|b+; 4.2条件结构 条件结构就是需要根据条件进行判断,然 后执行不同的操作 一、简单 if 语句的一般形式为: if () 说明: 必须是一条语句,若是 多条,用花括号括起来 如果条件为真, if 语句执行一个语句或一组语句; 如果条件为假,则执行 if 语句后面的语句(如果有)。 二、 if-else 语句的一般形式为: (

4、if-else必须成对出现 ) if () else 如果条件为真,执行 if 后面的一个语句或一组语句; 如果条件为假,则执行 else 后面的语句。 三、 if语句的执行过程 首先判定 if后面圆括号中表达式的值。如果 为真,则执行其后的 if子句,然后执行 if语 句后的下一条语句;若果表达式的值为假, 则跳过 if子句,直接执行 if语句的下一条语 句 例题 4.1:输入两个数,分别放入 x和 y中,若两数不相等,则输出大数; 若相等,则输出字符串 x=y和 x的值 #include void main() int x,y; printf(“Enter x scanf(“%d%d”,

5、printf(“x,y:%d%dn”,x,y); if(xy)printf(“x=%dn”,x); if(yx)printf(“y=%dn”,y); if(x=y)printf(“x=y %d:n ,x); 例 4.2 main() int a,b,c,t; printf(“input a,b,c”): scanf(“%d%d%d”, printf(“a=%d,b=%d,c=%dn”,a,b,c); if(ab) t=a;a=b;b=t; if(ac) t=a; a=c; c=t; if(bc) t=b; b=c; c=t; printf(“%d,%d,%dn”,a,b,c); 例 输入两个值

6、给变量 a、 b,然后输 出比较大的数 main() int a,b,max; scanf(“%d%d”, max=ab?a:b; printf(“max=%d, max); #include void main() int num; printf(n请输入一个整数 : ); scanf (%d, if(num % 2) = 0) printf(%d 是一个偶数 。 n,num); else printf(%d 是一个奇数 。 n,num); if-else语句的示例 内存 num 57 请输入一个整数: 57 57 是一个奇数。 问题描述: 判定给定的年份是否为闰年。 提示:闰年的判定规则为

7、:能被 4 整除但不能被 100 整除的年份,或能被 400 整除的年份。 #include void main() int year; printf(n 请输入年份 : ); scanf(%d, if(year % 4 =0 else printf(n %d 年不是闰年 n , year); 综合示例 1 请输入年份: 2005 2005 年不是闰年 由于 if和 else子句中可以是任意合法的 C语句,因此自然也 可以是 if语句,称此为嵌套的 if语句。 4.2.2嵌套的 if语句 1.if子句中嵌套具有 else子句的 if语句 if(表达式 1) if(表达式 2) 语句 1 els

8、e 语句 2 else 语句 3 2.在 if子句中嵌套不含 else子句的 if语句 if(表达式 1) if(表达式 2) 语句 1 else 语句 2 if (x 0) if (y 1) z = 1; else /*这个 else 部分属于哪个 if? */ z = 2; C语言规定,每个 else 部分总属于前面最近的那 个缺少对应的 else 部分的 if 语句。 提倡使用大括号括起来以避免看起来有二义性。 3.在 else子句中嵌套 if语句 if(表达式 1)语句 1 else if(表达式 2) 语句 2 else 语句 3 或写成 if(表达式 1)语句 1 else if(

9、表达式 2) 语句 2 else 语句 3 例题 4.5 编写程序,根据输入的学生成绩给出相应的等级,大于或等于 90分以上的等级为 A, 60分以下的等级为 E,其余每 10分为一个等级。 程序如下: #include main() int g; printf(Enter g:);scanf(%d, printf(g=%d:,g); if(g=90)printf(An); else if (g =80)printf(Bn); else if (g =70)printf(Cn); else if (g =60)printf(Dn); else printf(En); #include main

10、() int g; printf(Enter g:);scanf(%d, printf(g=%d:,g); if(g=90)printf(An); if (g=80)printf(Bn); if (9=70)printf(Cn); if (g=60)printf(Dn); if(g100) value=50; else value=100; value = num 100 ? 50 : 100; (1) (0) 条件表达式 使用 “ if-else”的等同代码 假设 num = 200 value = num 100 ; ? 50 : 100 200 = 50 条件运算符示例 问题描述: 个人

11、所得税收取规定:工资大于 1000元的部分将 扣除 5的个人所得税。小于 1000元的部分不扣 除个人所得税。要求用户输入基本工资,计算税 后工资。 #include void main() double sal; double rate; printf(n 请输入基本工资 : ); scanf(%lf, rate= (sal=1000) ? 0 : 0.05; sal=sal-(sal-1000)*rate; printf(n 税后工资为 : %7.2f n,sal); 请输入基本工资: 1500 税后工资为: 1475.00 运用一次 if或 if-else,只有两种选择。若是多重选择,

12、需要多次嵌套,程序复杂,此时引入 switch语句。 例题 4.5 #include main() int g; printf(Enter g:);scanf(%d, printf(g=%d:,g); if(g=90)printf(An); else if (g =80)printf(Bn); else if (g =70)printf(Cn); else if (g =60)printf(Dn); else printf(En); switch 结构 3-1 printf(这是迈克尔,身高 180cm,加利福 尼亚第 12 大街 ” ); printf(这是丹尼尔,身高 193cm,现居住

13、地不明, 1998 年 12 月 12 日在佛罗里达 被捕 ” ); printf(这是吉姆,身高 175cm, 墨西哥州海鸥路弗罗拉公寓,于 2003 年 11 月 1 日在新泽西因抢银行被捕 ” ); printf(未发现匹配项。对不起! ); 停止搜索 停止搜索 停止搜索 停止搜索 警 察 记 录 嫌疑犯照片 不是 这是吉姆,身高 175cm, 墨西哥州海鸥路弗罗拉公寓, 于 2003 年 11 月 1 日在新泽西因抢银行被捕 不是 是 switch-case 语句是多路判断语句 switch 语句计算条件表达式并对照多个常数 值进行检查 switch 结构 3-2 switch (表达

14、式 ) case 常量 1: 语句 ; break; case 常量 2: 语句 ; break; default: 语句 ; 计算表达式的值 如果等于常量 1 如果等于常量 2 如果没有找到匹配的值 switch 结构 3-3 在使用 switch结构时应注意以下几点: 在 case后的各常量表达式的值不能相同,否则 会出现错误; case和常量表达式之间一定要有空格。例如 case 0: 各 case和 default子句的先后顺序可以变动,而 不会影响程序执行结果; default子句可以省略; 遇到 break则跳出整个循环,没有继续往下执行。 1、用 switch语句改写例题 4.5

15、 程序如下: (演示:没有 break) #include main() int g; printf(“Enter g:”);scanf(“%d”, printf(“g=%d:”,g); switch(g/10) case 10: case 9:printf(“An”); case 8:printf(“Bn”); case 7: printf(“Cn”); case 6:printf(“Dn”); default:printf(“En”); 2、用 switch语句改写例题 4.5 程序如下: (演示:带有 break) #include main() int g; printf(“Enter

16、 g:”);scanf(“%d”, printf(“g=%d:”,g); switch(g/10) case10: case9:printf(“An”);break; case8:printf(“Bn”); break; case7: printf(“Cn”); break; case6:printf(“Dn”); break; default:printf(“En”); switch 结构示例 问题描述: 要求用户输入一个字符值并检查它是否为元音字 母。 char in_char; printf(n 请输入一个小写字母 : ); scanf(%c, switch(in_char) case

17、a: printf(n 您输入的是元音字母 an); break; case e: printf(n 您输入的是元音字母 en); break; case i: printf(n 您输入的是元音字母 in); break; case o: printf(n 您输入的是元音字母 on); break; case u: printf(n 您输入的是元音字母 un); break; default: printf(n 您输入的不是元音字母 n); 内存 in_char e 请输入一个小写字母: e 您输入的是元音字母 e 多重 if结构和 switch结构都可以用来实现多路分支 多重 if结构用来实

18、现两路、三路分支比较方便,而 switch结构实现三路以上分支比较方便 在使用 switch结构时,应注意分支条件要求是整 型表达式,而且 case语句后面必须是常量表达式 有些问题只能使用多重 if结构来实现,例如要判断 一个值是否处在某个区间的情况 比较多重 if 和 switch 结构 总 结 多重 if结构就是在主 if块的 else部分中还包含其他 if 块 嵌套 if结构是在主 if块中还包含另一个 if 语句 C语言规定,嵌套 if结构中每个 else部分总是属于 前面最近的那个缺少对应的 else部分的 if语句 switch结构也可以用于多分支选择。用于分支条 件是整型表达式,而且判断该整型表达式的值是 否等于某些值(可以罗列的),然后根据不同的 情况,执行不同的操作 条件运算符是 ifelse 语句的另一种表现形式 4.5语句标号和 goto语句 一、语句标号 在 C语言中,标号就是任意合法的标识符,当在标识符后面加一个冒号, 就构成了一个语句标号。例如: flag:或者 stop: 标号的作用,用于 goto语句的转向目标;例如: goto stop; stop: printf(“ ENDn);( C语言中任何语句前都可以加上语句标号) 二、 goto语句 goto语句称为无条件转向语句,表示如下: goto 语句标号; (对于初学者尽量不用)

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!