第五章 选择结构的程序设计.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 选择结构的程序设计.doc

第五章 选择结构的程序设计 第四章介绍的语句可以设计顺序结构程序,执行时,程序中的语句按其先后顺序执行。但实际问题并不这样简单。 例4-3中,一元二次方程ax2+bx+c 0的求解没有考虑b2-4ac 0的情况。若b2-4ac≥0,方程有两个实根;若b2-4ac 0,方程有两个复根,其实部和虚部分开计算。所以,方程求根要根据b2-4ac≥0是否成立而分别采用不同的计算方法。又如求x的绝对值,若x≥0,则x即为所求;若x 0,则-x为x的绝对值。 根据某种条件的成立与否而采用不同的程序段进行处理的程序结构称为选择结构。通常选择结构有两个分支,条件为真,执行甲程序段,否则执行乙程序段。有时,两个分支还不能完全描述实际问题。例如,判断学生成绩属于哪个等级(A:90---100,B:80---89,C:60---79,D:0---59)根据学生的成绩的条件,分成4个分支,分别处理各等级分情况。例如,A级分的学生可获奖学金等。这样的程序结构称为多分支选择结构。 本章将介绍几个语句来实现选择结构程序设计。 5.1 用if语句设计选择结构程序 C语言中的if语句有两种形式:简单if语句和if_else语句。 5.1.1 简单if语句   简单if语句形式: if(表达式) 语句1   功能:计算表达式的值,若为真,则执行语句1;否则将跳过语句1执行if语句的下一条语句。如图5-1所示。   说明:括号中的表达式表示控制条件,表达式的值非零为真,零为假。语句1从语法上应是一条语句,若需要在此执行多条语句,必须用大括号将它们括起来,构成复合语句,这样,语法上它仍然是一条语句。 例5-1:求给定整数的绝对值。   求x绝对值的算法很简单,若x≥0,则x即为所求;若x 0,则-x为x的绝对值。如图5-2所示。   程序中首先定义整型变量x和y,其中y存放x的绝对值。输入x的值之后,执行y x;语句,即先假定x≥0,然后再判断x是否小于0,若x 0,则 x的绝对值为 -x,将-x赋给y y中原来的x值被冲掉了 后输出结果。 若x≥0,则跳过y -x; 语句,直接输出结果。此时y中的值仍然是原x的值。   #include stdio.h   main int x, y;   scanf %d, x ;   y x;   if x 0 y -x;   printf x %d, |x| %d\n, x, y ; 运行程序:   输入:-5↙   输出:x -5, |x| 5 例5-2:求4个数中的偶数之和。   #include stdio.h   main int a, b, c, d, s;   printf Please input a, b, c, d:\n ;   scanf %d, %d, %d, %d, a, b, c, d ;   s 0; /* 存放和的变量先置初值0 */   if a%2 0 s s+a; /* 能被2整除是偶数,依次检查各变量并将偶数累加到s中 */   if b%2 0 s s+b;   if c%2 0 s s+c;   if d%2 0 s s+d;   printf a %d, b %d, c %d, d %d\n, a, b, c, d ;   printf s %d\n, s ; 运行程序:   Please input a,b,c,d:   输入:12,35,6,11↙   输出:a 12,b 35,c 6,d 11   s 18   令变量s(存放和值)的初值为0,注意,这一步骤不能省略,否则不能保证s的初值为0。在累加之前,若s的初值不为0,则最终的和值中含有s的非0初值,得到错误结果。   求n个数的和可以采用两种算法:(以n 4为例)   ①s a+b+c+d   ②s 0;   s s+a; s s+b; s s+c; s s+d;   第一种方法虽然简单明了,但有明显不足。在本例中,要求累加4个数中的偶数,第一种方法不能进行条件的判断,无法采用;又如,当n很大时,不可能把n个数依次写出。而第二种方法中,累加是分开执行的,因此可以在累加前进行条件的判断;在后续章节中可以看到,第二种方法结合循环和数组就可以解决n很大的求和问题。 上一页   下一页 5.4 用switch语句设计多分支结构程序 例5-8中已经遇到多分支选择结构,虽然用嵌套if语句也能实现多分支结构程序,但分支较多时显得很繁琐,可读性较差。C语言中,switch语句专用于实现多分支结构程序,其特点是各分支清晰而直观。 5.4.1 switch语句   switch语句调用形式:   switch 表达式 case 常量表达式1: 语句1   case 常量表达式2: 语句2   ……   case

文档评论(0)

dzzj200808 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档