资源预览内容
第1页 / 共103页
第2页 / 共103页
第3页 / 共103页
第4页 / 共103页
第5页 / 共103页
第6页 / 共103页
第7页 / 共103页
第8页 / 共103页
第9页 / 共103页
第10页 / 共103页
亲,该文档总共103页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第二讲 选择与循环程序设计(C语言的精髓),2.1 选择程序设计(分支),重要的两句话:1、选择是需要有条件的;2、选择是残酷的,根据条件的不同,有的被选择,有的不被选择。,构成条件的基础,1、关系运算符与关系表达式,2、逻辑运算符和逻辑表达式,1、关系运算符与关系表达式,关系运算符有:、=、 、 =1500 age=60,关系表达式的结果:成立或不成立 逻辑成立:true 逻辑不成立:false 例如:53 成立,true 35 不成立,false,2、逻辑运算符和逻辑表达式,当条件比较复杂,一个关系表达式无法满足实际需求时,要用到多个条件的组合,此时需要用到逻辑运算符和逻辑表达式。例如,构成三角形的条件,满足结婚的条件,逻辑运算符,逻辑与:&逻辑或: |逻辑非: !,逻辑与&,逻辑或|,由关系表达式和逻辑运算符组成的表达式为逻辑表达式。 例如:能构成三角形的条件 : a+bc&b+ca&c+ab 可以结婚法定年龄的条件: boy_age=22&girl_age=20,逻辑表达式,在C语言中,在给出逻辑表达式的结果时,以数值1代表“真”,以数值0代表“假”。,举例: (1)5+24 & 3=2 其结果是0 (2)5+24 | 3=2 其结果是1,优先级: 算术运算符的优先级要高于关系运算符,关系运算符的优先级要高于逻辑运算符。,二级考试题,已知a是一具体数值,则表达式a=3|a!=3的结果是() A、0 B、1 C、2 D、a的值不知道,无法确定,注意:,在判断一个具体的数值量是否为“真”时,以0代表“假”,以非0代表“真”。,#include main()while(1)printf(同志们好!n);printf(首长好!n);printf(同志们辛苦了!n);printf(为人民服务!n);,#include #include main()while(1)printf(同志们好!n);printf(首长好!n);Sleep(1000);printf(同志们辛苦了!n);printf(为人民服务!n);,不断输出:同志们好首长好结论:死循环按Ctrl+break终止死循环,#include main()while(0)printf(同志们好n);printf(首长好n);printf(同志们辛苦了n);printf(为人民服务n);,选择程序在C语言中的具体实施,if语句switch.case 结构(略),if 语句,if语句用来判定所给定的条件是否成立,根据判定的结果(真或假)决定执行不同的分支。,重要规则:满足条件,执行相应的分支;不满足条件,顺序执行。,if语句的几种形式,纯if语句(枚举法) ifelse结构 ifelse ifelse结构 if语句的嵌套,将所有的条件全部罗列出来,为每个条件给出相应的执行语句。功能最强大的语句之一。,纯if语句(枚举法),举例:输入一个学生的成绩,如果大于等于60,则输出“恭喜,你通过了!”,否则输出“未通过,好好准备补考”。,#include main()int score;scanf(%d,举例:输入一个成绩score若score=80,输出“优秀”用ifelse ifelse 完成。,#include main() int score; printf(请输入一个分数:); scanf(%d,错误写法,if (90=score= 100) printf(优n);,石头、剪刀、布游戏,#include #include #include main() int i; int j; srand(time(NULL); i=rand()%3; printf(输入0、1或2,分别代表石头剪刀布); scanf(%d,if(i=0,ifelse结构,当条件只有两种可能时,可以采用ifelse结构。,语法形式为:if(条件) 语句1;else 语句2;,举例:,#include main()int score;scanf(%d,#include main()int boy_age,girl_age;scanf(%d,%d,举例:,ifelse ifelse结构,当条件的区间划分比较复杂时,ifelse结构将不能满足要求,此时要采用ifelse ifelse结构。,if(条件1) 语句1; else if(条件2) 语句2; else if (条件3) else 语句n;,格式:,举例:输入一个成绩score若score=80,输出“优秀”用ifelse ifelse 完成。,#include main() int score; scanf(%d,从小到大,if (score60) printf(不及格);else if(score70) printf(及格);else if(score80) printf(中);else if(score=90) printf(优);else if(score=80) printf(良);else if(score=70) printf(中);else if(score=60) printf(及格);else printf(不及格);,举例:用ifelse ifelse 完成i20 输出“张飞”,if (i=5)printf(诸葛亮);else if(i=10)printf(周瑜); else if(i=20)printf(鲁肃);elseprintf(“张飞);,if语句的嵌套,当一个if语句结构中又 包含一个或多个if语句 ,称为if语句的嵌套。典型案例:某推销员的月收入,典型案例:某推销员的月收入,举例:某洗发水推销员,其基本工资是人民币600元/月,如果当月销售额超过10000元, 有提成,低于10000元,则没有提成,具体提成如下: 提成计算如下: 提成=0.1*销售额 月销售额=20000 输入这个推销员一个月的销售额,计算其当月的收入并输出。,#include main() float wage; float sale; printf(请输入销售额:); scanf(%f,综合举例:两人玩掷骰子的游戏用纯if语句完成If语句的嵌套完成,#include #include #include main() srand(time(NULL);int d11,d12,d21,d22,sum1,sum2;d11=rand()%6+1;d12=rand()%6+1; d21=rand()%6+1;d22=rand()%6+1;sum1=d11+d12;sum2=d21+d22;printf(%d %dn,d11,d12); printf(%d %dn,d21,d22);,if (d11!=d12 ,if (d11!=d12 ,2.2 循环程序设计,循环在我们生活中需要反复执行某一段程序,即循环,循环的组成,循环初值设定循环条件判断循环操作循环参数改变,循环的原则,满足循环条件,执行循环体;不满足循环条件,跳出循环体,执行循环体以外的程序。,循环分类,当循环先判断循环条件,满足循环条件,则执行循环体,不满足循环条件,则不执行循环体直到循环先执行循环体,再判断循环条件。如果满足循环条件,则执行循环体,如果不满足循环条件,则跳出循环体。,否,当循环,直到循环,当循环的格式: while(表达式) 循环体; ,直到循环的格式: do 循环体; while(表达式);,举例:分别用当循环和直到循环实现,#includemain()int i=1, sum=0; while(i=100)sum= sum+i;i+;printf(sum=%dn,sum);,当循环,#includemain()int i=1, sum=0; dosum+=i;i+;while(i=100);printf(sum=%dn,sum);,直到循环,求超越方程 的正数解,要求误差0.001) x=x+h;printf(x=%fn,x);,#include#includemain() double x=1.0,h=0.0001; while(fabs(exp(x)-x-2)0.001) x=x+h;printf(x=%fn,x);,#include#includemain() double x=1.0,h=0.0001; do x=x+h; while(fabs(exp(x)-x-2)0.001); printf(x=%fn,x);,#include#includemain() double x=1.0,h=0.0001; do x=x+h; while(fabs(exp(x)-x-2)0.001); printf(x=%fn,x);,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号