信息学奥赛课课通(C++)第3单元-电子课件.ppt

上传人(卖家):三亚风情 文档编号:3189795 上传时间:2022-07-31 格式:PPT 页数:75 大小:689.50KB
下载 相关 举报
信息学奥赛课课通(C++)第3单元-电子课件.ppt_第1页
第1页 / 共75页
信息学奥赛课课通(C++)第3单元-电子课件.ppt_第2页
第2页 / 共75页
信息学奥赛课课通(C++)第3单元-电子课件.ppt_第3页
第3页 / 共75页
信息学奥赛课课通(C++)第3单元-电子课件.ppt_第4页
第4页 / 共75页
信息学奥赛课课通(C++)第3单元-电子课件.ppt_第5页
第5页 / 共75页
点击查看更多>>
资源描述

1、 高等教育出版社高等教育出版社 第第 3 单元单元 分支结构程序设计分支结构程序设计作者:林厚从作者:林厚从信息学奥赛课课通(信息学奥赛课课通(C+C+)高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第1课课 关系运算符关系运算符学习目标学习目标1.熟练掌握熟练掌握 C+中的关系运算符。中的关系运算符。2.熟知关系运算符和数学运算符的优先级。熟知关系运算符和数学运算符的优先级。3.学会正确书写关系表达式。学会正确书写关系表达式。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)1.关系运算符关系运算符C+提供了六种关系运算符:提供了六种关系运算符:

2、(大于)、(大于)、=(大于或等于)、(大于或等于)、y+z x+y y+z (2 2)x z x =y x=x=y (4 4)(x yx (y=zy=z)高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。/p3-1-2#includeusing namespace std;int main()int n1=4,n2=5,n3;n3=(n1 n2);cout n3 “,”;n3=(n1 n2);cout n3 “,”;n3=(n1=4);cout n3 “,”;n3=(n1=5);cout n3 endl

3、;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。/p3-1-3#includeusing namespace std;int main()char x,y;x=m ;y=n ;int n;n=x y;cout n endl;n=x=y-1;cout n 3)+(y-x=1);cout n endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 2 2

4、课课 逻辑运算符逻辑运算符学习目标学习目标1.熟练掌握熟练掌握 C+中的逻辑运算符。中的逻辑运算符。2.熟知逻辑运算符的优先级。熟知逻辑运算符的优先级。3.学会正确书写逻辑表达式。学会正确书写逻辑表达式。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)逻辑运算符逻辑运算符C+提供了提供了&(逻辑与)、(逻辑与)、|(逻辑或)和!(逻辑(逻辑或)和!(逻辑非)三种逻辑运算符。其中,非)三种逻辑运算符。其中,&和和|是双目运算符,而!是双目运算符,而!是单目运算符。是单目运算符。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)逻辑运算符逻辑运算符高等教育

5、出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)1、逻辑运算符的优先级问题、逻辑运算符的优先级问题高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)(1)一个一个 0100 之间(不包括之间(不包括 0 和和 100)的数)的数 a。(2)x 大于大于 y 且且 x 大于大于 z。(3)x 是英文字母。是英文字母。例例1 1、写出下列语义的、写出下列语义的 C+C+表达式。表达式。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)整型数据在参与逻辑运算时,根据其值是整型数据在参与逻辑运算时,根据其值是 0 或非或非 0,分,分别当作逻辑值别

6、当作逻辑值“假假”或或“真真”进行处理。进行处理。例例2、假设变量定义为、假设变量定义为“int a=0,b=0,c=1,d=1;”,请写出表达式请写出表达式 a&b|c&d的结果。的结果。2、整型数据也可以参与逻辑运算、整型数据也可以参与逻辑运算高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-2-3#includeusing namespace std;int main()int a,b,c,d;a=2;b=3;c=0;d=(a+b|c);cout d endl;return 0;例例3、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。高等教育出版

