具有选择结构的C程序设计ppt课件

上传人:枫** 文档编号:591569942 上传时间:2024-09-18 格式:PPT 页数:31 大小:304.50KB
返回 下载 相关 举报
具有选择结构的C程序设计ppt课件_第1页
第1页 / 共31页
具有选择结构的C程序设计ppt课件_第2页
第2页 / 共31页
具有选择结构的C程序设计ppt课件_第3页
第3页 / 共31页
具有选择结构的C程序设计ppt课件_第4页
第4页 / 共31页
具有选择结构的C程序设计ppt课件_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《具有选择结构的C程序设计ppt课件》由会员分享,可在线阅读,更多相关《具有选择结构的C程序设计ppt课件(31页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章第四章第四章 具有选择构造的具有选择构造的具有选择构造的具有选择构造的 C C C C 程序设计程序设计程序设计程序设计我们在前章所引见的简单我们在前章所引见的简单C C程序,是从程序构造的角度而言是简单的,所程序,是从程序构造的角度而言是简单的,所能处理的问题也是有限的但实践任务中,经常还会遇到能处理的问题也是有限的但实践任务中,经常还会遇到根据不同情况进展不同处置的问题,这就需求计算机要作根据不同情况进展不同处置的问题,这就需求计算机要作出判别和选择,而根据不同的条件来执行不同的程序段。在本出判别和选择,而根据不同的条件来执行不同的程序段。在本 章中,将引见几种能实现判别和选择

2、的语句以及怎样章中,将引见几种能实现判别和选择的语句以及怎样 利用这些语句来实现利用这些语句来实现 C C 的程序设计的程序设计第三章第三章 简单的简单的 C C 程序设计程序设计4.1 if 语句语句 if 语句是用来判别所给定的条件能否满足,根据断定的结果 (真或假)来决议执行给出的两种操作之一。语句格式语句格式1 : if ( if (表达式表达式表达式表达式) ) 语句;语句;语句;语句; 语句功能语句功能 : 根据表达式的结果来决议能否执行格式中的语句。根据表达式的结果来决议能否执行格式中的语句。 if if 语句的三种格式语句的三种格式 1、表达式可以是恣意表达式、表达式可以是恣意

3、表达式 2、语句只为一条语句,假设超越一条,那么采用复合语句、语句只为一条语句,假设超越一条,那么采用复合语句 3、当表达式的值为、当表达式的值为 非非0 时代表时代表“真;真;0 时代表时代表“假假语句格式语句格式2 : if ( if (表达式表达式表达式表达式) ) 语句语句语句语句1 1;else else 语句语句语句语句2 2; 语句功能语句功能 : 假设表达式的值为真即非假设表达式的值为真即非假设表达式的值为真即非假设表达式的值为真即非0 0那么执行那么执行那么执行那么执行语句语句语句语句1 1,否那么执行语句,否那么执行语句,否那么执行语句,否那么执行语句2 2。 # incl

4、ude “stdio.h main() int a, b ; scanf( “%d %dn, &a,&b) ; if (ab) printf(“a=%dn, a) ; else printf(“b=%dn, b); 语句语句语句语句1 1 1 1语句语句语句语句2 2 2 2 表达式?表达式?表达式?表达式?Y YN N 向计算机输入向计算机输入向计算机输入向计算机输入 a,b a,b a,b a,b 两个整数,然后判两个整数,然后判两个整数,然后判两个整数,然后判断断断断 ab ab ab ab , 假设假设假设假设 ab ab ab ab 那么输出那么输出那么输出那么输出 a a a a

5、的值。的值。的值。的值。 举例举例举例举例# include “stdio.h# include “stdio.h main() main() int a, b ; int a, b ; scanf( “%d %dn scanf( “%d %dn, &a,&b) ;, &a,&b) ; if (ab) printf(“a=%dn if (ab) printf(“a=%dn, a);, a); 关系表达式关系表达式输出函数调用语句输出函数调用语句语句格式语句格式3 : if ( if (表达式表达式表达式表达式1) 1) 语句语句语句语句1 1; else if ( else if (表达式表达

6、式表达式表达式2) 2) 语句语句语句语句2 2; else if ( else if (表达式表达式表达式表达式3) 3) 语句语句语句语句3 3; . . else else 语句语句语句语句n n; 语句功能语句功能 : (else if (else if 构造构造构造构造) ) 用于实现多分支情况的处置。即在多个分支用于实现多分支情况的处置。即在多个分支用于实现多分支情况的处置。即在多个分支用于实现多分支情况的处置。即在多个分支中仅执行表达式为非中仅执行表达式为非中仅执行表达式为非中仅执行表达式为非0 0值的那个值的那个值的那个值的那个if if下的语句;假设一切表达式都下的语句;假设

