版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE课题项目三任务1新能源汽车电池组的选择(单分支)课型讲练授课班级授课时数1教学目标灵活运用关系及逻辑运算符;if语句的单分支语法结构教学重点if语句的具体应用。教学难点关系运算符和逻辑运算符具体运用。学情分析对于C语言语法知识的讲解,容易理解,重点在于培养学生良好的编程习惯及编程规范,其二是培养学生的探究式自学能力,调试程序的能力。因而重点是语法知识的掌握,逐步过渡到培养学生良好的编程习惯及编程规范。教学效果教后记项目三任务1新能源汽车电池组的选择(单分支)3.1.1任务目标通过键盘输入新能源汽车的电池型号,如果输入1则输出使用铅酸电池。(变量:电池型号batterytype)任务目标运行截图如图3-1-1所示:图3-1-1任务目标截图3.1.2知识储备在日常生活中,总会出现根据条件来判定结果的情况。在程序中,我们将这种情况采用选择结构。if语句的格式格式:if(条件)语句组1;[else语句组2;]说明:[]格式代表可有可无,在实际使用[]中的内容也可以不写。C语言的选择结构是通过条件判断语句来实现的,模块化的结构便于阅读、调试和修改。选择结构有两种方式来实现:由if语句来实现的两分支语句;由switch语句来实现的多分支语句。在选择结构中要对条件判断表达式进行判断,根据判断的结果决定选择哪一个分支路径,条件判断表达式大多情况下是由关系表达式或者逻辑表达式构成。选择结构的三种流程图如图3-1-2所示,其中(1)为单分支结构,(2)为双分支结构,(3)为多分支结构。图3-1-2选择结构的三种流程图1.关系运算符及优先顺序关系运算符:<、<=、>、>=、==、!=,分别称之为:小于、小于等于、大于、大于等于、等于、不等于。关系运算符,关系表达式等的说明如表3-1-1所示:表3-1-1关系运算符等的说明名称说明关系运算符系统提供了六种关系运算符<:小于双目运算符优先级第6级<=:小于等于双目运算符同上>:大于双目运算符同上>=:大于等于双目运算符同上==:等于双目运算符优先级第7级!=:不等于双目运算符同上关系表达式用关系运算符将两个表达式连接起来的式子,称关系表达式。例如:3>2、x+y>x+z、x>y==z、z=x>y、'c'<'d'等都是关系表达式。关系表达式的值是一个逻辑值,即“真”或“假”。若关系成立,为“真”,值为“1”;若关系不成立,为“假”,值为“0”。逻辑运算符及优先级C语言主要提供逻辑与、逻辑或、逻辑非三种逻辑运算符,具体的使用和说明如表3-1-2所示:表3-1-2逻辑运算符说明名称说明逻辑运算符C语言提供3种逻辑运算符:“!”:逻辑非,是单目运算符,优先级是2。例如:!3“&&”:逻辑与,是双目运算符,优先级是11。例如:0&&1“||”:逻辑或,是双目运算符,优先级是12。例如:'a'||'b'逻辑表达式用逻辑运算符将关系表达式或逻辑量(0、1)连接起来的式子就是逻辑表达式。例如:a>b&&x>y、0&&1、2||9&&0、4-!3&&'c'、'a'||'b'、3.5&&4.8等都是逻辑表达式。逻辑表达式的值逻辑表达式的值也是一个逻辑值,即“真”或“假”。为“真”,值为“1”;为“假”,值为“0”。当运算对象取不同的逻辑值时,逻辑运算真值表如表3-2所示。ab!a!ba&&ba||b110011100101011001001100运算符的优先级C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。在一个表达式中可能包含多种不同数据类型的数据及运算符,不同的运算顺序可能得出不同结果甚至出现错误运算错误,必须按一定顺序进行结合,才能保证运算的合理性以及结果的正确性、唯一性。当一个运算量两侧的运算符优先级相同时,按运算符的结合性所规定的结合方向处理,C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。在程序中,运算符的优先级如图3-1-3所示:图3-1-3运算符的优先级if单分支语句格式在选择结构中,一般我们把满足条件后执行一种结果,没有else的选择结构叫做单分支语句。单分支语句格式:if(表达式){语句1;语句2;…}单分支语句流程图:根据单分支的程序,流程图如图3-1-4所示,其中if单分支流程图(1)与N-S流程图(2)图3-1-4单分支流程图小贴士:这种自左至右的结合方向就称为小贴士:这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。示例1:求关系表达式的值。1#include<stdio.h>2voidmain()3{4intx=1,y=2,z=3;5printf("%d\n",3>2);6printf("%d\n",2>3);7printf("%d\n",x+y>x+z);8printf("%d\n",x>y==z);9printf("%d\n",z=x>y);10printf("%d\n",'c'<'d');11}运行截图:图3-1-5示例1运行截图解析:本例题为关系表达式的应用,第一个输出语句为求3>2的值,关系表达式运算结果为真或假,真为1,假为0,3>2成立结果为真,即为1;第二个输出语句求2>3的值,2>3不成立,结果为假,即为0;第三个输出语句中算术运算符+的优先级高于关系运算符>,先算加法,再比较大小,先求得x+y=1+2=3,x+z=1+3=4,再得到3>4的运算结果为假,即为0;第四个输出语句中关系运算符>优先级高于关系运算符==的优先级,先计算x>y也就是1>2,结果为假,即为0,再比较0==3,结果为假,即为0;第五个输出语句中关系运算符优先级高于赋值运算符,先比较x>y,也就是1>2,结果为假,即为0,再将0赋值给z,输出z的值为0;第六个输出语句为比较两个字符’c’和’d’,c的ASCⅡ码值小于d的ASCⅡ码值,结果为真,即为1。示例2:求逻辑表达式的值。程序代码:1#include<stdio.h>2voidmain()3{4intx=1,y=2,a=1,b=2,c=3,d=4,m=1,n=1;//定义整型变量5printf("%d\n",0&&x||y);//输出逻辑表达式的值6printf("%d\n",2||9&&0);7printf("%d\n",4-!3&&'c');8printf("%d,%d,%d\n",(m=a>b)&&(n=c>d),m,n);9printf("%d,%d,%d\n",(m=d>c)||(n=c>d),m,n);10}运行结果:
图3-1-6示例2运行截图解析:本例题为逻辑表达式的应用,第一个输出语句根据逻辑运算符&&优先级高于||,先进行0&&x(x值为1),结果为0,再进行0||y(y值为2,非零值),结果为1;第二个输出语句的求解过程同上;第三个输出语句中逻辑非!的优先级最高,先进行求解!3,结果为0,再进行算术运算符的求解4-0,结果为4,最后4&&‘c’,两个非零值进行逻辑与,结果为1;第四个输出语句中按照从左到右的次序输出,先进行关系运算a>b,将结果0赋值给m,但是由于0&&任意值均为0,所以后面部分不用再进行计算,直接输出表达式的值,所以表达式为0,m的值为0,n的值没有计算保持原始数据1,因此输出结果为0,0,1;第五个输出语句的求解过程同第四个。说明:C语言里由“&&”、“||”构成的逻辑表达式在某些情况下会产生“短路”现象。如:a&&b&&c只要a为假,就不必判别b和c;如果a为真、b为假,就不必判别c。再如:a||b||c只要a为真(非0),就不必判别b和c;只有a为假,才判别b;只有a和b都为假,才判别c。示例3:任意输入三个数a,b,c,求三个数中最大数max。算法:1.定义变量2.输入变量3.比较并输出流程图如下图3-1-7所示:程序代码voidmain(){intnum_a,num_b,num_c,max;printf("请输入三个数据");max=num_a;if(max<num_b)max=num_b;if(max<num_c)max=num_c;printf("最大值为%c",max);}图3-1-7示例3流程图3.1.3典型案例典型案例1:对纯电动客车可以通过剩余电池容量查询其续航里程,从键盘输入电池容量(27)千瓦时,显现它的续航里程为200km。(变量:电池容量batterycapacity,续航里程limitedmileage)算法分析:1.定义变量电池容量battery_capacity,续航里程limited_mileage2.输入电池容量3.判别显示4.输出典型案例1流程图如图3-1-8所示:图3-1-8典型案例1流程图程序代码#include"stdio.h"voidmain(){ doublebattery_capacity,limited_mileage; printf("请输入电池容量"); scanf("%lf",&battery_capacity); if(battery_capacity==27) {limited_mileage=200; printf("续航里程为%lf",limited_mileage); }}典型案例1运行截图如图3-1-9所示:图3-1-9典型案例1运行截图典型案例2:对纯电动客车可以通过续航里程查询其所需要的电池容量,要求从键盘输入汽车需要的续航里程(如果大于等于550km),输出此时对应的电池容量为80千瓦时。(变量:续航里程imited_mileage电池容量battery_capacity,l)算法分析:定义变量输入续航里程判断输出电池容量典型案例2流程图如图3-1-10所示:图3-1-10典型案例2流程图程序代码:#include"stdio.h"voidmain(){doublebattery_capacity,limited_mileage;printf("请输入续航里程为");scanf("%lf",&limited_mileage);if(limited_mileage>=550){battery_capacity=80;printf("电池容量为%lf",battery_capacity);}}典型案例2运行截图如图3-1-11所示:图3-1-11典型案例2运行截图典型案例3:从键盘输入汽车驾驶员的驾照类型,如果类型A,输出准驾车型为大客车。(变量:驾照类型Type_of_driving_license)算法分析:定义变量输入驾照类型判断输出驾照类型典型案例3流程图如图3-1-12所示:图3-1-12典型案例3流程图程序代码#include"stdio.h"voidmain(){ charType_of_driving_license; printf("请输入驾照类型:"); scanf("%c",&Type_of_driving_license); if(Type_of_driving_license=='A') { printf("准驾车型为大客车",Type_of_driving_license); }}典型案例3运行截图如图3-1-13所示:图3-1-13典型案例3运行截图3.1.4任务分析与实践算法分析:定义变量输入电池型号判别如果值为1,显示使用铅酸电池任务目标流程图如图3-1-14所示:图3-1-14任务目标流程图程序代码:#include"stdio.h"voidmain(){intbattery_type;printf("请输入新能源汽车的电池型号");scanf("%d",&battery_type);if(battery_type==1)printf("使用铅酸电池");}3.1.5动手练习1.编写程序,某公交公司
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中模拟试题及答案
- 2025年国家公务员考试气象局真题及答案解析
- 初中九年级信息技术学科VB程序设计中分支结构If语句的深度学习教案
- 初中七年级地理《地月系与火星:人类太空家园的探寻》教案
- 初中英语七年级下册Unit7 Have动词的多元用法与语用实践教学设计
- 小学一年级数学:10以内数的认识与连加、连减、加减混合运算综合实践课教案
- 2026年宿州市墉桥区政务服务中心(窗口人员)招聘笔试参考题库及答案详解
- 2026年宜春市袁州区政务服务中心(窗口人员)招聘考试备考题库及答案详解
- 2026年浙江省嘉兴市政务服务中心(窗口人员)招聘笔试参考题库及答案详解
- 2026年8月无锡市教育局直属单位公开选聘事业单位工作人员考试笔试备考题库及答案详解
- 2026年秋季初中开学第一课 行为规范 青春有规
- 2026年金融科技产品推广方案
- 成都市新都区2026年社区网格员招录考试真题库及完整答案
- 老旧小区下水井施工方案
- 2024年工业和信息化部工业文化发展中心社会招聘笔试真题
- GB/T 15822.1-2024无损检测磁粉检测第1部分:总则
- JB-T 14314-2022 活塞式调流阀
- 铝合金门窗安装施工工艺详解
- 慢性肾脏病5期查房
- 高一语文起始课课件
- 运行病历质量检查表(使用版)
评论
0/150
提交评论