7、社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例 4、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。/p3-2-4#includeusing namespace std;int main()int a,b,c,d;a=2;b=3;c=0;d=(a b)&(c=4);cout d ”c endl;return 0;3、逻辑表达式是、逻辑表达式是“短路计算短路计算”在逻辑表达式的计算过程中,一旦能够确定整个表达式在逻辑表达式的计算过程中,一旦能够确定整个表达式的值,就会立刻停止计算。的值,就会立刻停止计算。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通

8、(C+)【问题分析问题分析】判断判断“闰年闰年”的口诀是:四年一闰,百年不闰,四百的口诀是:四年一闰,百年不闰,四百年又闰。年又闰。2016 年是闰年,因为年是闰年,因为 2016 能被能被 4整除;整除;2100 年不年不是闰年,因为它能被是闰年,因为它能被 100 整除;但整除;但 2000 年是闰年,因为它年是闰年,因为它能被能被 400 整除。整除。所以,判断某一年份是否是闰年有两种情况:一种是能所以,判断某一年份是否是闰年有两种情况:一种是能被被 400 整除;另一种是能被整除;另一种是能被 4 整除但不能被整除但不能被 100 整除。所整除。所以,可以表示成:以,可以表示成:(x%

9、400=0)|(x%4=0)&(x%100!=0)例例5、写出判断某一年份、写出判断某一年份 x 是否是是否是“闰年闰年”的表达的表达式。式。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 3 课课 if 语句语句学习目标学习目标1.掌握掌握 if 语句的两种格式。语句的两种格式。2.理解分支结构和复合语句。理解分支结构和复合语句。3.熟练应用熟练应用 if 语句解决一些实际问题。语句解决一些实际问题。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)1.if

10、语句语句if 语句有两种格式:语句有两种格式:第一种格式为:第一种格式为:if(表达式表达式)语句语句1;else语句语句2;第二种格式为:第二种格式为:if(表达式表达式)语句语句;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、旅游费用。、旅游费用。【问题描述问题描述】风华公司风华公司“南京一日游南京一日游”的收费标准为:的收费标准为:5 人以内(含人以内(含 5 人)人)按散客标准,每人按散客标准,每人 300 元;超过元;超过 5 人,按团体标准,每人人,按团体标准,每人 280 元。请根据输入的人数,输出其旅游费用。元。请根据输入的人数,输出其旅游费用。

11、【输入格式输入格式】一行一个正整数一行一个正整数 n,表示人数,表示人数,1n5000000。【输出格式输出格式】一行一个正整数,表示需要的总旅游费用。一行一个正整数,表示需要的总旅游费用。【输入样例输入样例】9【输出样例输出样例】2520高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】这是一个这是一个“选择性选择性”问题,根据人数问题,根据人数 n 来选择不同的收来选择不同的收费标准。条件就是费标准。条件就是 n5,如果成立,那么收费为,如果成立,那么收费为 n300;否;否则,收费为则,收费为 n280。/p3-3-1a#includeusing

12、namespace std;int main()int n;cin n;if(n=5)cout n*300 endl;else cout n*280 endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)或换成另一种形式:或换成另一种形式:/p3-3-1b#includeusing namespace std;int main()int n,ans;cin n;ans=n*300;if(n 5)ans=n*280;cout ans endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、三个数的大小比

13、较。、三个数的大小比较。【问题描述问题描述】输入三个整数输入三个整数 x、y 和和 z,判断是否满足,判断是否满足 x y z。若满足,则输出。若满足,则输出“YES”;否则,输出;否则,输出“NO”。【输入格式输入格式】一行三个整数一行三个整数 x、y 和和 z,int 范围以内。范围以内。【输出格式输出格式】一行一个单词,表示答案。一行一个单词,表示答案。【输入样例输入样例 1】3 6 7【输出样例输出样例 1】YES【输入样例输入样例 2】3 7 6【输出样例输出样例 2】NO高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】如果逻辑表达式如果逻辑

