C语言程序设计教学做一体化-电子教案-滕泓虬 模块4

上传人:E**** 文档编号:89386373 上传时间:2019-05-24 格式:PPT 页数:32 大小:291.50KB
返回 下载 相关 举报
C语言程序设计教学做一体化-电子教案-滕泓虬 模块4_第1页
第1页 / 共32页
C语言程序设计教学做一体化-电子教案-滕泓虬 模块4_第2页
第2页 / 共32页
C语言程序设计教学做一体化-电子教案-滕泓虬 模块4_第3页
第3页 / 共32页
C语言程序设计教学做一体化-电子教案-滕泓虬 模块4_第4页
第4页 / 共32页
C语言程序设计教学做一体化-电子教案-滕泓虬 模块4_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《C语言程序设计教学做一体化-电子教案-滕泓虬 模块4》由会员分享,可在线阅读,更多相关《C语言程序设计教学做一体化-电子教案-滕泓虬 模块4(32页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计教学做一体化,C语言程序设计 教学做一体化 主编 滕泓虬 中国水利水电出版社,模块四 选择结构程序设计,C语言程序设计教学做一体化,本模块介绍C语言的关系运算、逻辑运算以及用作选择的if语句和switch语句。学习本模块应能掌握关系运算和逻辑运算的操作,并能够用if和switch语句编制具有选择结构的程序。 选择结构是结构程序设计所采用的三种基本控制结构之一,另外两种是顺序结构和循环结构。在编程序时,有时并不能保证程序一定执行某些指令,而是要根据一定的外部条件来判断哪些指令要执行。在计算机程序中可以根据不同的条件执行不同的代码段,这就是选择结构。,C语言程序设计教学做一体化,4.

2、1 关系运算符与关系表达式,学习目标 1、掌握C语言中的关系运算符 2、掌握关系运算符的优先级 3、掌握关系表达式的使用 4、理解“= =”与“=”的区别,C语言程序设计教学做一体化,知识链接,1、在语言中有6个二元的关系运算符:(大于) 、=(大于或等于)、= =(等于)、!= (不等于)。 2、运算规则:两个操作数进行比较,若条件满足,则结果值为1;否则为0。 3、结合方向:从左至右。 4、优先级(从高到低排列):(1)算术运算符(2),= (3)= =和!= (4)赋值运算符。,C语言程序设计教学做一体化,案例4-1 区分关系运算符“= =”和赋值运算符“=”,#include void

3、 main() int x,y,z1,z2; x=2 ;y=2 ; z1=(x=y); /*先把y的值赋给x,然后再把x的值赋给z1*/ z2=(x= =y); /*先判断x与y的值是否相等,再把结果赋给 z2*/ printf(“z1=%d,z2=%dn“,z1,z2); 运行这个程序,结果是: z1=2,z2=1,C语言程序设计教学做一体化,4.1.2 关系表达式,多种运算符在一个表达式中混合使用。 案例程序 #include “stdio.h“ void main() int x,y,z,i,j; clrscr(); /* 函数clrscr()功能是清屏*/ x=4,y=3,z=2; i

4、=yz; /* i 的值为1 */ j=xyz; /* xy的值为1,1z的值为0 */,C语言程序设计教学做一体化,printf(“%d,%d,“,i,j); printf(“%d, “,zy= =3); /* 先算zy的值 */ printf(“%d, “,y+z=z+1); 运行结果是: 1,0,0,0,1 随堂练习 已知a=1,b=2,c=3,d=4,m=1,n=1;求表达式(m=ad)的值。,C语言程序设计教学做一体化,知识链接,1、由关系运算符与操作数构成的表达式就是关系表达式。 关系表达式的值为“真”或“假”,C语言用整数1表示“真”,整数0表示“假”。 2、关系表达式的一般形式

5、为:表达式 关系运算符 表达式;,其中表达式也可以是关系表达式,所以可以出现嵌套的情况。例如:a(bc),a!=(c= =d)等也是合法的关系表达式。 3、注意:由于实型数据有误差,对于结果为实数的两个运算量x、y,应避免使用期“x= =y”来判断相等,否则会得出错误的结论。例如:如下程序段运行后的输出结果是0,而不是1。 float x=99.9; printf(“%dn”,x+0.1= =100.0); 正确的处理方法是判断两个运算量的差值的绝对值是否小于很小的数,如判断fabs(x-y)10e-6是否成立。,C语言程序设计教学做一体化,4.2逻辑运算符与逻辑表达式,学习目标: 1、了解C

6、语言中的各种逻辑运算符 2、掌握逻辑表达式与关系表达式的混合使用 3、掌握逻辑表达式的求值优化,C语言程序设计教学做一体化,案例4-3 逻辑表达式的求值优化,#include main() int a=10,b=30; printf(“%d “, (a= =0) /*b的值还是原来的30*/ 运行结果为: 0 a=10 1 b=30 随堂练习 计算2+4= =6*(2!=1)的结果,并编程验证是否正确。,C语言程序设计教学做一体化,*4.3 if条件语句,学习目标: 1、掌握if语句的三种形式 2、理解if语句的三种形式的流程图 3、掌握两个数进行交换和排序的方法 4、掌握判断某数是否是另一个

7、数的倍数的方法 5、掌握处理问题时用数字对应星期数的方法 6、理解用ASCII码值对输入字符进行分类的方法 7、掌握ifelse的嵌套及else与if的配对关系 8、掌握百分制与ABCD等级记分制实现转换的方法,C语言程序设计教学做一体化,4.3.1 If语句的简单形式,用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。if语句有三种不同的形式, 还可以进行嵌套。If语句的简单形式格式为: if(表达式) 语句; 其语义是:如果表达式的值为真, 则执行其后的语句, 否则不执行该语句。,C语言程序设计教学做一体化,4.3.1 If语句的简单形式,从键盘输入两个数x、

8、y,要求从小到大排序并输出。 案例程序 #include main() float x,y,t; /* 临时变量t帮助实现两数交换*/ scanf(“%f , %f”, 分别输入两组数据:5,3 和2,4进行测试,运行结果如图4-1所示:,C语言程序设计教学做一体化,案例4-5 报数游戏。,#include main() int number=0; printf(“Please input a number: “); scanf(“%d“, /*输出此数*/ 分别输入3和4进行测试,,C语言程序设计教学做一体化,4.3.2 If语句的基本形式,语言中的if语句的基本形式是: if(表达式) 语

9、句1; else 语句2; 其语义是:如果表达式的值为真,则执行语句1,否则执行语句2。,C语言程序设计教学做一体化,4.3.2 If语句的基本形式,#include main() int week=0; float speaker=300,keyboard=80; printf(“Please input week number: “); scanf(“%d“, 分别输入6和2进行测试,,C语言程序设计教学做一体化,4.3.3 if-else-if阶梯形式,当有多个分支选择时,可采用if-else-if语句,其一般形式为: if(表达式1) 语句1; else if(表达式2) 语句2; e

10、lse if(表达式3) 语句3; else if(表达式m) 语句m; else 语句n; 其语义是:依次判断表达式的值,当出现某个值为真时, 则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n 。 然后继续执行后续程序。,C语言程序设计教学做一体化,案例4-7 从键盘上输入一个字符,判断此字符的类别。,#include “stdio.h“ main() char c; printf(“input a character: “); c=getchar(); if(c=0 分别输入7、r、Q和Shift键进行测试,,C语言程序设计教学做一体化,4.

11、3.4 if-else的嵌套形式,当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。 例如: if(表达式1) if(表达式2) 语句1; else 语句2; 其中的else究竟是与哪一个if配对呢?为了避免这种二义性,语言规定:else 总是与它前面最近的未配对的if配对。并且在书写时,应通过格式表现出嵌套层次,这样看比较直观,有利于减少因if 与else不匹配,或是“”不成对而造成的错误,同时也提高了程序的可读性,便于自己和他人阅读。,C语言程

12、序设计教学做一体化,根据输入的百分制成绩按A、B、C、D 四个等级进行成绩输出。,#include “stdio.h“ void main() int score; char grade; printf(“please input score:“); scanf(“%d“, 分别输入-10、38、65、79和85进行测试,,C语言程序设计教学做一体化,4.4 switch语句,学习目标: 1、掌握switch语句的一般用法 2、掌握switch语句后的break语句作用 3、掌握简单运算器的实现方法 4、掌握键盘输入数字对应输出星期数英语单词的方法,C语言程序设计教学做一体化,4.4 swit

13、ch语句,语言还提供了另一种用于多分支选择的switch语句, 其一般形式为: switch(表达式) case常量表达式1: 语句1; break; case常量表达式2: 语句2; break; case常量表达式n: 语句n; break; default : 语句n+1; 其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,如果此语句后有break语句,则跳出switch语句;如果没有break语句,则不再进行判断,继续执行下一个case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行defaul

14、t后的语句。,C语言程序设计教学做一体化,4.4 switch语句,注意: (1)关键字switch后面的表达式的值是整型或字符型。 (2)关键字case后面的常量表达式的值也只能是整型或字符型,并且各case分支的常量表达式的值应各不相同。 (3)在case后,允许有多个语句,可以不用括起来;同时也可以多个case表达式共用同一个语句。 (4)break语句用于跳出整个switch语句。如果没有break语句,则执行完一个case分支将执行下一个case分支。 (5)各case和default语句的先后顺序可以变动,而不会影响程序执行结果。 (6)default语句是可选的。当所有的case

15、常量表达式不能与表达式的值匹配时,执行default语句。在每个switch语句中,default语句最多只能有一个。,C语言程序设计教学做一体化,基础练习,选择题 1、已有定义int x=3,y=4; , 则xy 则以下表达式值为0的是 。 A) “a”&!b B) c= =b C) a= =3= =1 D) a&!bc 4、以下运算符中优先级最低是 。 A) & B) | C) D) =,C语言程序设计教学做一体化,5、关于下面的程序表述正确的是 。 #include void main() int x=4,y=-1,z=1; if(x=y+z) printf(“Hello!”); els

16、e printf(“Welcome!”): A) 输出Hello! B) 输出Welcome! C) 有语法错误,不能通过编译 D) 可能通过编译,便不能通过链接,所以无法运行 6、下面程序段求两个数中的较小的数,不正确的是 。 A) min=xy?x:y; D) min=x; if(y=x) min=y;,C语言程序设计教学做一体化,7、if语句嵌套时,else总是与 配对。 A) 前面最近的if B)第一个if C) 最外层的if D)前面最近的配对的if 8、下列描述正确的是 。 A) switch语句中必须使用break语句 B) switch语句中case后的表达式可以是任意类型 C) switch语句中,可根据需要使用或不使用default语句 D) switch语句的条件

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

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

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