1、1.1忠信笃行忠信笃行 自强不息自强不息第四章第四章 选择结构程序设计选择结构程序设计重点、难点重点、难点1. If 、ifelse 和和switch语句的格式和功能。语句的格式和功能。2. 三条选择语句和三种选择结构的程序设计三条选择语句和三种选择结构的程序设计. . .1.2忠信笃行忠信笃行 自强不息自强不息4.1 if 语句语句1、if语句的三种形式:单分支选择语句的三种形式:单分支选择if语句、双分支选择语句、双分支选择if语句、多分支选择语句、多分支选择if语句。语句。1)单分支选择)单分支选择if语句语句 语句形式:语句形式: if (表达式)表达式) 语句;语句; 例:例:if(
2、xy)printf(“%d”,x);. . .1.3忠信笃行忠信笃行 自强不息自强不息 语句流程图语句流程图表达式语句真(非0)假(0). . .1.4忠信笃行忠信笃行 自强不息自强不息例5.1:从键盘输入两个整数a和b,如果a大于b则交换两数,否则不交换,最后输出两个数。#include main()int a,b,t; scanf(%d,%d,&a,&b); if(ab) t=a;a=b;b=t; printf(a=%d,b=%dn,a,b);输入a,bab交换a、b输出结束真假. . .1.5忠信笃行忠信笃行 自强不息自强不息注意:注意: (1)if语句自动结合一个语句,当满足条件需要执
3、行多个语句时,应用一对大括号将需要执行的多个语句括起,形成一个复合语句。 ( 2)if语句中表达式形式很灵活,可以是常量、变量、任何类型表达式、函数、指针等。只要表达式的值为非零值,条件就为真,反之条件为假。 . . .1.6忠信笃行忠信笃行 自强不息自强不息2.双分支选择双分支选择if语句语句语句形式:语句形式:if (表达式)语句表达式)语句1; else 语句语句2 ; 例:例:If(xy) printf(“%d”,x); else printf(“%d”,y);语句执行流程: 表达式语句1真(非0)假(0)语句2. . .1.7忠信笃行忠信笃行 自强不息自强不息注意:if和else语句
4、之间只能有一个语句,当if-else之间的语句不只一句时,应用一对将语句括起。 例:if(ab) a+;b+; else a=0;b=10;3、if 语句的缺省形式:if () 其执行过程时:如果的值不为零,执行,否则什么也不执行,跳到if语句的下面,继续执行程序中的其它语句。. . .1.8忠信笃行忠信笃行 自强不息自强不息例:输入两个整数,输出其中较大的数。#include #include main()int x,y,max; scanf(%d,%d,&x,&y); if(xy) max=x; else max=y; printf(max=%dn,max); 输入x,yxymax=x输出
5、最大值结束真假max=y. . .1.9忠信笃行忠信笃行 自强不息自强不息4、多分支选择、多分支选择if语句语句 语句形式:语句形式: if (表达式表达式1)语句)语句1; else if (表达式表达式2)语句)语句2; else if (表达式表达式n)语句)语句n; else 语句语句n+1;. . .1.10忠信笃行忠信笃行 自强不息自强不息语句执行流程: 表达式1语句1语句2表达式2真(非0)表达式2语句n语句n+1假(0)假(0)假(0)真(非0). . .1.11忠信笃行忠信笃行 自强不息自强不息例:计算分段函数。假输入xX=1真X10y=3/(x-10)y=2xy=x+5假真
6、x5x1y2x1x103x10 x10 . . .1.12忠信笃行忠信笃行 自强不息自强不息#include main()float x,y; printf(enter x:); scanf( %f ,&x);if(x=10)printf(not define x.n); else if (x=1) y=x+5; else if(x=60n);break; default:printf(grade60);. . .1.21忠信笃行忠信笃行 自强不息自强不息 选择结构程序设计举例 例:将任意三个整数按从大到小的顺序输出。#include stdio.hmain()int x,y,z,t;scan
7、f(%d,%d,%d,&x,&y,&z);if(xy) t=x;x=y;y=t; /*交换x,y的值*/if(xz) t=x;x=z;z=t; /*交换x,z的值*/if(yz) t=y;y=z;z=t; /*交换y,z的值*/printf(%d,%d,%dn,x,y,z); . . .1.22忠信笃行忠信笃行 自强不息自强不息例:给一个不多于4位的正整数,求出它是几位数,逆序打印出各位数字。 #include stdio.hmain()int x,a,b,c,d; /*a,b,c,d代表千、百、十、个位*/scanf(%d,&x);a=x/1000;b=x%1000/100;c=x%100/
8、10;d=x%10; /*分解出千位、百位、十位、个位*/if(a!=0) printf(4:%d%d%d%dn,d,c,b,a);else if(b!=0) printf(3:%d%d%dn,d,c,b);else if(c!=0) printf(2:%d%dn,d,c);else if(d!=0) printf(1:%dn,d);. . .1.23忠信笃行忠信笃行 自强不息自强不息本章小结本章小结 选择结构分为单分支、双分支和多选择结构分为单分支、双分支和多分支三种情况。一般,采用分支三种情况。一般,采用if语句实现语句实现简单分支结构程序,用简单分支结构程序,用switch和和break语语句实现多分支结构程序。虽然用嵌套句实现多分支结构程序。虽然用嵌套if语句也能实现多分支结构程序,但有时语句也能实现多分支结构程序,但有时用用switch和和break语句实现的多分支结构语句实现的多分支结构,使程序更简洁明了,使程序更简洁明了. . .1.24忠信笃行忠信笃行 自强不息自强不息上机实验上机实验v任意给两个数任意给两个数x和和y,若,若x和和y非异号,求其算术平均非异号,求其算术平均数与几何平均数。数与几何平均数。v输入输入a,b,c三个整数,将绝对值最大者打印输出。三个整数,将绝对值最大者打印输出。. . .