14、表达式“x=y&y=z”为真,则输出为真,则输出“YES”;否则,输出;否则,输出“NO”。/p3-3-2#includeusing namespace std;int main()int x,y,z;cin x y z;if(x=y&y=z)cout ”YES”endl;else cout ”NO”b”成立时,需要依成立时,需要依次执行完这次执行完这 3 条语句,这时就需要用花条语句,这时就需要用花括号括号“”将这将这 3 条语句括起来,这条语句括起来,这些括起来的语句组合称为些括起来的语句组合称为“复合语句复合语句”,流程图如右图。流程图如右图。高等教育出版社高等教育出版社信息学奥赛课课通

15、(信息学奥赛课课通(C+)/p3-3-3#includeusing namespace std;int main()int a,b,c;cin a b;if(a b)c=a;a=b;b=c;cout a ”b endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 4 课课 if 语句的嵌套语句的嵌套学习目标学习目标1.理解理解 if 语句嵌套的含义。语句嵌套的含义。2.熟练应用熟练应用 if 语句及其嵌套解决一些实际问题。语句及其嵌套解决一些实际问题。高等教育

16、出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)if 语句的嵌套语句的嵌套 在分支结构中经常会遇到这样的情况:如果条件在分支结构中经常会遇到这样的情况:如果条件1 1成成立,就去做立,就去做A A事情,否则去做事情,否则去做B B事情,但是,在做事情,但是,在做A A事情(事情(或者或者B B事情)时,还要根据条件事情)时,还要根据条件2 2是否成立,决定是做是否成立,决定是做A1A1(或者或者B1B1)这件子事情,还是去做)这件子事情,还是去做A2A2(或者(或者B2B2)这件子事情)这件子事情。在程序设计中,把这种情况称为分支结构的。在程序设计中,把这种情况称为分支结构的“嵌

17、套嵌套”,一般用来解决三种及以上的分支情况。一般用来解决三种及以上的分支情况。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题描述问题描述】输入三个整数输入三个整数 x、y、z,判断其是否满足,判断其是否满足 xyz。若满足。若满足,输出,输出“YES”;否则,输出;否则,输出“NO”。【输入格式输入格式】一行三个整数一行三个整数 x、y、z,int 范围以内。范围以内。【输出格式输出格式】一行一个单词,表示答案。一行一个单词,表示答案。【输入样例输入样例】3 6 7【输出样例输出样例】YES例例1、三个数的大小比较。、三个数的大小比较。高等教育出版社高等教育出版社

18、信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】前面已经介绍过用逻辑表达式前面已经介绍过用逻辑表达式“x=y&y=z”来表示来表示YES”的条件,本题也可以用的条件,本题也可以用 if语句的嵌套来解决,如图:语句的嵌套来解决,如图:高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-4-1#includeusing namespace std;int main()int x,y,z;cin x y z;if(x=y)if(y=z)cout ”YES”endl;else cout ”NO”endl;else cout ”NO”endl;return 0;高

19、等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)(1)分支结构可以嵌套很多层;)分支结构可以嵌套很多层;(2)if 与与 else 的配对关系;的配对关系;(3)编程要形成良好的代码风格;)编程要形成良好的代码风格;使用使用 if 语句的嵌套需注意的问题语句的嵌套需注意的问题高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-4-2a#includeusing namespace std;int main()int x=4,y=3,z=2;if(x=y)if(y=z)cout YES endl;elsecout NO endl;return 0;例

20、例2、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】程序不会输出任何结果。因为其中的程序不会输出任何结果。因为其中的else子句从书写格式上子句从书写格式上看,与外层看,与外层“if(x=y)”语句配对,但其实是与内层的语句配对,但其实是与内层的“if(y=z)”配对。而外层的配对。而外层的“if(x=y)”是不成立的,又没有是不成立的,又没有else子句,所以直接执行后面的子句,所以直接执行后面的“returne 0;”语句。语句。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛

21、课课通(C+)例例3、判断闰年。、判断闰年。【问题描述问题描述】输入某一年份输入某一年份 x,判断该年份是否是闰年。是则输出,判断该年份是否是闰年。是则输出“YES”,否则输,否则输出出“NO”。【输入格式输入格式】一行一个正整数一行一个正整数 x,int 范围以内。范围以内。【输出格式输出格式】一行一个单词,表示判断结果。一行一个单词,表示判断结果。【输入样例输入样例】2000【输出样例输出样例】YES高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】前面已经介绍过判断闰年的条件表达式。对于闰年的判断,也可以采用前面已经介绍过判断闰年的条件表达式。对于

