ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:85.85KB ,
资源ID:2891565      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2891565.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第二章 选择程序结构设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第二章 选择程序结构设计.docx

1、第二章 选择程序结构设计第2章选择结构程序设计主要内容:本章是程序设计三种基本结构顺序、选择、循环中的选择结构程序设计,主要介绍结构化程序设计中最常用的选择(分支)控制语句。详细阐述了(if/else、switch/case)两种选择控制语句在不同情况下的用法。教学要求: 掌握if/else选择控制语句的常规用法 学会if/else选择控制语句的多层嵌套 掌握switch/case选择控制语句的用法 培养程序编写基本能力和逻辑思维能力2.1简单条件处理:if语句日常生活中,我们常常要处理一些判断性的选择问题,例如同学们高考完之后根据成绩来进行选择性地填报大学志愿,还有道路的选择问题(如图2-1

2、)等等。那么在计算机程序中的会不会遇到此类选择性问题呢?又是怎样解决的呢?在C语言中,程序语句的执行流程就会经常用到选择语句来控制。伴随着程序控制语句的不断学习,在C的殿堂里,学员将步步登高,渐入佳境,能够用C语言解决更多的实际问题。 图 2-1 选择示例上图形象地给我们展示了现实生活中的“选择”问题,其实,此类问题就是“如果”“否则”的问题。如果选择去“北京”那么就走上面那条路,否则就走下面这条路去“深圳”(要注意的是:此种情况必需在两条路中选其一)。现实生活中如此,计算机程序中也是这样,C语句程序中常用if语句来进行条件判断,处理程序的选择问题,从而得到控制程序执行流程的目的。接下来我们就

3、来学习if选择语句。2.1.1 if条件语句C语言if条件语句的基本语法格式为:if (条件表达式) 语句块1; else 语句块2;语法格式讲解: 如果if后面的条件表达式的值为“真”,则执行“语句块1”;如果条件表达式的值为“假”,则执行else后面的“语句块2”。 执行完“语句块”之后,程序继续顺序往后执行,其程序流程图如图2-2所示。 对于语句块1和语句块2,在只有一条语句的情况下,其配对的大括号可以省略,否则不能省略。实际上在C语言中用大括号括起来的多条语句我们称为复合语句,可以视为一条语句。 看一看 想一想 有没有语句块1和语句块2都执行的情况发生呢?【例2-1】输入两个数,要求将

4、数值大的赋给x,数值小的赋给y,并输出结果。程序源代码: #include void main( ) int a,b,x,y; scanf(“a=%db=%d”,&a,&b); /*从键盘接收两个数,分别存放于a、b中*/ if(ab) /*用于判断的条件表达式*/ x=a;y=b; /*将a的值赋予变量x;b的值赋予变量y*/ else x=b;y=a; printf(“x=%d y=%dn”,x,y); /*从屏幕输出x和y的值*/运行结果如图2-3:图 2-3 程序运行结果 程序分析与解释:如果变量a的值大于变量b的值,if条件表达式的值就为“真”,则执行完第一个花括号里的语句x=a;y

5、=b;之后,就不再执行else后面花括号中的语句,而直接执行else花括号后面的语句。 反之,如果变量a的值小于变量b的值,if条件表达式的值就为“假”,则程序不会执行else前面花括号中的语句,而是直接执行完else后面花括号中的语句后继续往下执行。【例2-2】电影院为了提高效益,规定票价为12元/张,但团体购票可享受8折优惠(一次购票超过15张)。试为该影院编写一个卖票收费程序。【分析】 设一次买票张数为x张,实收费y元。由数学知识得知,这其实是一个分段函数:显然,x为正整数,y为实数且应保留2位小数。程序源代码:# include#includevoid main( ) int x;fl

6、oat y; printf(“n please input x=”); scanf(“%d”,&x); if (x16) y=x*12;else y=x*12*0.8;printf(“ny=%.2f”,y); /*从屏幕输出变量y的值,并保留两位小数*/运行结果如图2-4:图 2-4 程序运行结果 C语句C语言的语句可以是单个语句,也可以是由多个语句构成的复合语句。if条件语句中花括号里的语句块是由多个语句构成的复合语句时,则必须要用花括号括起来,也可以是单个语句,这时则可以不用花括号括起来。学到这里,同学们可能就会想,现实生活中有这种情况:如果有条件的话就去“北京”,没有条件的话就哪里也不去

7、。其实这就是前面一个看一看,想一想中的提问。像这样的问题,C语言程序中仍是用if语句来处理,不过其中就没有else语句了。省略else的if语句基本格式如下: if(条件表达式) 语句块; 语法格式讲解:如果条件表达式的值为“真”则执行if中的“语句块”,执行完后直接往后执行。语句执行流程如图2-6所示。【例2-3】从键盘输入三个数a,b,c,按照从小到大的顺序输出程序源代码:#include void main( ) int a,b,c,t; scanf(“%d%d%d”,&a,&b,&c); if(ab) t=a;a=b;b=t; /*交换变量a、b中的值*/ if(ac) t=a;a=c

