资源描述:
《C语言程序设计第三章C语言的基本控制结构》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章C语言的基本控制结构问题#include#includevoidmain(void){floata,b,c,x1,x2;scanf(“%f,%f,%f”,&a,&b,&c);x1=(-b+sqrt(b*b-4.*a*c))/(2.0*a);x2=(-b-sqrt(b*b-4.*a*c))/(2.0*a);printf(“x1=%7.2fx2=%7.2f”,x1,x2);}b*b-4ac<0?一元二次方程根求解算法描述b2-4ac=0?yes求等根nob
2、2-4ac>0?yes求实根no求复根问题:如何构造条件?如何根据条件实现不同算法?3.1程序的三种控制结构结构化程序设计是软件设计的第三次革命。结构化程序设计的基础是采用三种程序的控制结构。1966年BOHM&Jacopini证明:只要三种控制结构就能表达用一个入口和一个出口框图所能表达的任何程序逻辑。三种控制结构如下:⒈顺序结构Sequence算法描述:f;g;框图:f;g;入口出口⒉选择结构Selection算法描述:if(e)f;elseg;框图:e?yesf;nog;入口出口⒊循环结构
3、Repetition⑴当型循环whilecistruedofc?fYESNO⑵直到循环dofuntilcisfalsefc?YESNO三种控制结构有如下共同的特点:一个入口和一个出口;无死语句;无死循环。入口出口如何构造条件?复合语句概念:C语言可以用{}包括一系列的语句。一对{}所包含的内容称为一个复合语句。其中可以包含0到多条C语言语句。#includevoidmain(void){inta,b;scanf(“%d,%d”,&a,&b);{inttemp;temp=a;a=
4、b;b=temp;}printf(“%d,%d”,a,b);}复合语句复合语句复合语句可以嵌套凡是可以出现单一语句的地方都可以使用复合语句。复合语句的作用:⒈作为分支和循环的块。⒉作为标识符的作用域。交换算法演示3.2关系运算和逻辑运算⒈关系运算关系运算是比较两个表达式值的数值相互关系的运算。运算符运算关系实例>大于a>b>=大于等于a>=b<小于2<1<=小于等于c<=d==等于1==c!=不等于1!=3关系运算规则:参加运算的表达式的从左到右按关系运算符提供的关系进行比较,满足关系得到整型值
5、1,不满足关系得到整型值0。inta=1,b=3,c,d;c=a>b;/*c的值为0*/d=a+2<=b+3;/*d的值为1*/⒉逻辑运算逻辑运算运算时判断对象真假的运算。运算对象非0代表逻辑真,是0代表逻辑假。也就是说任何类型的量都有逻辑值。逻辑运算得到整型值。运算结果为真时,得到整型值1,运算结果为假时,得到整型值0。运算符逻辑关系举例&&逻辑与a>2&&a<3
6、
7、逻辑或s<2
8、
9、s>6!逻辑非!a其中,!运算是单目运算。逻辑运算演示⒊复杂逻辑关系的表示在实际应用中,经常会遇到描述复杂的关系
10、。如:判断x是否大于等于5或小于3。此类关系的描述在程序设计中会大量使用。035x<3
11、
12、x>=50-23-2=’a’&&ch<=‘z’)
13、
14、(ch>=’A’&&ch<=‘Z’)不是字母的表达式?⒋运算的优先级C语言允许所有基本类型的量参加同一表达式的运算,也允
15、许所有类型的运算符出现在一个表达式中。因此,表达式值的类型如何确定,运算的先后顺序如何确定,必须通过一套规则解决。为了便于调整优先级,设置()为最高优先级。相同优先级存在一个顺序称为结合顺序,结合顺序有从右向左或从左向右。⑴运算优先级第一原则:单目运算的优先级高于双目运算。第二原则:算术运算关系运算逻辑运算赋值运算表达式优先级举例说明:++a-b>c+d&&a>=b*34①②③④⑤⑥⑦注意:在无法确定优先级时,加()区分。简化表达式。c=b*=a+2c=(b*=(a+2))级别运算符结合顺序1(
16、)[]->.从左向右2!-++--(type)sizeof*&从右向左3*/%从左向右4+-从左向右5<<>>从左向右6<<=>>=从左向右7==!=从左向右8&从左向右9^从左向右10
17、从左向右11&&从左向右12
18、
19、从左向右13?:从右向左14=op=从右向左15,从左向右优先级总表优先级特例⒈自加、自减运算优先级遵循原则:前置:先运算后引用;后置:先引用后运算。#includevoidmain(void){inta=3,b;b=a+++a++;printf(“b=%d”,