22、闰年的判断,也可以采用嵌套的方法来实现。嵌套的方法来实现。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-4-3#includeusing namespace std;int main()int x;cin x;if(x%400=0)cout “YES”endl;else if(x%4=0)if(x%100!=0)cout “YES”endl;else cout “NO”endl;else cout “NO”500,则则 flag=1;【参考代码参考代码】教材教材78页。页。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等

23、教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 5 课课 条件表达式条件表达式学习目标学习目标学会书写和使用条件表达式解决一些实际问题。学会书写和使用条件表达式解决一些实际问题。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)条件表达式条件表达式C+语言表达能力强,表达式类型丰富。其中就有语言表达能力强,表达式类型丰富。其中就有一个一个“条件表达式条件表达式”,通过它也可以来实现有选择的取,通过它也可以来实现有选择的取值。值。条件表达式的格式为:条件表达式的格式为:?:其运算规则为:首先计算表达式其运算规则为:首先计算表达式 1 的值,若表达式的值

24、,若表达式 1 的值为真(非的值为真(非 0),则只计算表达式),则只计算表达式 2,并将其结果作为,并将其结果作为整个表达式的值;否则,只计算表达式整个表达式的值;否则,只计算表达式 3,并将其结果作,并将其结果作为整个表达式的值。为整个表达式的值。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、阅读程序,写出程序的运行结果。、阅读程序,写出程序的运行结果。/p3-5-1#includeusing namespace std;int main()int x=5,y=10,z;z=x y?x:y;cout z 0?1:-1;cout z endl;cout (x%

25、2=0?“x is even”:”x is odd”)endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、旅游费用、旅游费用【问题描述问题描述】风华公司风华公司“南京一日游南京一日游”的收费标准为:的收费标准为:5人以内(含人以内(含5人)人)按散客标准,每人按散客标准,每人300元。超过元。超过5人,按团体标准,每人人,按团体标准,每人 280 元。请根据输入的人数,输出其旅游费用。元。请根据输入的人数,输出其旅游费用。【输入格式输入格式】一行一个正整数一行一个正整数 n,表示人数,表示人数,1n5000000。【输出格式输出格式】一行一

26、个正整数,表示需要的总旅游费用。一行一个正整数,表示需要的总旅游费用。【输入样例输入样例】9【输出样例输出样例】2520高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-5-2#includeusing namespace std;int main()int n;cin n;cout (n=5?n*300:n*280)endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、判断闰年、判断闰年【问题描述问题描述】输入某一年份输入某一年份 x,判断该年份是否是闰年。是则输出,判断该年份是否是闰年。是则输出“YES”,否则

27、输出,否则输出“NO”。【输入格式输入格式】一行一个正整数一行一个正整数 x,int 范围以内。范围以内。【输出格式输出格式】一行一个单词,表示判断结果。一行一个单词,表示判断结果。【输入样例输入样例】2000【输出样例输出样例】YES高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-5-3#includeusing namespace std;int main()int x;cin x;cout (x%400=0?“YES”:(x%4=0?(x%100!=0?“YES”:”NO”):”NO”)endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通

28、(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 6 课课 switch 语句语句学习目标学习目标1.掌握掌握 switch 语句的格式和含义。语句的格式和含义。2.学会应用学会应用 switch 语句解决一些实际问题。语句解决一些实际问题。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)多分支语句多分支语句switch 在一些实际问题中,分类情况特别多,用在一些实际问题中,分类情况特别多,用if语句嵌套实语句嵌套实现起来,层数太多,容易出错。为此,现起来,层数太多,容易出错。为此,C+提供了一种多分提供

