《编程基础-C语言》项目四选择结构程序设计_第1页
《编程基础-C语言》项目四选择结构程序设计_第2页
《编程基础-C语言》项目四选择结构程序设计_第3页
《编程基础-C语言》项目四选择结构程序设计_第4页
《编程基础-C语言》项目四选择结构程序设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

项目四

选择结构程序设计任务8'A'比'a'大吗?——关系表达式任务9闰年的表示——逻辑表达式任务10儿童票售票提示——if选择语句任务11打印成绩等级——switch多分支语句任务8'A'比'a'大吗?——关系表达式任务描述:编写程序,比较C语言中字母A和字母a的大小。任务分析:在本任务中,要比较两个值的大小需要用到关系运算符。在C语言中,所谓关系运算就是进行比较的运算:将两个值进行比较,判断其是否符合给定的条件。若符合,则为真(结果为1),否则为假(结果为0)。4.1关系运算符及其优先级运算符含义优先级结合方向>

大于6自左至右>=大于或等于6自左至右<

小于6自左至右<=小于或等于6自左至右==等于7自左至右!=不等于7自左至右表4-1C语言中的关系运算符任务8'A'比'a'大吗?——关系表达式4.1关系运算符及其优先级(1)“>=”、“<=”、“==”、和“!=”与数学中对应的运算符写法不同,要注意区分。(2)关系运算符被分为两种优先级,前四种高于后两种。关系运算符的优先级低于算术运算符,高于赋值运算符。(3)当相同优先级的关系运算符同时出现时,从左至右进行运算。任务8'A'比'a'大吗?——关系表达式4.2关系表达式用关系运算符将两个表达式连接起来的式子称为关系表达式。关系表达式的值是一个逻辑值,即“真”和“假”。C语言没有逻辑型数据,以“1”代表“真”,以“0”代表“假”。若有定义语句:a=1,b=2,c=3;则:a<b为真,值为1。a!=b为真,值为1。a==c>b为真,值为1。d=c>b>ad的值为0。任务8'A'比'a'大吗?——关系表达式#include<stdio.h>main(){inta,b,c;a='A'>'a';b='A'=='a';c='A'<'a';printf("%d,%d,%d",a,b,c);}任务8'A'比'a'大吗?——关系表达式任务实施:任务8'A'比'a'大吗?——关系表达式任务总结:关系表达式可以像本任务中这样赋值给一个变量,也可以作为条件判断单独使用。在使用关系运算符时要注意其与数学中运算符写法的不同。任务拓展:将“知识准备”中的例子在软件中进行验证,更好地理解掌握关系表达式的使用。任务9闰年的表示——逻辑表达式任务描述:闰年分为普通闰年和世纪闰年:(1)普通闰年:年份是4的倍数,且不是100的倍数。(2)世纪闰年:年份是400的倍数。请用C语言逻辑表达式来表示闰年。任务分析:在本任务中,需要用到逻辑表达式。要将文字描述转化成C语言的逻辑表达式,需要先来认识逻辑运算符。4.3逻辑运算符及其优先级表4-2C语言中的逻辑运算符任务9闰年的表示——逻辑表达式运算符含义优先级结合方向&&逻辑与11自左至右||逻辑或12自左至右!逻辑非2自右至左4.3逻辑运算符及其优先级(1)“&&”和“||”为双目运算符,“!”为单目运算符。(2)三种逻辑运算符优先级都不相同,“!”最高,“&&”高于“||”。逻辑运算符的优先级高于赋值运算符。(3)当相同优先级的逻辑运算符同时出现时,“&&”和“||”是从左至右进行运算,而“!”是从右至左进行运算。任务8'A'比'a'大吗?——关系表达式4.4逻辑表达式用逻辑运算符连接若干个表达式组成的式子称为逻辑表达式。与关系表达式一样,逻辑表达式的值也是一个逻辑值,即“真”和“假”,以“1”代表“真”,以“0”代表“假”。但在判断一个量是否为“真”时,以“0”代表“假”,以非0代表“真”。1.求值规则a&&b若a、b同时为真,则a&&b为真,值为1。a||b若a、b之一为真,则a||b为真,值为1。!a若a为真,则!a为假,值为0。任务9闰年的表示——逻辑表达式4.4逻辑表达式2.求值策略按照求值规则,逻辑与和逻辑或表达式应该从左至右依次计算各表达式的值,但实际上并不一定从左至右运算到底,当表达式的值能够确定的时候运算就应该停止。(1)a&&b&&c若a为假,则整个表达式为假,就不必判断b和c的值;若a为真,b为假,则整个表达式也为假,就不必判断c的值。(2)a||b||c若a为真,则整个表达式为真,就不必判断b和c的值;若a为假,b为真,则整个表达式也为真,就不必判断c的值。任务9闰年的表示——逻辑表达式#include<stdio.h>main(){intyear;printf("输入一个年份:");scanf("%d",&year);if((year%4==0)&&(year%100!=0)||(year%400==0))/*if语句判断是否满足条件*/printf("%d年是闰年",year);elseprintf("%d年是平年",year);/*如对非闰年不做要求,可省略此句*/}任务实施:任务9闰年的表示——逻辑表达式任务总结:能够将实际问题的文字描述转换成正确的逻辑表达式是本任务的重点在逻辑运算中,需要综合运用运算符的优先级、结合性、求值规则以及求值策略。任务拓展:1.用逻辑表达式表示1<x≤10。2.用逻辑表达式表示x是3或5的倍数。任务9闰年的表示——逻辑表达式任务10儿童票售票提示——if选择语句任务描述:按照《铁路旅客运输规程》规定,随同成人旅行的身高1.2~1.5米的儿童,享受半价客票;超过1.5米的儿童应买全价票;每一成人旅客可免费携带一名身高不足1.2米的儿童。编写程序,根据用户输入的儿童身高给出相应的售票提示。任务分析:在本任务中,需要根据用户输入的儿童身高选择给出对应的提示,这就需要用到选择程序结构了,if语句就是通过条件判断来实现选择结构的。4.5if语句的三种形式任务10儿童票售票提示——if选择语句1.if语句语句格式:if(表达式)语句;执行过程:先判断表达式,如果表达式为真,则执行表达式后面的语句,否则跳过该语句,执行if语句之后的语句。4.5if语句的三种形式任务10儿童票售票提示——if选择语句1.if语句(1)“表达式”可以为任何类型的表达式:关系表达式、逻辑表达式、算术表达式、赋值表达式等。(2)if表达式后边的“语句”,也称if的内嵌语句。内嵌语句可以是单条语句,也可以有多条语句。如果是多条语句,要用一对{}将它们括起来构成一条复合语句。if(a>b){t=a;a=b;b=t;}printf("%d",a);4.5if语句的三种形式任务10儿童票售票提示——if选择语句2.if…else语句语句格式:if(表达式)语句1;else语句2;执行过程如图所示:先判断表达式,如果表达式为真,则执行语句1,否则执行语句2。4.5if语句的三种形式任务10儿童票售票提示——if选择语句3.if语句的嵌套(1)当实际运用中面临两种以上的选择时,把if…else语句稍加扩展就能满足需求。其一般形式为:if(表达式1)语句1;elseif(表达式2)语句2;elseif(表达式3)语句3;