7、一切表达式都下的语句;假设一切表达式都下的语句;假设一切表达式都 是是是是 0 0 值,那么执行最后一个值,那么执行最后一个值,那么执行最后一个值,那么执行最后一个else else 下的语句。最后一个下的语句。最后一个下的语句。最后一个下的语句。最后一个 else else 及其及其及其及其 下面的语句也可以不存在。下面的语句也可以不存在。下面的语句也可以不存在。下面的语句也可以不存在。 # include “stdio.h main() int g ; scanf( “%d n, &g) ; if (a60) printf(“不及格 ) ; else if (g70) printf(“及格

8、 ); else if (g80) printf(“中 ); else if (g90) printf(“良 ); else if (g=100) printf(“优 ); else printf(“数据无效); x (x1) x (x1) y = 2x-1 (1 x10) y = 2x-1 (1 x10) 3x-11 ( x 10) 3x-11 ( x 10)# include “stdio.h main() int x; float y; scanf(“%dn,&x); if (x=1)&(x0)|(+j0) a+; printf(“i=%, j=%d, a=%dn,i, j, a); 2

9、0 smain() int a,b,c; a=10, b=50, c=30; if (ab)a=b, b=c; c=a; printf(“a=%d b=%d c=%dn,a, b, c); 21 A) a=10 b=50 c=10 B) a=10 b=30 c=10 C) a=50 b=30 c=10 D) a=50 b=30 c=50 3、main() int i= -1; if ( i 0) y= 1; else y= -1; else y= 0; printf(“x=%d,y=5.2fn,x,y); -1 ( x0 ) -1 ( x0 ) 1 ( x0 )# include “stdio

10、.hmain() int year, z; scanf(“%d, &year); if (year%4=0) if (year%100=0) if (year%400)=0) z=1; else z=0; else z=1; else z=0; if (z) printf(“%d, year); else printf( “ a leap yearn, year); main() int x,a,b,ok1,ok2; x=100; a=10; b=20; ok1=5; ok2=0; if (ab) if (b!=15) if ( !ok1) x=1; printf( “x=%dn,x); el

11、se if (ok2) x=10; x= -1; printf(“x=%dn,x); 写出以下程序的运转结果写出以下程序的运转结果写出以下程序的运转结果写出以下程序的运转结果 请请 A) 0.000000 B) 0.250000 C) 0.500000 D) 1.0000002.0 C) 0.500000 main() float x,y; scanf(“%f,&x); if (a0.0) y=0.0; else if (x5.0)&(x!=2.0) y=1.0/(x+2.0); else if ( x10.0) y=1.0/x; else y=10.0; printf(“ %fn,y); (

12、96)25 A) 34 B) 4 C) 35 D) 3 B) 4 main() int a,b,c,x; a=b=c=0; x=35; if (!a) x-; else if (b); if (c) x=3; else x=4; printf(“ %dn,x); (98.4)26 在书店买书 ,以100本为限。假设买 1 本不打折扣 ;买2本打折10%; 买3本折扣为 15 %买3本以上折扣为 20 %。 设书本数为 x,单价为 20.00元。 请设计能实现该算法的C程序。274.2 switch 语句语句 前面我们学习了前面我们学习了if if 语句,它的根本功能是实现语句,它的根本功能是实

13、现两个分支选择,但在处理实践问题时,往往需求用两个分支选择,但在处理实践问题时,往往需求用到多分支的选择。虽然到多分支的选择。虽然if if 语句的规那么嵌套可以实现语句的规那么嵌套可以实现多分支的选择,但不够直观简约,特别是在分支较多分支的选择,但不够直观简约,特别是在分支较多的情况下,多的情况下,if if 语句的嵌套层次也会更深,从而增语句的嵌套层次也会更深,从而增加了了解的难度,也不便于修正和扩展。加了了解的难度,也不便于修正和扩展。 为此,为此,C C 言语还提供了一个用于实现多分支选言语还提供了一个用于实现多分支选择的择的 switch switch 语句,以来处理多分支选择问题。