29、了一种多分支语句支语句switch。switch 语句的一般格式为:语句的一般格式为:switch(表达式表达式)case 常量表达式常量表达式1:语句组语句组1;break;case 常量表达式常量表达式2:语句组语句组2;break;case 常量表达式常量表达式n:语句组语句组n;break;default:语句组语句组n+1高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)多分支语句多分支语句switch 执行过程为:先计算表达式的值,然后从前往后依次执行过程为:先计算表达式的值,然后从前往后依次与与casecase子句中所列出的各个常量表达式的值进行比较,若子句中

30、所列出的各个常量表达式的值进行比较,若表达式的值与常量中的值相等,就开始进入相应的表达式的值与常量中的值相等,就开始进入相应的casecase后后面的语句组执行,遇到后续的面的语句组执行,遇到后续的casecase也不再进行判断(默认也不再进行判断(默认匹配),直至遇到匹配),直至遇到breakbreak语句或语句或switchswitch语句结束。语句结束。defaultdefault表示表达式与所有常量表达式的值都不匹配,那就执行其表示表达式与所有常量表达式的值都不匹配,那就执行其后面的语句组,通常将后面的语句组,通常将defaultdefault放在最后。如果表达式与各放在最后。如果表达

31、式与各分支常量表达式的值都不匹配时,不需要执行任何语句,分支常量表达式的值都不匹配时,不需要执行任何语句,则则defaultdefault可以省略。可以省略。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、阅读下面程序,思考输入、阅读下面程序,思考输入“-”,则输出什么。,则输出什么。/p3-6-1#includeusing namespace std;int main()char symbol;cin symbol;switch(symbol)case +:cout “+”endl;break;case -:cout “-”endl;break;case *:c

32、out “*”endl;break;case /:cout “/”endl;break;default:cout “Input Invalid!”;return 0;【问题分析问题分析】输出输出“-”。如果把其中的如果把其中的4条条“break;”语句去掉,输出什么?语句去掉,输出什么?高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)使用使用 switch switch 语句要注意的问题语句要注意的问题(1)switch 后面的表达式,取值只能是整型、字符型、后面的表达式,取值只能是整型、字符型、布尔型或枚举型。布尔型或枚举型。case 后面的常量表达式,其值类型要与后面

33、的常量表达式,其值类型要与 switch 后面表达式的类型一致。后面表达式的类型一致。(2)任意两个)任意两个 case 后的表达式值必须各不相同,否则将后的表达式值必须各不相同,否则将引起歧义。引起歧义。(3)语句组可以是一条语句,也可以是一个复合语句。)语句组可以是一条语句,也可以是一个复合语句。(4)多个)多个 case 语句可以共用一组程序。语句可以共用一组程序。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、阅读程序,思考分别输入、阅读程序,思考分别输入“A”“B”“C”,则程,则程序输出什么。序输出什么。/p3-6-3#includeusing nam

34、espace std;int main()char ch;cin ch;switch(ch)case A :case B :case C :cout “Pass”endl;break;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例4、优惠购物、优惠购物【问题描述问题描述】某商场的客户分为白金卡会员、金卡会员、银卡会员和普某商场的客户分为白金卡会员、金卡会员、银卡会员和普通客户。为了回馈广大顾客,现推出以下优惠活动:通客户。为了回馈广大顾客,现推出以下优惠活动:(1)如果客户是白金会员,现在将享受如果客户是白金会员,现在将享受 7 折优惠;折优惠;(2)如果客户是金卡

35、会员,现在将享受如果客户是金卡会员,现在将享受 8 折优惠;折优惠;(3)如果客户是银卡会员,现在将享受如果客户是银卡会员,现在将享受 9 折优惠;折优惠;(4)如果客户是普通客户,现在将享受如果客户是普通客户,现在将享受 9.5 折优惠。折优惠。本题的任务是根据顾客的身份和购买商品的价格,给出应本题的任务是根据顾客的身份和购买商品的价格,给出应付金额。付金额。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【输入格式输入格式】第一行一个字符。第一行一个字符。“P”表示白金会员,表示白金会员,“G”表示金卡表示金卡会员,会员,“S”表示银卡会员,其他字符表示普通客户。表示

