1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,C语言程序设计-第3章 C语言的基本语句和程序结构设计,*,第,3,章,C,语言的基本语句和程序结构设计,目 录,基本语句,关系运算符和关系表达式,逻辑运算符和逻辑表达式,分支程序设计,循环程序设计,2,C语言程序设计-第3章 C语言的基本语句和程序结构设计,基本语句,(Statements),控制语句,表达式语句,函数调用语句,空语句,复合语句,3,C语言程序设计-第3章 C语言的基本语句和程序结构设计,控制语句,完成一定的控制功能,C,语言的,9,种控制语句,if-else,while,continue,s
2、witch,return,for,do-while,break,goto,4,C语言程序设计-第3章 C语言的基本语句和程序结构设计,表达式语句,形式,expression,;,表达式最后加一个分号,举例,a=3;/*,赋值语句,*,/,z=x*y,z+;/*,一条语句,*,/,x-y,;/*,语句,但无实际意义,*,/,i+;/*,语句,*,/,i+/*,表达式,不是语句,*,/,5,C语言程序设计-第3章 C语言的基本语句和程序结构设计,函数调用语句,形式,function,(,arguments,);,函数调用后加一个分号,函数调用语句可以看作一种表达式语句,举例,printf(%d,i
3、);,getchar,();,myfun(a,b);,6,C语言程序设计-第3章 C语言的基本语句和程序结构设计,空语句,形式,;,只有一个分号,用法,作为转向点,作为循环语句中的循环体,举例,for(i,=1;i=100;i+)sum+=i;,for(i,=1;i y),/*,复合语句开始,*,/,t=x;,x=y;,y=t;,/*,复合语句结束,*,/,printf(%d,%d,x,y);,9,C语言程序设计-第3章 C语言的基本语句和程序结构设计,C,语言语句使用说明,除复合语句外,语句都以分号,;,作为结束,语句书写格式比较自由,确定语句结束的唯一标准是分号,(,;,),注意区分表达式
4、和表达式语句,它们的用法不同,举例,,if(a,=b)0)t=a;,错例,,if(a,=b;)0)t=a;,举例,,if(x,y)x-;y+;,错例,,if(x,y)x-;y+,10,C语言程序设计-第3章 C语言的基本语句和程序结构设计,关系运算符,(Relational Operators),运算符,名称,举例,优先级,(,算术运算符,),小于,i100,高,=,小于等于,a,大于,f3.14,=,大于等于,c=a,=,等于,a=b,低,!=,不等于,x!=0,(,赋值运算符,),11,C语言程序设计-第3章 C语言的基本语句和程序结构设计,关系表达式,用关系运算符将两个表达式连接起来,a
5、b,c+d,(a=3)x,注意区分等于,(,=,),和赋值运算符,(,=,),a=b,a=b,关系表达式的值是逻辑值,“,真”或“假”,C,语言用整型表示逻辑值,“真”,1,、“假”,0,举例,,a=3,b=2,c=1;,d=ab;,/*d=1*/,f=abc;,/*f=(ab)c=0*/,12,C语言程序设计-第3章 C语言的基本语句和程序结构设计,逻辑运算符,(Logical Operators),运算符,名称,举例,优先级,!,逻辑非,!(ab),(,算术运算符,),(,关系运算符,),&,逻辑与,(x,y)&(y,z),|,逻辑或,(x3)|(x,b)&(n,=cd),De Morg
6、an,定理,!(,a&b,)(!,a)|(!b,),!(,a|b,)(!,a)&(!b,),!(,a&b)|c,)(!,a|!b)&!c,17,C语言程序设计-第3章 C语言的基本语句和程序结构设计,分支程序设计,if,语句,条件运算符,?:,switch,语句,分支程序设计举例,18,C语言程序设计-第3章 C语言的基本语句和程序结构设计,if,语句的三种形式,if,(,expression,),statement,if,(,expression,),statement,1,else,statement,2,if,(,expression,1,),statement,1,else if,(,
7、expression,2,),statement,2,else if,(,expression,3,),statement,3,.,else if,(,expression,n-1,),statement,n-1,else,statement,n,19,C语言程序设计-第3章 C语言的基本语句和程序结构设计,if,语句的说明,无论哪种形式,一条,if,语句,包括,else,或,else if,子句,只算作一条语句,if,语句中的子句,可以是一条任何类型的语句,包括表达式语句、空语句、复合语句、控制语句,子句末尾的分号,只表示子句的结束,不表示,if,语句结束,注意复合语句末尾没有分号,else
8、子句都是可以没有的,20,C语言程序设计-第3章 C语言的基本语句和程序结构设计,if,语句举例,if(x y),/*,y,为,x,和,y,的较大值,*,/,y=x;,if(x y),/*,d,为,x,和,y,之间的距离,*,/,d=x-y;,else,d=y-x;,if(x y);,/*,合法,但没有实际操作,*,/,21,C语言程序设计-第3章 C语言的基本语句和程序结构设计,if,语句的嵌套,if,语句的各子句都可以又是,if,语句,应注意,if-else,的配对关系,else,总是与其上面最近的,if,配对,可以用,明确,if-else,的配对关系,if(,exp,1,)if(,ex
9、p,1,),if(,exp,2,),if(,exp,2,),statement,1,statement,1,else,else,statement,2,statement,2,22,C语言程序设计-第3章 C语言的基本语句和程序结构设计,条件运算符,(Conditional Operator),条件运算符,?:,条件表达式,exp1?exp2:exp3,先判断,exp1,若,exp1,为“真”,表达式的值为,exp2,的值,若,exp1,为“假”,表达式的值为,exp3,的值,举例,,max=(xy)?x:y;,同:,if(x,y)max=x;,else max=y;,23,C语言程序设计-第
10、3章 C语言的基本语句和程序结构设计,switch,语句,switch,(,expression,),case,const-exp,:,statements,case,const-exp,:,statements,.,case,const-exp,:,statements,default,:,statements,24,C语言程序设计-第3章 C语言的基本语句和程序结构设计,switch,语句的说明,先求,switch,后表达式的值,若此值与某个,case,后的常量表达式的值相等,则跳转到这个,case,后的语句,;若没有相等的常量表达式,则跳转到,default,跳转后程序一直往下执行,不会
11、因为遇到另一个,case,而直接跳出,switch,根据实际需要,可以没有,default,若需要跳出,switch,,可使用,break,语句,case,和,default,的顺序不影响执行结果,25,C语言程序设计-第3章 C语言的基本语句和程序结构设计,switch,语句举例,(1),switch(day),/*,打印星期的缩写,*,/,case 1:,printf(Mon.n,);break;,case 2:,printf(Tue.n,);break;,case 3:,printf(Wed.n,);break;,case 4:,printf(Thu.n,);break;,case 5:
12、printf(Fri.n,);break;,case 6:,printf(Sat.n,);break;,default:printf(Sun.n,);,26,C语言程序设计-第3章 C语言的基本语句和程序结构设计,switch,语句举例,(2),switch(,deptno,),/*,根据系编号打印学院,*,/,case 15:,case 16:,case 17:,printf,(,商学院,n);break;,case 18:,case 25:,printf,(,人文学院,n);break;,case 7:,printf,(,地空学院,n);break;,default:,printf,(,
13、其他学院,n);,27,C语言程序设计-第3章 C语言的基本语句和程序结构设计,分支程序设计举例,求一元二次方程的根,当,a,=0,时,不是一元二次方程,当,a,0,时,方程的根为,当,b,2,-4,ac,0,,方程有两个实根,当,b,2,-4,ac,0,,方程有两个共轭复根,28,C语言程序设计-第3章 C语言的基本语句和程序结构设计,例,1,:求一元二次方程的根,29,C语言程序设计-第3章 C语言的基本语句和程序结构设计,循环程序设计,while,语句,do-while,语句,for,语句,break,和,continue,语句,循环程序设计举例,30,C语言程序设计-第3章 C语言的基
14、本语句和程序结构设计,while,语句,while,(,expression,),statement,while,型循环,先判断表达式,后,执行语句,一般情况下,循环,中应含有能使循环,语句结束的操作,statement,a,b,expr,.,真,假,31,C语言程序设计-第3章 C语言的基本语句和程序结构设计,while,语句举例,int,i,sum;,i=1;,sum=0;,while(i,=100),sum+=i;,/*,循环体缩进书写,*,/,i+;,/*,使循环趋向结束,*,/,32,C语言程序设计-第3章 C语言的基本语句和程序结构设计,do-while,语句,do,stateme
15、nt,while,(,expression,);,类似于,Until,型循环,先执行一次循环体,语句,后判断表达,式,statement,a,b,expr,.,真,假,33,C语言程序设计-第3章 C语言的基本语句和程序结构设计,do-while,语句举例,int,i,sum;,i=1;,sum=0;,do,sum+=i;,i+;,while(i,=100);,34,C语言程序设计-第3章 C语言的基本语句和程序结构设计,do-while,与,Until,型循环,do,sum+=i;,i+;,while,(,i,100,);,Until,型循环,35,C语言程序设计-第3章 C语言的基本语句和
16、程序结构设计,for,语句,for,(,expr,1,;,expr,2,;,expr,3,),statement,expr,1,;,while,(,expr,2,),statement,expr,3,;,36,C语言程序设计-第3章 C语言的基本语句和程序结构设计,for,语句的说明,三个表达式的说明,expr,1,:,初始化,expr,2,:,循环条件,expr,3,:,一般是循环变量的改变,三个表达式都可以省略,分隔表达式的分号不能省略,expr,1,省略,不进行初始化,expr,2,省略,认为循环条件永为“真”,expr,3,省略,不在这里改变循环变量,37,C语言程序设计-第3章 C语
17、言的基本语句和程序结构设计,for,语句举例,int,i,sum;,for(i=1,sum=0;i=100;i+),sum+=i;,for(i=1,sum=0;i=100;),sum+=i+;,for(i=0,sum=0;i+100;),sum+=i;,38,C语言程序设计-第3章 C语言的基本语句和程序结构设计,break,语句,形式,break;,说明,跳出,switch,语句,跳出本层循环语句,如果有多层循环存在,,break,只跳出它所在的那一层循环语句,不影响外层循环的执行,不能用于循环语句和,switch,语句之外的任何其他场合,39,C语言程序设计-第3章 C语言的基本语句和程序
18、结构设计,continue,语句,形式,continue;,说明,结束本次循环,跳过循环体中余下的其他语句,接着进行下一次循环的判定,只能用于循环语句中,40,C语言程序设计-第3章 C语言的基本语句和程序结构设计,break,和,continue,语句,break,语句,跳出,本层,循环,while(i,100),break,;,.,continue,语句,结束,本次,循环,while(i,100),continue,;,.,41,C语言程序设计-第3章 C语言的基本语句和程序结构设计,循环程序设计举例,求最大公约数和最小公倍数,42,C语言程序设计-第3章 C语言的基本语句和程序结构设计,例,2,:求最大公约数和最小公倍数,43,C语言程序设计-第3章 C语言的基本语句和程序结构设计,结束,The End,44,C语言程序设计-第3章 C语言的基本语句和程序结构设计,