14、语句,以来处理多分支选择问题。 语句格式语句格式 : switch( switch(表达式表达式表达式表达式) ) case case 常量表达式常量表达式常量表达式常量表达式1 : 1 : 语句组语句组语句组语句组1 ; break ;1 ; break ; case case 常量表达式常量表达式常量表达式常量表达式2 : 2 : 语句组语句组语句组语句组2 ; break ;2 ; break ; case case 常量表达式常量表达式常量表达式常量表达式n : n : 语句组语句组语句组语句组n ; break ;n ; break ; default : default : 语句组

15、语句组语句组语句组n+1 ;n+1 ; 语句格式语句格式 :语句阐明语句阐明 : 首先 计算表达式的值,然后依次与每一个 case 中常量表达式的值进展比较,一旦发现了某个匹配的值,就执行该 case 后面的语句组直到执行了break 语句为止。 假设没有匹配的值那么执行 default 后面的语句组。 请编写程序,根据输入的学生成果,应给出相应的等级。 即 : 90 - 100 A 80 - 89 B 70 - 79 C 60 - 69 D 0 - 60 E main() int g; scanf(“%dn, &g) ; switch(g/10) case 10: case 9 : prin

16、tf(“An); break; case 8 : printf(“Bn); break; case 7 : printf(“Cn); break; case 6 : printf(“Dn); break; default : printf(“En); switch( switch(表达式表达式表达式表达式) ) case case 常量表达式常量表达式常量表达式常量表达式1 : 1 : 语句组语句组语句组语句组1 ; break ;1 ; break ; case case 常量表达式常量表达式常量表达式常量表达式2 : 2 : 语句组语句组语句组语句组2 ; break ;2 ; break

17、 ; case case 常量表达式常量表达式常量表达式常量表达式n : n : 语句组语句组语句组语句组n ; break ;n ; break ; default : default : 语句组语句组语句组语句组n+1 ;n+1 ; 1 1、表达式、表达式、表达式、表达式: : 可以是整型、字符型或枚举型等表达可以是整型、字符型或枚举型等表达可以是整型、字符型或枚举型等表达可以是整型、字符型或枚举型等表达 式,其表达式的结果值一定为整数。式,其表达式的结果值一定为整数。式,其表达式的结果值一定为整数。式,其表达式的结果值一定为整数。 2 2、常量表达式、常量表达式、常量表达式、常量表达式:

18、 : 可以是整数、字符等常量。可以是整数、字符等常量。可以是整数、字符等常量。可以是整数、字符等常量。 3 3、语句组、语句组、语句组、语句组: : 可以由一条语句或复合语句构成可以由一条语句或复合语句构成可以由一条语句或复合语句构成可以由一条语句或复合语句构成 4 4、要求、要求、要求、要求 switch switch 后面的表达式值的类型必需面后面的表达式值的类型必需面后面的表达式值的类型必需面后面的表达式值的类型必需面 case case 的常量表达式的类型要一样。的常量表达式的类型要一样。的常量表达式的类型要一样。的常量表达式的类型要一样。 请您选择进制转换菜单 1、10进制转换为16

19、进制 2、16进制转换为10进制 3、10进制转换为 8进制 4、8进制转换为10进制请输入您的选择:再输入转换数据: 请编写一个数制转换程序,要求能进展如下的数制转换请编写一个数制转换程序,要求能进展如下的数制转换 10 10 进制转换为进制转换为16 16 进制进制; 16 ; 16 进制转换为进制转换为10 10 进制进制; ; 10 10 进制转换为进制转换为 8 8 进制进制; 8 ; 8 进制转换为进制转换为10 10 进制进制; ; main() int num, data ; printf(“n 1:10 -16n); printf(“2: 16 - 10 n); printf

20、(“n 3:10 - 8 n); printf(“2: 8 - 10 n); printf(“n 请输入您的选择请输入您的选择 n); scanf(“%d n, &num) ; switch(num) case 1 : scanf(“% d,&data); printf(“%d,%x, data,data); break; case 2 : scanf(“% x,&data); printf(“%x,%d, data,data); break; case 3 : scanf(“% d,&data); printf(“%d,%o, data,data); break; case 4 : scan