36、银卡会员,其他字符表示普通客户。第二行一个整数,第二行一个整数,int 范围以内,表示该顾客购买的商范围以内,表示该顾客购买的商品金额。品金额。【输出格式输出格式】一行一个实数,保留两位小数,表示顾客应付金额。一行一个实数,保留两位小数,表示顾客应付金额。【样例输入样例输入】G580【样例输出样例输出】464.00高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-6-4#includeusing namespace std;int main()char id;float price,discount;scanf(“%cn”,&id);scanf(“%f”,&pric

37、e);switch(id)case P :discount=0.7;break;case G :discount=0.8;break;case S :discount=0.9;break;default:discount=0.95;printf(“%.2fn”,price*discount);return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例5、某年某、某年某月的天数月的天数【问题描述问题描述】输入输入x和和y,输出,输出x年年y月有多少天。月有多少天。【输入格式输入格式】一行两个正整数一行两个正整数x和和y,分别表示年份和月份。,分别表示年份和月份。

38、x在在int范围范围以内,以内,y为为112。【输出格式输出格式】一行一个整数,表示该年该月有多少天。一行一个整数,表示该年该月有多少天。【样例输入样例输入】2000 3【样例输出样例输出】31高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-6-5#includeusing namespace std;int main()int x,y,day;cin x y;switch(y)case 1:case 3:case 5:case 7:case 8:case 10:case 12:day=31;break;case 4:case 6:case 9:case 11:d

39、ay=30;break;case 2:if(x%400=0)|(x%4=0)&(x%100!=0)day=29;else day=28;break;cout day endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)第第 7 课课 分支结构应用举例分支结构应用举例学习目标学习目标1.总结反思,建立分支结构的知识体系。总结反思,建立分支结构的知识体系。2.实践巩固,熟练应用分支结构解决一些实际问题。实践巩固,熟练应用分支结构解决一些实际问题。高等教育出版社高等教育

