c语言第5章选择结构程序设计.ppt_第1页
c语言第5章选择结构程序设计.ppt_第2页
c语言第5章选择结构程序设计.ppt_第3页
c语言第5章选择结构程序设计.ppt_第4页
c语言第5章选择结构程序设计.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

第5章 选择结构程序设计 一、教学要求: 1、掌握关系运算和逻辑运算, 2、学会构造正确的条件表达式; 3、掌握if 和switch语句的使用 4、学会编写选择结构的程序 二、教学重点与难点 1、条件表达式的构造 2、分支语句的格式与使用(if else语句和switch语句) 3、编写选择结构的程序 三、教学方法与课时数 方法:讲授,程序演示,上机实验 课时数:理论4节,上机2节 四 教学内容 要设计选择结构程序,要考虑两个方面的问 题:一是在C语言中如何来表示条件,二是在C 语言中实现选择结构用什么语句。 在C语言中表示条件,一般用关系表达式或 逻辑表达式,实现选择结构用if语句或switch语句 。 5.1 关系运算及其表达式 5.2 逻辑运算及其表达式 5.3 if语句 5.4 switch语句 5.5 选择结构程序举例 5.1 关系运算及其表达式 所谓“关系运算”实际上就是“比较运算”,即将两个数据 进行比较,判定两个数据是否符合给定的关系。 例如,“a b”中的“”表示一个大于关系运算。如果a的 值是5,b的值是3,则大于关系运算“”的结果为“真”,即条 件成立;如果a的值是2,b的值是3,则大于关系运算“”的 结果为“假”,即条件不成立。 5.1.1 关系运算符及其优先次序 1关系运算符 C语言提供6种关系运算符: (大于), =(大于或等于), =(等于), !=(不等于) 注意:在中,“等于”关系运算符是双等号“= =”,而不 是单等号“= ”(赋值运算符)。 2优先级 (1)在关系运算符中,前4个优先级相同,后2个也相同,且前 4个高于后2个。 (2)与其它种类运算符的优先级关系 关系运算符的优先级,低于算术运算符,但高于赋值运算符。 5.1.2 关系表达式 1关系表达式的概念 所谓关系表达式是指,用关系运算符将两个表达式 连接起来,进行关系运算的式子。 例如,下面的关系表达式都是合法的: ab,a+bc-d,(a=3)=b,(ab)= =(bc) 2关系表达式的值逻辑值(非“真”即“假” )。 由于语言没有逻辑型数据,所以用整数“”表示“逻 辑真”,用整数“”表示“逻辑假”。 例如,假设num1=3,num2=4,num3=5, 则: (1)num1num2的值=0。 (2)(num1num2)!=num3的值=1。 (3)num1=k+1); printf(“%d,%dn“,1=0”。 如果需要描述“x=0”、同时“x=0) printf(“n input two numbers: “); scanf(“%d%d“, max=a; if (maxb) printf(“max=%dn“,a); else printf(“max=%dn“,b); 输入两个整数,输出其中的大数。改用if-else语句判别 a,b的大小,若a大,则输出a,否则输出b。 3.第三种形式为if-else-if形式 前二种形式的if语句一般都用于两个分支的情况。 当有多个分 支选择时,可采用if-else-if语句,其一般形式为: if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式m) 语句m; else 语句n; 其语义是:依次判断表达式的值,当出现某个值为真时,则执行 其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的 表达式均为假,则执行语句n。然后继续执行后续程序。 if-else-if语语句的执执行过过程如图图33所示。 【例5.5】 #include“stdio.h“ main() char c; printf(“input a character: “); c=getchar(); if(c=0 b+; else a=0; b=10; 5.3.2 IF语句的嵌套 当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。 其一般形式可表示如下: if(表达式) if语句; 或者为 if(表达式) if语句; else if语句; 在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多 个else重叠的情况,这时要特别注意if和else的配对问题。 例如: if(表达式1) if(表达式2) 语句1; else 语句2; 其中的else 究竟是与哪一个if 配对呢? 应该理解为: if(表达式1) if(表达式2) 语句1; else 语句2; 还是应理解为: if(表达式1) if(表达式2) 语句1; else 语句2; 为了避免这种二义性,语言规定,else 总是与它前面最近的if 配对,因此对上述例子应按前一种情况理解。 【例5.6】 main() int a,b; printf(“please input A,B:“); scanf(“%d%d“, if(a!=b) if(ab) printf(“ABn“); else printf(“AB、Ab) printf(“ABn“); else printf(“A=A /*求出两个不相等的实根*/ x2=(-b-sqrt(disc)/(2*a); printf(“x1=%7.2f,x2=%7.2fn“, x1, x2); else p=-b/(2*a);/*求出两个共轭复根*/ q=sqrt(fabs(disc)/(2*a); printf(“x1=%7.2f + %7.2f in“, p, q);/*输出两个共轭复根*/ printf(”x2=%7.2f - %7.2f in“, p, q); 说明:由于实数在计算机中存储时,经常会有一 些微小误差,所以本案例判断disc是否为0的方法是:判 断disc的绝对值是否小于一个很小的数(例如10-6)。 思考题:如果将系数a、b、c定义成整数,能否 直接判断disc是否等于0? 案例5.7 已知某公司员工的保底薪水为500,某月所接工程的利 润profit(整数)与利润提成的关系如下(计量单位:元): profit1000没有提成; 1000profit2000提成10%; 2000profit5000提成15%; 5000profit10000提成20%; 10000profit提成25%。 算法设计要点: 为使用switch语句,必须将利润profit与提成的关系,转换成某些 整数与提成的关系。分析本题可知,提成的变化点都是1000的整数倍 (1000、2000、5000、),如果将利润profit整除1000,则当: profit1000对应0、1 1000profit2000对应1、2 2000profit5000对应2、3、4、5 5000profit10000对应5、6、7、8、9、10 10000profit对应10、11、12、 为解决相邻两个区间的重叠问题,最简单的方法就是:利润 profit先减1(最小增量),然后再整除1000即可: profit1000对应0 1000profit2000对应1 2000profit5000对应2、3、4 5000profit10000对应5、6、7、8、9 10000profit对应10、11、12、 /*案例代码文件名:AL4_7.C。*/ main() long profit; int grade; float salary=500; printf(“Input profit: “); scanf(“%ld“, grade= (profit 1) / 1000;/*将利润-1、再整除1000, 转化成 switch语句中的case标号*/ switch(grade) case 0: break;/*profit1000 */ case 1: salary += profit*0.1; break;/*1000 profit2000 */ case 2: case 3: case 4: salary += profit*0.15; break;/*2000 profit5000 */ case 5: case 6: case 7: case 8: case 9: salary += profit*0.2; break;/*5000 profit10000 */ default: salary += profit*0.25;/*10000profit */ printf(“salary=%.2fn“, salary); 良好的源程序书写风格注释 必要的注释,可有效地提高程序的可读性,从而提高 程序的可维护性。 在语言源程序中,注释可分为三种情况:(1)在 函数体内对语句的注释;(2)在函数之前对函数的注释 ;(3)在源程序文件开始处,对整个程序的总体说明。 函数体内的语句,是由顺序结构、选择结构和循环结 构等三种基本结构构成的。在什么地方加以注释的原则 是:如果不加注释,理解起来就会有困难,或者虽无困 难、但浪费时间。 (1)顺序结构 在每个顺序程序段(由若干条语句构成)之前,用注释 说明其功能。除很复杂的处理外,一般没有必要每条语 句都加以注释。 (2)选择结构 在C语言中,选择结构是由if语句和switch语句来实现 的。一般地说,要在前面说明其作用,在每个分支条件 语句行的后面,说明该分支的含义,如下所示: 1)if语句

温馨提示

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

最新文档

评论

0/150

提交评论