教学课件C语言程序设计第4章 结构控制语句 .ppt
PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件C语言程序设计第4章 结构控制语句 2022-7-9大连理工大学出版社大连理工大学出版社2022-7-92022-7-92022-7-92022-7-92022-7-92022-7-92022-7-92022-7-92022-7-9 main( ) int a,b; a=b=100; float c=10.23; printf(%fn,c); printf(%d %dn,a,b); 2022-7-92022-7-92022-7-92022-7-9N-S结结构构图图流流程程图图ABABY(真真)N(假假)ABP成立成立? P T F A B2022-7-9N(假)(假)Y(真真)P成立成立?A当当P成立时成立时 A A当P成立时Y(真真)N(假假)AP成立成立?N-S结结构构图图流流程程图图2022-7-9简单分支语句简单分支语句双分支语句双分支语句If语句的嵌套语句的嵌套2022-7-9语句语句1流程图流程图NY表达式非表达式非0?2022-7-9 语句语句1 语句语句2流程图流程图NY表 达 式 非表 达 式 非 0?2022-7-92022-7-92022-7-9程序运行情况:程序运行情况:x=5 y=9 9,5x=9 y=5 9,5对比思路二对比思路二2022-7-92022-7-9程序运行情况:程序运行情况:x=5 y=9 9,5x=9 y=5 9,5对比思路三对比思路三2022-7-92022-7-9程序运行情况:程序运行情况:x=5 y=9 9,5x=9 y=5 9,5对比思路一对比思路一对比思路二对比思路二2022-7-92022-7-9If嵌套嵌套If嵌套嵌套2022-7-92022-7-9If语句语句多重多重嵌套嵌套2022-7-9例例4.4 输入任意一个整数输入任意一个整数x,判断该数的正负,判断该数的正负,如果如果x=0,则输出,则输出0 。 运行结果:运行结果: x=5 x的符号为:的符号为:+void main() int x; printf(“x=”); scanf(“%d”,&x); if(x0) printf(“x的符号为:的符号为:+”); else if(xy) if(xz) max=x; else max=z;else if(yz) max=y; else max=z;printf(“the max is:%d”,max); 例例4.5由键盘输入三个整数由键盘输入三个整数x,y,z,求其最大者求其最大者 。2022-7-92022-7-92022-7-9switch (a) case 5: printf(&); case 2: printf(#); default:printf($); 当当a等于等于5,输出:,输出:当当a等于等于2,输出:,输出:当当a是其他值,输出:是其他值,输出:break;break; break;当当a等于等于5,输出:,输出:当当a等于等于2,输出:,输出:当当a是其他值,输出:是其他值,输出:switch (a) case 5: printf(&); case 2: printf(#); default:printf($); 2022-7-92022-7-9 void main() int a=7; switch(a) case 1: case 2: printf(“A”); case 3: printf(“B”); default: printf(“E”); printf(“F”); case 4: printf(“C”); printf(“H”); case 5: printf(“D”); printf(“33”); 运行结果:运行结果: EFCHD33 例例break;2022-7-9 void main() int score,n; printf(“score=”); scanf(“%d”,&score); n=score/10; switch(n) case 10: case 9: printf(“成绩为成绩为A等等”); break; case 8: printf(“成绩为成绩为B等等”); break; case 7: printf(“成绩为成绩为C等等”); break; case 6: printf(“成绩为成绩为D等等”); break; default: printf(“不及格,不及格,E等等”); 运行结果:运行结果: score=82 成绩为成绩为B等等 例例4.6 P872022-7-9 void main() char ch; printf(“请输入一小写字母:请输入一小写字母:”); scanf(“%c”,&ch); switch(ch) case a: case e: case i: case o: case u: printf(“字母字母%c是元音是元音”,ch); break; default: printf(“字母字母%c是辅音是辅音”,ch); 运行结果:运行结果: 请输入一小写字母:请输入一小写字母: i 字母字母i是元音是元音 例例4.7 任意输入一个字母,判断是元音还是辅音。任意输入一个字母,判断是元音还是辅音。2022-7-9有以下程序有以下程序 void main() int i=1,j=1,k=2; if(j+|k+)&i+) printf(%d,%d,%dn,i,j,k); 执行后输出的结果是执行后输出的结果是 A)1,1,2 B) 2,2,1 C) 2,2,2 D) 2,2,3 答案:答案: 练习题()练习题()2022-7-9有以下程序有以下程序 void main() int m=5; if(m+5) printf(“%dn”,m); else printf(“%dn”,m-); 执行后输出的结果是执行后输出的结果是 A) 4 B) 5 C) 6 D) 7 答案:答案: 练习题()练习题()2022-7-9语句语句printf(“%d”,(a=2)&(b=-2);的输的输出结果是()。出结果是()。 答案:答案: 练习题()练习题()2022-7-9 有定义语句:有定义语句:int a=1,b=2,c=3,x; 则以下选项则以下选项中各程序段执行后,中各程序段执行后,x的值不为的值不为 3 的是:的是: .if(ca) x=1; B. if(a3) x=3; else if(ba) x=2; else if(a2) x=2; else x=3; else x=1; C.if(a3) x=3; D.if(ab)x=b; if(a2) x=2; if(bb?(bc?1:0):0; 功能等价的是()功能等价的是() A) if(ab)&(bc) k=1; else k=0;B) if(ab)|(bc) k=1; else k=0; 答案:答案: A练习题()练习题()C) if(a=b) k=0; else if(bb) k=1; else if(bc) k=1;2022-7-9有以下程序有以下程序main()int a=3,b=4,c=5,d=2; if(ab) if(bc)printf(%d,d+1); elseprintf(%d,+d+1); printf(%dn,d);运行后的输出结果是运行后的输出结果是 :A) 2 B) 3 C) 43 D) 44 答案:答案: A练习题()练习题()2022-7-9 main( ) int x=0,y=5,z=3; while(z-0&+x5) y=y-1; printf(“%d,%d,%dn”,x,y,z); 程序执行后的输出结果是()程序执行后的输出结果是()A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-5 答案:答案: B 练习题(练习题(8)2022-7-9main() int s=0,a=1,n; scanf(%d,&n); do s+=1; a=a-2; while(a!=n); printf(%dn,s); 若要使程序的输出值为若要使程序的输出值为2,则应该从键盘给,则应该从键盘给n输入的值是输入的值是 A)-1 B)-3 C)-5 D)0 答案:答案: B练习题(练习题(9)2022-7-92022-7-92022-7-9加数加数 从从1变到变到100,每循环一次,使,每循环一次,使i增增1,直到直到i的值超过的值超过100。 的的设为设为1。求和求和设变量设变量 存放和存放和,循环求,循环求,直至,直至i超过超过100。 思路:寻找思路:寻找加数加数与与求和求和的规律的规律 加数加数 从从1变到变到100,每循环一次,使,每循环一次,使i增增1,直到直到i的值超过的值超过100。 的的设为设为1。求和求和设变量设变量 存放和存放和,循环求,循环求,直至,直至i超过超过100。 2022-7-9 void main() int i,sum; sum=0; i=1; loop: if(i=100) sum+=i; i+; goto loop; printf(“1至至100的累加和为:的累加和为:%d”,sum); 运行结果:运行结果: 1至至100的累加和为:的累加和为:5050 例例4.8 用用goto语句和语句和if语句相结合,求语句相结合,求1+2+3 +99+100的和。的和。2022-7-92022-7-9表达式非表达式非0?语句语句2022-7-9int i=1,sum=0; while (i=2) i+; sum=sum+i; 2022-7-9 void main() int i=1,sum=0; while(i=100) sum+=i; i+; printf(“1至至100的累加和为:的累加和为:%d”,sum); 运行结果:运行结果: 1至至100的累加和为:的累加和为:5050 例例4.9 用用while循环语句编写程序,求循环语句编写程序,求1+2+3+99+100的和。的和。2022-7-92022-7-9 void main() int n1,n2,t; printf(“输入两个正整数输入两个正整数:n”); scanf(“%d%d”,&n1,&n2); if(n1n2) /*n1存最大值存最大值 t=n1;n2存最小值存最小值*/ n1=n2; n2=t; 例例4.10 求两个正整数求两个正整数n1和和n2的最大公约数。的最大公约数。/*以下通过辗转相除法以下通过辗转相除法求两数的最大公约数求两数的最大公约数*/While(n2!=0) t=n1%n2; n1=n2; n2=t;printf(“它们的最大公它们的最大公约数为:约数为:%dn”,n1);2022-7-9NY循环体循环体表达式非表达式非0?流程图流程图2022-7-9 运行结果:运行结果: 5050 2022-7-92022-7-92022-7-9程序第一次运行:程序第一次运行:i=50i=50sum=3825sum=3825程序第二次运行:程序第二次运行:i=101i=101sum=101sum=1012022-7-9程序运行结果如下:程序运行结果如下:请输入请输入n n的值:的值:99sum=0.745635sum=0.7456352022-7-92022-7-9NY流程图流程图计算表达式计算表达式1 循环体循环体计算表达式计算表达式3表达式表达式2为真为真?例例4.14 用用for循环语句,实现求循环语句,实现求sum的值,其中的值,其中sum=1+2+3+100的和。的和。2022-7-92022-7-92022-7-92022-7-92022-7-92022-7-92022-7-92022-7-92022-7-9运行结果如下:运行结果如下:1-100之间能被之间能被7整除的数是:整除的数是:7 14 21 28 35 42 49 56 63 70 77 84 91 98 2022-7-92022-7-92022-7-9运行结果如下:运行结果如下:在在100-200之间能同时被之间能同时被6和和9整除的最小数整除的最小数是:是:1082022-7-9运行结果如下:运行结果如下:能同时被能同时被6和和9整除的最小正整数是:整除的最小正整数是:182022-7-92022-7-9外循环语句外循环语句内循环语句内循环语句2022-7-92022-7-92022-7-92022-7-9void main() int i,j; for(i=1;i=4;i+) for(j=1;j=6;j+) printf(* ); printf(n); 2022-7-9程序运行结果如下:程序运行结果如下:3-100之间的素数:之间的素数:3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 2022-7-92022-7-92022-7-9。2022-7-9月份月份234562022-7-92022-7-92022-7-92022-7-92022-7-92022-7-92022-7-9