8、;c=t; /*交换变量a、c中的值*/ if(bc) t=b;b=c;c=t; /*交换变量b、c中的值*/ printf(“%d,%d,%d”,a,b,c);运行结果如图2-5:图 2-6 程序运行结果程序分析与解释:在此程序的if条件句中没有else语句,当程序执行到第一个if条件语句时,首先判断关系表达式ab的值,如果是为“真”,则执行t=a;a=b;b=t,用一个t作为临时保存数据的变量,交换a与b的值;反之如果表达式ab的值为“假”,则不执行t=a;a=b;b=t,跳过第一个花括号去执行下一条语句;第二个if条件语句,判断表达式ac的值,如果表达式的值为“真”则执行第二个花括号里面

9、的内容t=a;a=c;c=t,如果表达式的值为“假”则跳出第二个if语句,继续执行下面的语句。依此类推判断出三个数据的大小,按从小到大的顺序分别保存于变量a,b,c中并输出。 通过上面的学习,我们不难发现以上例子的程序源代码中if条件表达式的值都为逻辑值。且表达式可以是关系表达式或是逻辑表达式等,对于各种表达式我们在第1章中已经详细学习过了,本章我们只是加以运用,如例2-5。【例2-4】计算三角形的面积程序源代码:#include “math.h”void main() float a,b,c,l,s; printf(“n Please input a,b,c:”);scanf(“%f,%f,

10、%f”,&a,&b,&c); /*先判断能否构成三角形,若能,才求面积!*/ if (a0 & b0 & c0 & a+bc & b+ca & c+ab) l=(a+b+c)/2; s=sqrt(l*(l-a)*(l-b)*(l-c);printf(“ns=%.2f”,s); elseprintf(“nData Error!”);该程序的if条件判断表达式是几种表达式的混合使用。但最终的值只能是“真”或者“假”。 看一看 想一想 请分析下列if语句格式是否正确,为什么? if(n0) printf(%f,n) /* 错误! */ else printf(%f,-n); if(n0) n=n+m

11、;printf(%f,n); /* 正确!*/ else printf(%f,-n); if(n0) n=n+m;printf(%f,n); /* 错误!*/ else printf(%f,-n);if(n0) n=n+m;printf(%f,n); /*错误*/ else printf(%f,-n); 2.1.2 if条件语句的嵌套 前面小节我们学到了用if条件语句来处理程序流程简单分支的情况,那么如果条件有多个的情况,或者是说程序流程有多种分支的时候怎么办呢?这时我们可以用if语句的嵌套形式来完成程序流程的控制。语法格式如下:if (条件表达式1) 语句块1 else if(条件表达式2)

12、 语句块2 else if(条件表达式n) 语句块n else 语句块n+1语法格式讲解:按顺序依次判断条件表达式1、条件表达式2,一直到条件表达式n,如果条件表达式1成立,则执行完语句块1后直接跳出if语句;如果条件表达式1不成立,则判断条件表达式2,成立则执行完语句块2后直接跳出if语句;如果条件表达式2不成立,则判断条件表达式3是否成立,依此类推,直到条件表达式n不成立,则执行完语句块n+1后直接执行该if语句后面的程序。如图2-7所示。图 2-7 if语句的多分支结构【例2-5】有一分段函数,y=f(x)。当x小于6时,y=x-12;当x大于等于6且小于15时,y=3x-1;当x大于等

13、于15时,y=5x+9。本例根据题意,任意输入一整数x,从而输出相应的y值。 程序源代码: #include void main( ) int x,y; printf(“请输入自变量x:”); scanf(“%d”,&x); if(x6) y=x-12; printf(“x=%d,y=%dn”,x,y); else if(x15) y=3*x-1; printf(“x=%d,y=%dn”,x,y);elsey=5*x+9;printf(“x=%d,y=%dn”,x,y);程序分析与解释:首先给出自变量x的值,根据自变量x的值,程序将做出判断。首先,判断x是否为小于6的整数,若是,则按照语句:y

14、=x-12计算出因变量y的值,并将其输出,不再继续执行下面的判断语句,而是直接跳出if判断结构。在本例中则是跳出整个程序。若x不是小于6的整数,接着会判断其是否小15,如果是,则会执行语句:y =3*x-1计算出因变量y的值并输出,接着跳出程序。如果判断还不满足条件,说明x一定是大于等于15的整数,程序便会按照语句:y =5*x+9来计算y的值,最后同样也是输出y的值并结束程序。【例2-6】要求输入百分制成绩,然后按此成绩输出成绩等级(90-100分为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E)。 程序源代码: #include void main( ) int score; printf(“Enter a score from 0 to 100:”); scanf(“%d”,&score); printf(“The grade is:”); if(score=90) printf(“%cn”,A); else if(score=80) printf(“%cn”,B); else if(

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1