elseif(表达式m)语句m;else语句n;4.5if语句的三种形式任务10儿童票售票提示——if选择语句(2)一条if语句中可以包含另一条if语句,称为if语句的嵌套。在嵌套的if语句中,else与它前面最近的if配对,除非用花括号来改变。格式1:if(表达式)if(表达式)语句1;else语句2;格式2:if(表达式){if(表达式)语句1;}else语句2;4.5if语句的三种形式任务10儿童票售票提示——if选择语句配对关系不同,程序运行结果就不同,试比较以下两个程序段的输出结果。程序段1:if(score>=60)if(score<70)printf("Pass!");elseprintf("Good!");程序段2:if(score>=60){if(score<70)printf("Pass!");}elseprintf("Good!");4.6条件表达式任务10儿童票售票提示——if选择语句使用条件表达式可以达到简单的if…else的功能,条件运算符是C语言中唯一的三目运算符,其一般形式为:表达式1?表达式2:表达式3当表达式1为真时,整个条件表达式的值等于表达式2的值,否则结果为表达式3的值(1)条件运算符的优先级为13级,高于赋值运算符和逗号运算符,但低于其它运算符。max=x>y?x:y;先计算x>y是否为真,如果为真,则把x的值赋给max,否则将y的值赋给max。(2)条件运算符的结合性为右结合性,即自右向左进行计算。max=x>y?x:y>z?y:z;等价于max=x>y?x:(y>z?y:z);#include<stdio.h>main(){floath;printf("请输入儿童身高(米):");scanf("%f",&h);if(h<1.2)printf("免票!");elseif(h<=1.5)printf("请购买半价票!");elseprintf("请购买全价票!");}任务实施:任务10儿童票售票提示——if选择语句任务总结:多个if结构并列,有执行多个分支的可能性基本的if…else结构以及扩展的if…else结构只能根据条件执行其中的一个分支使用if…else的嵌套结构要仔细确定好if与else的配对。任务拓展:1.从键盘输入3个数,判断能否构成三角形,如果能,则输出该三角形的形状信息(等边、等腰、任意三种情况),否则输出提示。2.从键盘上输入3个数,按照从大到小的顺序输出。3.从键盘输入一个字母,判断它是否为大写英文字母,若是,转换成对应的小写字母,否则原样输出(用条件表达式实现)。任务10儿童票售票提示——if选择语句任务描述:编写程序,当输入学生的考试成绩(百分制)后,输出学生的成绩等级:90分及以上为优,80-89分为良,70-79分为中,60-69分为及格,60分以下为不及格。任务分析:在本任务中,程序面临多重选择,使用if嵌套语句可以实现多重选择,但是嵌套层次过多,这时使用switch多分支语句更为方便。任务11打印成绩等级——switch多分支语句4.7switch多分支语句任务11打印成绩等级——switch多分支语句switch(表达式){case常量表达式1:

语句序列1;[break;]case常量表达式2:

语句序列2;[break;]

case常量表达式n:

语句序列n;[break;][default:语句序列n+1;]}4.7switch多分支语句任务11打印成绩等级——switch多分支语句switch语句的工作过程是:先计算switch括号中表达式的值,如果它与某一case后的常量表达式的值相等,则执行这个case常量后的语句序列,遇到break语句后,跳出switch结构,执行switch结构后的语句。若表达式的值与所有case后的常量都不相等,则执行default(如果有)后的语句序列。#include<stdio.h>main(){floatscore;intx;printf("请输入成绩:");scanf("%f",&score);x=score/10;switch(x){case10:case9:printf("优\n");break;case8:printf("良\n");break;

温馨提示

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

评论

0/150

提交评论