C语言程序设计(第二版) 教学课件 ppt 作者 王宏志,韩志明主编 C语言程序设计4

上传人:E**** 文档编号:89383683 上传时间:2019-05-24 格式:PPT 页数:35 大小:163.50KB
返回 下载 相关 举报
C语言程序设计(第二版)  教学课件 ppt 作者 王宏志,韩志明主编 C语言程序设计4_第1页
第1页 / 共35页
C语言程序设计(第二版)  教学课件 ppt 作者 王宏志,韩志明主编 C语言程序设计4_第2页
第2页 / 共35页
C语言程序设计(第二版)  教学课件 ppt 作者 王宏志,韩志明主编 C语言程序设计4_第3页
第3页 / 共35页
C语言程序设计(第二版)  教学课件 ppt 作者 王宏志,韩志明主编 C语言程序设计4_第4页
第4页 / 共35页
C语言程序设计(第二版)  教学课件 ppt 作者 王宏志,韩志明主编 C语言程序设计4_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C语言程序设计(第二版) 教学课件 ppt 作者 王宏志,韩志明主编 C语言程序设计4》由会员分享,可在线阅读,更多相关《C语言程序设计(第二版) 教学课件 ppt 作者 王宏志,韩志明主编 C语言程序设计4(35页珍藏版)》请在金锄头文库上搜索。

1、选择结构的程序设计,第四章,C语言程序设计,2019/5/24,C语言程序设计-第四章,2,4.1 条件选择结构 4.2 条件分支的嵌套 4.3 开关选择结构 4.4 无条件选择结构,第4章 选择结构的程序设计,2019/5/24,C语言程序设计-第四章,3,4.1 条件选择结构,4.1.1 if 语句 4.1.2 无条件选择结构,2019/5/24,C语言程序设计-第四章,4,4.1.1 if 语句 1.if语句的简单形式 if语句的简单形式有时也称单选择结构,它的形式是: if (表达式) 语句 它的流程图见图 4.1。 if语句用来判断给定的条件是否满足,根据结果(真或假)来选择执行相应

