《第3章C语言 分支结构PPT课件.ppt》由会员分享,可在线阅读,更多相关《第3章C语言 分支结构PPT课件.ppt(36页珍藏版)》请在人人文库网上搜索。
1、第三章 分支结构程序设计,关系运算符和关系表达式 逻辑运算符和逻辑表达式 if 语句 switch语句 条件表达式,1,关系运算符及其优先次序 1. C语言的6种关系运算符 = = = !=,2. 优先次序 = (同级) = = != (同级),高,低,3.1 关系运算符和关系表达式,2,例: 1) a+bc 2) a*a+b*b=c*c 3) n%3!=0 4) a b,高,低,二. 关系表达式,算术运算符 关系运算符 赋值运算符,3,关系表达式成立时, 其值为1(真) 关系表达式不成立时, 其值为0(假) 例:若a=3,b=2,c=1 则以下表达式的值是? 1)ab 2)(ab)=c 3)。
2、b+cb,2关系表达式的值,4,1. C语言的三种逻辑运算符 else printf(“%d”,y);,3.3 if 语句,8,void main( ) float a; scanf(%f, ,a0,Y,N,输出a,空,例1输入一个数,若大于零则输出。,9,练习1:判断一个数是否偶数,if (n%2=0) printf(“%d是偶数。n”, n); else printf(“%d不是偶数。n”, n);,练习2:判断一个字符是否小写字母,如果是,则输出。不是则不输出。,if (ch=a,10,void main( ) float a,b,t; scanf(%f,%f , ,方法1:,例2输入两。
3、个实数,按由小到大次序输出。,11,方法2:,void main( ) float a,b; scanf(%f,%f, ,12,例3 输入一个公元年号,判断是否闰年,#include “stdio.h” void main() int year; printf(“请输入一个年号:“); scanf(“%d”, ,13,练习3:编写程序输入一个整数,求它的绝对值,void main() int a, abs; printf(“输入一个整数:”); scanf(“%d”, ,14,练习4,输入三边长,判断能否组成三角形,void main() float a,b,c; printf(“请输入三边的。
4、长:”); scanf(“%f%f%f”,15,上机编程题目,从键盘输入一个字符,如果是大写字母,将其转换为小写字母输出。 从键盘输入一个整数,判断是否能被3整除但不能被5整除。 输入三个数,求出最大值。,16,if ( 表达式1 ) if ( 表达式2) 语句1; else 语句2; else if ( 表达式3 ) 语句3; else 语句4; 说明:应注意 if 与 else 的对应关系,else总是与它上面最近的 if 配对,若if与 else 的数目不一致,可以加 来确定配对关系。,内嵌 if 语句,内嵌 if 语句,二. if语句的嵌套,17,例:if 与 else 的对应关系,m。
5、ain() int a=2,b=-1,c=2; if(ab) if(b0) c=0; else c+=1; printf(“%dn”,c); ,输出结果是?,2, if(b0) c=0;,3,18,main( ) int x,y; scanf(%d, ,19,if (x0) y= -1; else if (x= =0) y=0; else y=1;,y= -1; if (x!=0) if (x0) y=1; else y=0;,y=0; if (x=0) if (x0) y=1; else y= -1;,20,1. 一般形式:表达式 1 ? 表达式 2 : 表达式 3 2. 执行过程:如果表达。
6、式1为真,则条件表达式取表达式2的值,否则取表达式3的值。,if (ab) max=a; else max=b;,max=(ab)?a:b;,三、条件表达式,取表达式 2 的值,表达式1,取表达式 3 的值,非0,0,21, 说明: 优先级别,例如: x=a0?a:-a; g=a90?a:a+5;,22,例6:输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母,如果不是,不转换。然后输出最后得到的字符。,main( ) char ch; printf(“请输入一个英文字母:”); ch=getchar( ); ch=(ch=A ,23,一一般形式: switch (表达式) cas。
7、e 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default: 语句n+1 ,3.3 switch语句,24,Switch应用举例,switch(grade) case A: printf(“90100n”); case B: printf(“8089n”); case C: printf(“7079n”); case D: printf(“6069n”); case E: printf(“60n”); default: printf(“ERROR!N”); ,25,switch(grade) case A : printf(85100n); cas。
8、e B : printf(7084n); case C : printf(6069n); case D : printf(60n); default : printf(errorn); ,break;,break;,break;,break;,break语句可以使流程跳出switch结构,继续执行switch语句下面的语句,若grade=A , 则输出结果为:85100,26,多个case可以共用一组执行语句。如: case A : case B : case C :printf(60n);,执行完一个case 后面的语句后,程序控制转移到下一个case 继续执行。,27,例6: 给一百分制成。
9、绩,要求输出成绩等级A,B,C,D,E。90分以上为A ,80-89分为B,70-79分为C,60-69分为D,60分以下为E。,#include main( ) float score; scanf(%f,switch (int)score/10) case 10: case 9 : printf(An); break; case 8 : printf(Bn); break; case 7: printf(Cn); break; case 6: printf(Dn); break; default: printf(En); ,28,以下程序的运行结果是? #include void main。
10、() int i,m=0,n=0;k=0; for(i=9;i=11;i+) switch(i%10) case 0: m+; n+; break; case 1: n+; break; default: k+; n+; printf(“%d %d %dn”,m,n,k); ,练习1:,29,练习2:,scanf(“%d”, ,输入1 2 3 4 5 0 回车, 则输出结果是?,30,例7任给三角形的三边,判断该三角形是等边、等腰、直角或一般。,#include void main( ) int a,b,c; scanf(%d%d%d, ,31,习题:输入一个不超过5位的正整数,判断它是几位数。
11、,并分别输出它的每位数字。,main( ) int n,num,d,t,h,th,t_th; printf(input a number 199999:n); scanf(%d,32,t_th=n/10000; th=n%10000/1000; h=n%1000/100; t=n%100/10; d=n%10; printf(每位数字分别是:);,33,switch(num) case 1: printf(%dn,d); break; case 2: printf(%d,%dn,t,d); break; case 3: printf(%d,%d,%dn,h,t,d); break; case 4: printf(%d,%d,%d,%dn,th,h,t,d); break; case 5: printf(%d,%d,%d,%d,%dn,t_th,th,h,t,d); ,34,上机编程题,1.求下列分段函数的值(输入x的值) x (x1) y= 2x-1 (1x10) 3x-11 (x10),35,2.输入4个数,按照由小到大的顺序排序输出。 3.输入一个不多于5位的正整数,求出它是几位数,并输出各位数字。,36。