您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C语言第四章顺序和选择结构程序设计
下一页上一页§4.1结构化程序设计结构化程序设计至少有三个特点1.程序结构清晰、易读2.提高编程质量、效率、避免重复性劳动3.提高编译速度,减少内存开销三种控制结构流程图第四章顺序和选择结构程序设计有三种基本结构:1)顺序结构—自上而下顺序执行。2)选择结构—在多种分支中,根据条件的成立与否选择执行某个分支。3)循环结构—根据需要重复执行某部分。有当型和直到型两种类型下一页上一页1.表达式语句一般格式:表达式;1.表达式语句2.函数调用语句3.控制语句4.复合语句(分程序)5.空语句§4.2语句与分程序语句:是源程序的基本组成部分根据语句的组成机制有五种分类:例:a=5;z=x+y;i++;2.函数调用语句一般格式:函数调用;例:scanf(“%d”,&a);printf(“%d”,a);3.空语句一般格式:;例:inti=0;while(i++5);printf(“%d”,i);下一页上一页4.复合语句与分程序一般格式:{[数据说明](只用于分程序)[语句序列]}说明:1.复合语句在语法上相当于一条简单语句。2.{……}后不接“;.5.控制语句用于控制程序流程的语句。说明:C有9种控制语句:if、switch、while、do…while、for、break、goto、continue、return例:if(i10){inta=2;b=a+8;printf(“%d”,b);}下一页上一页§4.3顺序结构程序设计顺序结构:自上而下顺序书写程序语句。例:编写程序,交换x和y的值。main(){intx,y,temp;printf(“\nPleaseinputtwointnumbers:”);scanf(“%d%d”,&x,&y);printf(“\nBeforechanged:x=%d,y=%d”,x,y);temp=x;x=y;y=temp;printf(“\nAfterchanged:x=%d,y=%d”,x,y);}下一页上一页§4.4选择结构程序控制选择结构又称分支结构,有两种控制语句:条件语句(if)开关语句(switch)一.if条件语句用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之。if语句有三种形式。1.if(条件)语句1例:if(ab)max=a;2.if(条件)语句1else语句2例:if(ab)max=a;elsemax=b;下一页上一页3.if(条件1)语句1elseif(条件2)语句2elseif(条件3)语句3┊elseif(条件n-1)语句n-1else语句n例:if(score=90)grade=‘A’;elseif(score=80)grade=‘B’;elseif(score=70)grade=‘C’;elseif(score=60)grade=‘D’;elsegrade=‘E’;说明:1).if后的(条件)可以是任意的数据类型.一般为关系表达式或逻辑表达式。2).每种形式的if语句都是作为整体存在的一条语句,else子句不能单独使用,它必须是if语句的一部分,与if配对使用。例:if(3)printf(“ok”);if(a&&b)printf(“ok”);if(a==b)printf(“ok”);下一页上一页﹡其实上述if语句的三种形式可以综合应用,相互嵌套,如:if(表达式1){if(表达式2)语句1}else语句2if(表达式1)语句1elseif(表达式2)语句2else语句3if(表达式1)if(表达式2)语句1else语句2注意:else总是与它上面最近的未配对的if配对。下一页上一页4.if语句的嵌套在if语句中又包含一个或多个if语句,称为if语句的嵌套。一般形式如下:if()if()语句1else语句2elseif()语句3else语句43).if和else后面的语句也可以是复合语句。例:if(a+bc&&b+ca&&c+ab){s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“area=%f”,area);}elseprintf(“itisnotatrilateral”);4).采用缩进格式书写,以增加程序的可读性。下一页上一页例1:输入一个x值,输出y的值。main(){intx,y;scanf(“%d”,&x);if(x0)y=-1;elseif(x==0)y=0;elsey=1;printf(“x=%d,y=%d\n”,x,y);}-1x00x=01x0y=if语句应用示例y=x0?-1:(x0?1:0);下一页上一页main(){floatf1,f2,f3,temp;printf(“Pleaseinput3number:”);scanf(“%f%f%f”,&f1,&f2,&f3);if(f1f2){temp=f1;f1=f2;f2=temp;}/*交换f1,f2*/if(f1f3){temp=f1;f1=f3;f3=temp;}/*交换f1,f3*/if(f2f3){temp=f2;f2=f3;f3=temp;}/*交换f2,f3*/printf(“%5.2f,%5.2f,%5.2f\n”,f1,f2,f3);}例2:键入三个数,排序后,按由小到大的顺序输出。下一页上一页二.switch语句(开关语句)一般格式:switch(表达式){case常量表达式1:语句序列1;[break];case常量表达式2:语句序列2;[break];......case常量表达式n:语句序列n;[break];default:语句序列n+1}用于多分支选择。之间要有空格!说明:﹡switch、case、break、default是关键字;﹡常量表达式通常用整型数值或字符常量;﹡语句序列可空;break、default可省。switch(grade){case‘A’:printf(“90~100\n”);break;case‘B’:printf(“80~89\n”);break;case‘C’:printf(“70~79\n”);break;case‘D’:printf(“60~69\n”);break;default:printf(“error\n”);}下一页上一页语法规则:(1)计算switch后括号中的表达式的值。(2)从上至下与case后的值相比较,寻找switch语句的入口。(3)以与其匹配(相等)的case为入口,顺序执行其后的每一条语句,直到遇到break语句时,退出该开关语句。(4)如没有匹配的case,则执行default后面的语句序列。如没有default,则退出该开关语句。switch(表达式){case常量表达式1:语句序列1;[break];case常量表达式2:语句序列2;[break];......case常量表达式n:语句序列n;[break];default:语句序列n+1}下一页上一页注意:﹡default可以省略,也可以放在switch语句中的任何地方。switch(grade){case‘A’:printf(“90~100\n”);break;case‘B’:printf(“80~89\n”);break;default:printf(“error\n”);break;case‘C’:printf(“70~79\n”);break;case‘D’:printf(“60~69\n”);break;}﹡不能有重复的case常量表达式:。﹡case常量表达式:只起语句标号的作用,不进行条件判断。﹡多个case可以共用一组执行语句。switch(grade){case‘A’:case‘B’:case‘C’:case‘D’:printf(“60\n”);}﹡语句序列中的多条语句无需加花括号。﹡第一个匹配的case之前的语句永远不被执行。﹡允许嵌套使用switch语句。下一页上一页switch语句应用示例main(){floata,b;charchr;printf(Inputexpression:a+(-,*,/)b\n);scanf(%f%c%f,&a,&chr,&b);switch(chr){case'+':printf(%f\n,a+b);break;case'-':printf(%f\n,a-b));break;case'*':printf(%f\n,a*b);break;case'/':printf(%f\n,a/b);break;defaut:printf(inputerror!\n);}}1下一页上一页main(){inta=1,b=6,c=8,d=5;switch(++a){case1:c++;d++;break;case2:switch(++b){case7:c++;case8:d++;}case3:c++;d++;break;case4:c++;d++;}printf(“%d,%d\n”,c,d);}Output:10,72下一页上一页main(){charc;printf(“Enteracharacter:”);scanf(%c,&c);printf(“Itisa”);switch(c){if(c‘9’&&c‘0’){printf(“digtier.\n”);break;}default:printf(“non-digtier.\n”);}}3Output:Enteracharacter:‘5’CRItisanon-digtier.分析下列程序的输出结果。下一页上一页三种控制结构流程图ABAB流线式NS式顺序结构流程图TFPAB选择结构流程图PABTFAPFTAPAPFTAP循环结构流程图当型循环结构直到循环结构
本文标题:C语言第四章顺序和选择结构程序设计
链接地址:https://www.777doc.com/doc-3209999 .html