40、出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例1、水果价、水果价格格【问题描述问题描述】苹果(苹果(apples)、梨()、梨(pears)、橘子()、橘子(oranges)、葡萄()、葡萄(grapes)4种水果,种水果,单价分别是单价分别是3.00元元/千克,千克,2.50 元元/千克,千克,4.10 元元/千克和千克和 10.2 元元/千克。千克。【输入格式输入格式】一行一个整数,一行一个整数,09 之间。之间。【输出格式输出格式】提示信息和相应水果的单价,格式如样例输出所示。提示信息和相应水果的单价,格式如样例输出所示。【样例输入样例输入】3【样例输出样例输出】1apples2p

41、ears3oranges4grapesPrice=4.1高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-7-1#includeusing namespace std;int main()int x;cin x;cout “1apples”endl;cout “2pears”endl;cout “3oranges”endl;cout “4grapes”endl;cout “Price=”;switch(x)case 1:cout “3.0”endl;break;case 2:cout “2.5”endl;break;case 3:cout “4.1”endl;bre

42、ak;case 4:cout “10.2”endl;break;default:cout “0”endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例2、虫子吃苹果虫子吃苹果【问题描述问题描述】小苏买了一箱苹果共有小苏买了一箱苹果共有 n 个,很不幸的是箱子里混进了一条虫子。虫子个,很不幸的是箱子里混进了一条虫子。虫子每每 x 小时能吃掉一个苹果。假设虫子在吃完一个苹果之前不会吃另一个,小时能吃掉一个苹果。假设虫子在吃完一个苹果之前不会吃另一个,那么经过那么经过 y 小时,这箱苹果中还有多少个苹果没有被虫子吃过?小时,这箱苹果中还有多少个苹果没有

43、被虫子吃过?【输入格式输入格式】一行三个整数,表示一行三个整数,表示 n、x、y,int 范围以内,之间用一个空格隔开。范围以内,之间用一个空格隔开。【输出格式输出格式】一行一个整数,即所求答案。一行一个整数,即所求答案。【输入样例输入样例】3 2 1【输出样例输出样例】2高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】如果如果 y%x 等于等于 0,则剩余的苹果为,则剩余的苹果为 n-y/x;否则答案为;否则答案为 n-y/x-1。特殊。特殊情况是,如果经过情况是,如果经过 y小时虫子吃掉的苹果比小时虫子吃掉的苹果比 n 多,则说明剩余苹果为多,则说

44、明剩余苹果为 0。/p3-7-2#includeusing namespace std;int main()int n,x,y;cin n x y;int k=y/x;if(y%x)k+;/y%x 等价于等价于 y%x!=0 if(k=n)cout n-k endl;else cout 0 endl;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例3、字符、字符判断判断【问题描述问题描述】键盘输入任意一个字符,判断是大写字母、小写字母还是数键盘输入任意一个字符,判断是大写字母、小写字母还是数字。字。【输入格式输入格式】一行一个字符。一行一个字符。【输

45、出格式输出格式】如果是大写字母,输出如果是大写字母,输出“capital”;如果是小写字母,则输;如果是小写字母,则输出出“lowercase”;如果是数字,则输出;如果是数字,则输出“number”;其他字;其他字符输出符输出“others”。【样例输入样例输入】A【样例输出样例输出】capital高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】C+中的字符可以直接比较大小,依据就是其对应的中的字符可以直接比较大小,依据就是其对应的 ASCII 码值。而且在码值。而且在 ASCII 码中大写字母、小写字母和数码中大写字母、小写字母和数字字符都是连续编

46、号的。所以,判断字符类别可以直接进行字字符都是连续编号的。所以,判断字符类别可以直接进行关系运算,也可以通过它的关系运算,也可以通过它的 ASCII 码范围来实现。码范围来实现。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-7-3#includeusing namespace std;int main()char ch;cin ch;if(ch=A&ch=Z )cout “capital”=a&ch=z )cout “lowercase”=0&ch=9 )cout “number”endl;else cout “others”endl;return 0;高等教育

47、出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)例例4、随机、随机函数函数【问题描述问题描述】编程随机生成编程随机生成2个个19之间的整数之间的整数a、b。再随机生成。再随机生成1个个14的整数,的整数,1、2、3、4分别对应分别对应+、-、*、/这这4个运算符号个运算符号c。程。程序输出序输出a c b的结果。的结果。【输入格式输入格式】无输入。无输入。【输出格式输出格式】输出输出a和和b的算术表达式及其结果,具体参照样例输出。的算术表达式及其结果,具体参照样例输出。【样例输出样例输出】5+3=8【样例说明样例说明】样例输出只是一种可能,不唯一,但是输出格式要相同。样例输出只是

48、一种可能,不唯一,但是输出格式要相同。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)【问题分析问题分析】C+中的中的rand()函数返回函数返回0,RAND_MAX之间的随机整数之间的随机整数,其中,其中,RAND_MAX一般为一般为32767。但是,在调用。但是,在调用rand()之前之前一般要先设置一般要先设置“随机种子随机种子”,通常可以用,通常可以用srand(time(0)来实来实现。现。rand()函数和函数和srand()函数需要包含函数需要包含“cstdlib”头文件,头文件,time()函数需要包含函数需要包含“ctime”头文件。头文件。一般来说,产

49、生一般来说,产生ab之间的随机整数可以表示为:之间的随机整数可以表示为:a+rand()%(b-a+1)。)。高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)/p3-7-4#include#include#includeusing namespace std;int main()int a,b,c;srand(time(0);int x=1,y=9;a=x+rand()%(y-x+1);b=x+rand()%(y-x+1);x=1;y=4;c=x+rand()%(y-x+1);switch(c)case 1:printf(%d+%d=%dn,a,b,a+b);break;case 2:printf(%d-%d=%dn,a,b,a-b);break;case 3:printf(%d*%d=%dn,a,b,a*b);break;case 4:printf(%d/%d=%dn,a,b,a/b);break;return 0;高等教育出版社高等教育出版社信息学奥赛课课通(信息学奥赛课课通(C+)实践巩固实践巩固

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(信息学奥赛课课通(C++)第3单元-电子课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|