21、f(“% o,&data); printf(“%o,%d, data,data); break; default : printf(“数据有误数据有误n); 请您选择进制转换菜单 1、10进制转换为16进制 2、16进制转换为10进制 3、10进制转换为 8进制 4、8进制转换为10进制请输入您的选择:再输入转换数据: main() main() float x,y; char op; float x,y; char op; scanf(“%f,%c,%f scanf(“%f,%c,%f,&x,&op,&y); ,&x,&op,&y); switch(op) switch(op) case c

22、ase : printf(“% .2f %c % .2f=% .4fn: printf(“% .2f %c % .2f=% .4fn,x,op,y,x+y); break;,x,op,y,x+y); break; case case : printf(“% .2f %c % .2f=% .4fn: printf(“% .2f %c % .2f=% .4fn,x,op,y,x-y); break;,x,op,y,x-y); break; case case : printf(“% .2f %c % .2f=% .4fn: printf(“% .2f %c % .2f=% .4fn,x,op,y,

23、x*y); break;,x,op,y,x*y); break; case / : if(y=0) printf(“ case / : if(y=0) printf(“数据错误!数据错误!n n); ); else printf(“% .2f %c % .2f=% .4fn else printf(“% .2f %c % .2f=% .4fn,x,op, y,x/y);,x,op, y,x/y); 请编制一个能完成两个数的四那么运算程序输入数值保管两位小数。第四章第四章 具有选择构造的具有选择构造的 C C 程序设计程序设计 main() int year, z; scanf(“%d,&yea

24、r); if (year % 4 = = 0) if (year % 100 = = 0) if (year % 400 = = 0) z=1; elae z=0; else z=1; else z=0; if (z) printf(“%d is ,year); elae printf(“%d is not,year); 请编制一个用于判别某一年能否是闰年的程序。 29第四章第四章 具有选择构造的具有选择构造的 C C 程序设计程序设计 有一函数 x (-5x0) y = x-1 (x=0) x+1 (0x10) 请编写一程序,请编写一程序,请编写一程序,请编写一程序, 要求输入要求输入要求输

25、入要求输入 x x 的的的的值,输出值,输出值,输出值,输出y y的值,分别利用:的值,分别利用:的值,分别利用:的值,分别利用: 1 1、不嵌套的、不嵌套的、不嵌套的、不嵌套的 if if 语句语句语句语句2 2、嵌套的、嵌套的、嵌套的、嵌套的 if if 语句语句语句语句 3 3、if else if else 语句语句语句语句 4 4、switch switch 语句语句语句语句 输入一个整数输入一个整数输入一个整数输入一个整数x x, 然后判别该然后判别该然后判别该然后判别该 数能否为偶数,假设是请打印输出,数能否为偶数,假设是请打印输出,数能否为偶数,假设是请打印输出,数能否为偶数,

26、假设是请打印输出, 否那么不打印。否那么不打印。否那么不打印。否那么不打印。 请编写程序。请编写程序。请编写程序。请编写程序。1 请将以下语句改写成请将以下语句改写成请将以下语句改写成请将以下语句改写成 switch switch 语句语句语句语句 if (a30) m=1; if (a30) m=1; else if (a40) m=2; else if (a40) m=2; else if (a50) m=3; else if (a50) m=3; else if (a60) m=4; else if (a60) m=4; else m=5; else m=5; 2 main() int

27、u=010,v=0x10,w=10 ; printf(“%d,%d,%dn, u,v,w) ; A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,103 main() main() char c1=b,c2=e; char c1=b,c2=e; printf(“%d,%cn printf(“%d,%cn, c2-c1,c2-a+A);, c2-c1,c2-a+A); A) 2, M B) 3, E A) 2, M B) 3, E C) 2, E D) C) 2, E D) 输出结果不确定输出结果不确定输出结果不确定输出结果不确定5 main() main() i

28、nt k=11; int k=11; printf(“k=%d,k=%o,c=%xn printf(“k=%d,k=%o,c=%xn, k,k,k);, k,k,k); A) k=11,k=12,k=11 B) k=11,k=13,k=13 A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0xb D) k=11,k=13,k=b C) k=11,k=013,k=0xb D) k=11,k=13,k=b4 main() (一) int a; float b,c; scanf(“%2d %3f %4f ,&a,&b,&c); printf(“ na=%d,b=%f,c=%fn, a,b,c); 假设运转时从键盘输入9876543210,那么上面程序输出结果是 A) a=98,b=765,c=4321 B) a=10,b=432,c=8765 C) a=98,b=765.000000,c=4321.000000 D) a=98,b=765.0,c=4321.0 4

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号