2、的操作。它的 执行过程是,如果表达式为真(非0),则执行其后所跟的语句,否则不执行该语句。这里的语句可以是一条语句,也可以是复合语句。,2019/5/24,C语言程序设计-第四章,5,2019/5/24,C语言程序设计-第四章,6,【 例 4.1 】 求一个整数的绝对值。 main() int n; printf(“input a number: “); scanf(“%d“, 运行输入: Input a number: -5 运行结果: The absolute value is 5,2019/5/24,C语言程序设计-第四章,7,2.if-else结构 if-else型分支有时也称双选择结

3、构,它的形式是: if(表达式) 语句1 else 语句2 它的流程图见图 4.2 。 它的执行过程是,如果表达式的值为真(非0),就执行语句1,否则执行语句2。这里的语句1和语句2可以是一条语句,也可以是复合语句。,2019/5/24,C语言程序设计-第四章,8,2019/5/24,C语言程序设计-第四章,9,说明: (1)if后面的表达式不限于是关系表达式或逻辑表达式,可以是任意表达式。 (2)if语句中的控制表达式应该用括号括起来,如果有else子句,则控制表达式后的语句同样必须用分号结束,例如: if(ij) j+; else i+; 但是分号也不能随意乱用,如果写成: if(ij)

4、; j+; else i+; 使if语句后面跟了一个空语句而使语句“else i+;”变得不合法。,2019/5/24,C语言程序设计-第四章,10,(3)若if子句或else子句由多个语句构成,则应该构成复合语句,如: if(ij) j+;k+; else i+;k+; 也可以简单写成: if(ij) j+,k+; else i+,k+; if子句和else子句都是由逗号表达式构成 的简单语句。,2019/5/24,C语言程序设计-第四章,11,【 例 4.2 】输入一个整数,判断它是奇数还是偶数。 main() int n; printf(“Input a numbern“); scanf

5、(“%d“, 运行输入: Input a number 100 运行结果: The number is even 再次运行输入:Input a number 25 再次运行结果:The number is odd.,2019/5/24,C语言程序设计-第四章,12,【 例 4.3 】 求整数a的平方值。 main() int a; printf(“Enter an integer A: n“); scanf (“%d“, 运行输入: Enter an integer A: 5 运行结果: a*a=25,2019/5/24,C语言程序设计-第四章,13,4.1.2 无条件选择结构 无条件分支是实

6、现选择结构的另一种形式。 在C语言中,无条件分支语句有三种基本形式: goto语句、break语句和continue语句。 goto 语句是无条件转向语句,其一般形式为: goto 语句标号; 语句标号用标识符表示,用来表示程序的某个位置。goto语句的功能是使程序的执行无条件地转到标号所在的位置。 goto语句一般来说有两个用途:一是与if语句一起构成循环结构;另一是用于从多重循环的嵌套结构中跳出,或从多重if嵌套结构中跳出。,2019/5/24,C语言程序设计-第四章,14,例如,下面的计算5!的程序就是用goto语句和if语句一起构成循环结构来完成的。 #define N 10 main

7、() int i=1,s=1; loop: if(i=5) sum=sum*i; i+; goto loop; printf(“S=%dn“,s); ,2019/5/24,C语言程序设计-第四章,15,4.2 条件分支的嵌套 在一个条件分支语句中还可以包含一个或多个条件分支语句,称为条件分支的嵌套。 1.条件分支嵌套的一般形式 if语句嵌套的一般情况是if后和else后的语句都可以再包含if语句。,2019/5/24,C语言程序设计-第四章,16,【 例 4.4 】求一个点所在的象限。 main() float x,y; printf(“Input the coordinate of a po

8、intn“); printf(“x=“); scanf(“%f“, ,2019/5/24,C语言程序设计-第四章,17,运行输入: Input the coordinate of a point x= 5 y= 3 运行结果: The point is in 1st quadrant。 再次运行输入: Input the coordinate of a point x= -2 y= -7 再次运行结果: The point is in 3rd quadrant.,2019/5/24,C语言程序设计-第四章,18,2.if-else-if形式 if-else-if形式是条件分支嵌套的一种特殊形式

9、,它经常用于多分支处理。它的一般形式为: if(表达式1) 语句1 else if (表达式2) 语句2 else if (表达式n) 语句n else 语句n+1,2019/5/24,C语言程序设计-第四章,19,图 4.3 嵌套的选择结构流程图,2019/5/24,C语言程序设计-第四章,20,【 例 4.5 】求解符号函数。 main() int x,sign; printf(“Please input a numbern“); scanf(“%d“, ,2019/5/24,C语言程序设计-第四章,21,运行输入: Please input a number -100 运行结果: The

10、 sign is -1 再次运行输入: Please input a number 2 运行结果: The sign is 1 继续运行输入: Please input a number 0 运行结果: The sign is 0,2019/5/24,C语言程序设计-第四章,22,4.3 开关选择结构,switch-case语句 (开关分支结构) switch (表达式) case 常量表达式1: 语句组1 case 常量表达式2: 语句组2 case 常量表达式n: 语句组n default : 语句组n+1 ,注:表达式和常量表达式可为任何整型或字符型。 每一个case后的常量表达式值应互

11、不相同。 default位置任意,只作入口;若无default且无匹配常量表达式,则不执行任何操作。 语句组不须加 break无条件转向本层复合结构的下一条语句。,2019/5/24,C语言程序设计-第四章,23,在使用switch语句时,应注意以下几点: (1)switch后面的表达式和case后面的常量表达式可以为任何整型或字符型数据。 (2)每一个case后的常量表达式的值应当互不相同。 (3)switch 语句组中可以不包含default分支,如果没有default,则所有的常量表达式都不与表达式的值匹配时,switch语句就不执行任何操作。,2019/5/24,C语言程序设计-第四章

12、,24,(4)default写成最后一项也不是语法上必须的,它也可写在某个case前面(习惯上总是把default写在最后)。若把default写在某些case前面,当所有的常量表达式都不与表达式的值匹配时,switch语句就以default作为一个入口,执行default后面的语句及连续多个case语句,直至switch语句的结束。 (5)由于case及default后都允许是语句组,所以当安排多个语句时,也不必用花括号括起。,2019/5/24,C语言程序设计-第四章,25,【 例 4.6 】根据考试成绩的等级打印出百分制分数段。 main() char grade; printf(“In

13、put the grade: “); scanf(“%c“, ,运行输入: Input the grade: A 运行结果: 85100 再次运行输入: Input the grade: B 再次运行结果: error,2019/5/24,C语言程序设计-第四章,26,【 例 4.7 】 判别某考试成绩等级是否大于60分。 main() char grade; printf(“Input the grade: “); scanf(“%c“, ,运行输入: Input the grade:B 运行结果: =60 再次运行输入: Input the grade: D 再次运行结果: 60,2019

14、/5/24,C语言程序设计-第四章,27,【 例 4.8 】在case后面嵌套switch语句的程序。 main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+; b+; break; case 3: a+; b+; printf(“a=%d,b=%dn“,a,b); 运行结果: a=2,b=1,2019/5/24,C语言程序设计-第四章,28,【 例 4.9 】设计求 ax2+bx+c=0 一元二次方程解的程序。 分析: a=0,不是二次方程

15、。判别式b2-4ac的值等于0有两个相等实根;大于0有两个不 等实根;小于0有两个共轭复根。 计算d=b2-4ac后,由于计算的实数误差,若确定为0,可能出现d!=0,因此用取绝对值后判别是否小于一个很小的数(10-6)来解决。,#include “math.h“ main() float a,b,c,d,x1,x2,p,q; printf(“a,b,c=?“); scanf(“%f,%f,%f“,else if(d1e-6) x1=(-b+sqrt(d)/(2*a); x2=(-b-sqrt(d)/(2*a); printf(“has distinct real roots: %8.4f and %8.4fn“,x1,x2); else p=-b/(2*a); q=sqrt(-d)/(2*a); printf(“has complex roots:n“); printf(“%8.4f+%8.4fin“,p,q); printf(“%8.4f-%8.4fin“,p,q); ,运行输入: a,b,c=? 1,2,1 运行结果: The equation has two equal roots: -1.0000 再次运行输入: a,b,c=? 1,2,2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

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