具有选择结构的C程序设计.ppt_第1页
具有选择结构的C程序设计.ppt_第2页
具有选择结构的C程序设计.ppt_第3页
具有选择结构的C程序设计.ppt_第4页
具有选择结构的C程序设计.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章 具有选择结构的 C 程序设计,第三章 简单的 C 程序设计,4.1 if 语句,if 语句是用来判断所给定的条件是否满足,根 据判定的结果 (真或假)来决定执行给出的两种操作 之一,语句格式1,if (表达式) 语句,语句功能,根据表达式的结果来决定是否执行格式中的语句,if 语句的三种格式,1、表达式可以是任意表达式,2、语句只为一条语句,若超过一条,则采用复合语句,3、当表达式的值为 非0 时代表“真”;0 时代表“假,语句格式2,if (表达式) 语句1; else 语句2,语句功能,如果表达式的值为真(即非0)则执行 语句1,否则执行语句2, include “stdio.h”

2、 main() int a, b ; scanf( “%d %dn”,向计算机输入 a,b 两个整数,然后判 断 ab , 若 ab 则输出 a 的值,举例, include “stdio.h” main() int a, b ; scanf( “%d %dn”,关系表达式,输出函数调用语句,语句格式3,if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; . else 语句n,语句功能,else if 结构) 用于实现多分支情况的处理。即在多个分支 中仅执行表达式为非0值的那个if下的语句;若所有表达式都 是 0 值,则执行最后一个el

3、se 下的语句。最后一个 else 及其 下面的语句也可以不存在, include “stdio.h” main() int g ; scanf( “%d n”,练习, include “stdio.h” main() int x; float y; scanf(“%dn”,A) i=0, j=0, a=6 B) i=1, j=1, a=7 C) i=1, j=0, a=7 D) i=0, j=1, a=0,练习,写出下列程序的运行结果,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,A) * *

4、* * B) % % % % C) % % % %c D) 有语法错误,不能正确执行,A) i=2, j=1, k=3 B) i=1, j=1, k=2 C) i=4, j=2, k=4 D) i=1, j=1, k=3,语句格式4,语句说明,if 语句任意嵌套形式 (即嵌套的位置是任意,不固定的。,注意: 在多个 if-else 嵌套中, else-if 配对关系 不能弄错。 一个 else 应与它最近的一个且没 有其它 else 配对的 if 组成配对关系,main() int x; float y; scanf(“%dn”,练习, include “stdio.h” main() int

5、 year, z; scanf(“%d”,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); else if (ok2) x=10; x= -1; printf(“x=%dn”,x);,作业,A) 0.000000 B) 0.250000 C) 0.500000 D) 1.000000,2.0,

6、C) 0.500000,作业,A) 34 B) 4 C) 35 D) 3,B) 4,在书店买书 ,以100本为限。如果买 1 本 不打折扣 ;买2本打折10%; 买3本折扣为 15 % 买3本以上折扣为 20 %。 设书本数为 x,单价为 20.00元。 请设计能实现该算法的C程序,作业,27,4.2 switch 语句,前面我们学习了if 语句,它的基本功能是实现 两个分支选择,但在解决实际问题时,往往需要用 到多分支的选择。虽然if 语句的规则嵌套可以实现 多分支的选择,但不够直观简洁,特别是在分支较 多的情况下,if 语句的嵌套层次也会更深,从而增 加了理解的难度,也不便于修改和扩充。

7、为此,C 语言还提供了一个用于实现多分支选 择的 switch 语句,以来解决多分支选择问题,语句格式,switch(表达式) case 常量表达式1 : 语句组1 ; break ; case 常量表达式2 : 语句组2 ; break ; case 常量表达式n : 语句组n ; break ; default : 语句组n+1 ;,语句格式,语句说明,首先 计算表达式的值,然后依次与每一个 case 中常量表达式的值进行比较,一旦发现了 某个匹配的值,就执行该 case 后面的语句组直 到执行了break 语句为止。 若没有匹配的值则 执行 default 后面的语句组,请编写程序,根据

8、 输入的学生成绩,应 给出相应的等级。 即 : 90 - 100 A 80 - 89 B 70 - 79 C 60 - 69 D 0 - 60 E,main() int g; scanf(“%dn”,switch(表达式) case 常量表达式1 : 语句组1 ; break ; case 常量表达式2 : 语句组2 ; break ; case 常量表达式n : 语句组n ; break ; default : 语句组n+1 ;,1、表达式: 可以是整型、字符型或枚举型等表达 式,其表达式的结果值一定为整数。 2、常量表达式: 可以是整数、字符等常量。 3、语句组: 可以由一条语句或复合语句

9、构成 4、要求 switch 后面的表达式值的类型必须面 case 的常量表达式的类型要相同,请您选择进制转换菜单 1、10进制转换为16进制 2、16进制转换为10进制 3、10进制转换为 8进制 4、8进制转换为10进制 请输入您的选择: 再输入转换数据,举例,请编写一个数制转换程序,要求能进行如下的数制转换 10 进制转换为16 进制; 16 进制转换为10 进制; 10 进制转换为 8 进制; 8 进制转换为10 进制,main() int num, data ; printf(“n 1:10 -16n”); printf(“2: 16 - 10 n”); printf(“n 3:10

10、 - 8 n”); printf(“2: 8 - 10 n”); printf(“n 请输入您的选择 n”); scanf(“%d n”,请您选择进制转换菜单 1、10进制转换为16进制 2、16进制转换为10进制 3、10进制转换为 8进制 4、8进制转换为10进制 请输入您的选择: 再输入转换数据,main() float x,y; char op; scanf(“%f,%c,%f”,请编制一个能完成两个数的四则 运算程序(输入数值保留两位小数,第四章 具有选择结构的 C 程序设计,练习,main() int year, z; scanf(“%d”,第四章 具有选择结构的 C 程序设计,请

11、编写一程序, 要求输入 x 的 值,输出y的值,分别利用: 1、不嵌套的 if 语句 2、嵌套的 if 语句 3、if else 语句 4、switch 语句,输入一个整数x, 然后判断该 数是否为偶数,若是请打印输出, 否则不打印。 请编写程序,作业,1,请将以下语句改写成 switch 语句 if (a30) m=1; else if (a40) m=2; else if (a50) m=3; else if (a60) m=4; else m=5,2,main() int u=010,v=0 x10,w=10 ; printf(“%d,%d,%dn”, u,v,w) ; A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10,3,main() char c1=b,c2=e; printf(“%d,%cn”, c2-c1,c2-a+A); A) 2, M B) 3, E C) 2, E D) 输出结果不确定,5,main() int k=11; printf(“k=%d,k=%o,c=%xn”, k,k,k); A) k=11,k=12,k=11 B) k=11,k=13,k=13 C) k=11,k=013,k=0 xb D) k=11,k=13,k=b,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论