版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务说明根据选择后的去向,选择结构可分为单分支选择结构、双分支选择结构和多分支选择结构。在进行程序设计时,条件的设定非常重要。如果条件设定不好,那么可能很难达到预期目标。本学习任务是在学习关系和逻辑表达式的基础上学习选择结构程序设计。知识要求掌握关系运算和关系表达式。掌握逻辑运算和逻辑运算表达式。理解条件表达式和双分支选择结构的关系。掌握if语句的构成形式。掌握switch语句的构成形式。能依据实际问题完成程序流程图的绘制。能依据程序流程图写出程序代码。能准确运用关系和逻辑表达式。能够进行双分支和多分支选择结构的程序设计。能够排查程序中的错误。能力要求选择结构框图01学习选择结构的程序设计,首先要学会将选择结构用图来表示,以便与他人进行交流。从图3-1和图3-2所示的选择结构框图可以看出,不论以哪种方式表示,都有一个条件,这个条件有两种结果:成立或不成立。在现实生活中,表示只有两种状态的量是逻辑量,C语言中不设专门的逻辑量,认为凡非0的值都是“真”,0为“假”,当条件成立时结果为“真”,就是1;否则为“假”,就是0。图3-1选择结构程序流程图图3-2选择结构N-S图微课选择结构框图关系运算符和表达式021.关系运算符C语言提供了“<”、“<=”、“>”、“>=”、“==”和“!=”六种关系运算符。关系运算符的优先级低于算术运算符高于赋值运算符。2.关系表达式关系表达式就是用关系运算符将常量、变量和各种表达式连接起来的运算式。关系表达式关系表达式的值关系表达式关系表达式的值3>5045-12<300‘a’>=9711.2<=415!=81‘A’==651
应用举例3-1:计算下表中关系表达式的值微课关系运算符和表达式
应用举例3-2:设a,b,c的初值分别为3,4,5,计算下表中表达式的值。问题3-1:计算下表中关系表达式的值逻辑运算符和表达式031.逻辑运算符C语言提供了“&&”、“||”和“!”三种逻辑运算符。逻辑非“!”是单目运算符,其优先级高于算术运算符,逻辑与“&&”和逻辑或“||”的优先级低于关系运算符高于赋值运算符2.逻辑表达式逻辑表达式就是用逻辑运算符将常量、和各种表达式连接起来的运算式变量。
应用举例3-3:设a,b,c的初值分别为3,4,5,计算下表中逻辑表达式的值。微课逻辑运算符和表达式3.逻辑运算中的短路
当出现“0&&表达式”这样的逻辑表达式时,因0和任何表达式与的结果均为0,故无须计算右边的表达式,这就是逻辑运算中的短路现象。同样,“1||表达式”也存在短路现象。
应用举例3-4:设x的初值为3,经下表中逻辑表达式运算后,求x和逻辑表达式的值。
问题3-2:设变量已定义,且c=‘A’,x=25,计算下表中表达式的值。
If语句041.问题引入应用举例3-5输入一个字符,要求输出该字符并输入该字符是否为字母。(1)分析。输入一个字符,一定要定义一个字符变量来接收,然后判断该变量是否为字母,再决定输出内容。(2)绘制程序流程N-S图。以上分析思路可用图3-3所示的程序流程N-S图表示出来。图3-3应用举例3-5的程序流程N-S图if(表达式) 语句if(表达式) 语句1else 语句2if后的表达式必有括号这里的“语句”可以是语句组,需要用大括号括起来这里的“语句”还可以是if语句,这就是if语句的嵌套注意如果表达式的值为真(非0)则执行语句,否则即表达式的值为假(0)则跳过语句。如果表达式的值为真(非0)则执行语句1,否则即表达式的值为假(0)则执行语句2。2.if语句形式微课if语句依据流程写出程序代码
#include"stdio.h"voidmain(){ charx; printf("请输入一个字符:"); scanf("%c",&x); if(x>=‘a’&&x<=‘z’||x>=‘A’&&x<=‘Z’)//判断x是否为字母 {//两条以上语句要用大括号 printf("\n字符是:%c,",x); printf("是字母\n"); } else { printf("\n字符是:%c,",x); printf("不是字母\n"); }getchar();}微课应用举例问题3-3:输入一个整数,输出该数的绝对值。(1)绘制程序流程N-S图。(2)编写程序代码。条件运算符和表达式051.条件运算符条件运算符“?:”是三目运算符,需要有三个运算对象。条件运算符的优先级高于赋值运算符,低于关系运算符和算术运算符。“?:”三目运算符算术运算符关系运算符条件运算符赋值运算符优先级C语言中唯一的三目运算符2.条件表达式形式:表达式1?表达式2:表达式运算顺序:先计算表达式1
为真(非0)求解表达式2表达式2的值就是整个条件表达式的值不执行表达式3
为假(0)求解表达式3表达式3的值就是整个条件表达式的值不执行表达式2微课条件表达式应用举例3-6:计算下表中条件表达式的值。
问题3-4:当输入字母时,下面这个程序片段的功能是什么?charchscanf(“%c”,&ch);ch=(ch>=‘A’&&ch<=‘Z’)?(ch+‘a’-‘A’):ch;printf(“%c”,ch);思考:………….……………………..Switch语句06if语句只提供了两种选择,在解决多分支选择时要使用if语句的嵌套。由于使用多层的if语句嵌套非常不便,这时可以采用多分支选择结构的switch语句。1.switch语句形式微课switch语句2.switch语句执行过程如果表达式的值=常量表达式n,执行常量表达式n后面所有case和default语句,直到switch语句体结束。如果没有常量表达式等于表达式的值,直接跳到default,执行后面default的语句,直到switch语句体结束。如果没有常量表达式等于表达式的值并且没有default则跳过当前switch语句。3.switch语句说明运输公司运费的计算是依据所运物品的质量和运输距离决定的。运费t=运输距离s×运输质量w×单价p单价标准为5元/(吨·千米)如果距离远,单价按以下情况予以优惠。(1)当s<500km时,没有优惠,单价为5元/(吨·千米)(2)当500km≤s<1000km时,单价优惠2%。(3)当1000km≤s<2000km时,单价优惠5%。(4)当2000km≤s<3000km时,单价优惠8%。(5)当s≥3000km时,单价优惠10%。应用举例3-7:为某运输公司编制计算运费的程序(1)分析。将运输距离s定义为整数,然后用s除以500仍然是一整数,得出对应的单价,见表3-1。运行程序时,由用户输入运输距离s和运输质量w,程序输出单价p和总金额t。(2)绘制程序流程图。依据以上分析绘制出程序流程N-S图,如图3-4所示。图3-4应用举例3-7的程序流程N-S图
#include<stdio.h>voidmain(){ ints,w,g; floatp,t; printf("请输入运输距离(km):"); scanf("%d",&s); printf("请输入运输重量(吨):"); scanf("%d",&w); g=s/500; switch(g) { case0:p=5;break; case1:p=5*0.98;break; case2: case3:p=5*0.95;break; case4: case5:p=5*0.92;break;
(3)编写程序代码。 default:p=5*0.9;break; } t=p*w*s; printf(“单价是:%.2f(元/吨·千米),总额是:%.2f(元)\n",p,t); getchar();}(4)程序运行结果。为程序添加永真循环,连续输入不同的距离值,得到程序的执行结果,如图3-5所示。图3-5应用举例3-7的执行结果
问题3-5:分析下面这段程序,当输入92时,写出输出结果。如果只输出字符‘A’,如何修改程序?#include“stdio.h”voidmain(){intg;printf(“请输入一个分数”);scanf(“%d”,&g);printf(“g=%d:”,g);switch(g/10);{case10;case9:printf("A\n");case8:printf("B\n");case7:printf("C\n");case6:printf("D\n");default:printf("E\n");}getchar();}
思考:………
任务实施
任务一求最大数工作内容及要求:求最大数的问题是程序设计的基础性问题,经常出现在排序的程序设计环节中,为了更好地完成这个任务,将任务分为根据程序流程图编写程序代码、补充程序流程图、代码缩写等训练环节,最终编写一个程序实现从键盘输入三个不相同的整数、输出最大数的功能。图3-6所示是输入两个整数、输出较大数的程序流程图,请依据该图写出程序代码。#include………void………………{……………getchar();}编程训练3-1-1依据程序流程图编写程序代码图3-6编训练3-1-1的程序流程图请将图3-7程序流程图补充完整,实现输入三个整数、输出较大数的功能在“……”处填写正确的内容。编程训练
3-1-2补充程序流程图。图3-7编训练3-1-2的程序流程图在编程训练3-1-2的基础上写出程序代码。#include……………void…….{……………….……………….……………….}编程训练3-1-3编写程序代码。在计算机上调试编程训练3-1-3的程序代码,然后请小组同学检测代码的运行情况,按表中的输入数据测试程序,根据程序输出情况填写输出值。编程训练3-1-4调试代码。编程训练3-1-5简化程序。用条件表达式替代if语句,简化编程训练3-1-3中的程序代码并调试。#include……………void……………{………………printf(“请输入三个整数:”);………………
max=……….>……………?……………:……………max=……….>……………?……………:……………printf(“最大数是:……………”,……………);getchar();}任务二算术运算程序工作内容及要求:通过分析、调试和模仿指定程序,编写一个能进行加减乘除运算的算术运算器程。编程训练3-2-1阅读程序代码#include“stdio.h”voidmain(){intx,y,z;charc;do{printf("请输入如3+5这样的算术式并按Enter键:\n");scanf(“%d%c%d”,&x,&c,&y);}while(c!=‘+’&&c!=‘-’);编程训练switch(c){case‘+’:z=x+y;break;ca
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026浙江工业大学设计与建筑学院招聘办公室教务秘书1名(人才派遣A岗)笔试备考试题及答案详解
- 2026年郑州市航空港区专项计划招聘社区网格事务协理员30人笔试备考题库及答案详解
- 井冈山市古城镇招聘公益性岗位工作人员笔试备考题库及答案详解
- 2026陕西开放大学(陕西工商职业学院)储备师资及专职辅导员招聘(23人)笔试备考试题及答案详解
- 11-24072025供暖系统入户巡检规程
- 2026年农业发展银行(陕西省分行)校园招聘笔试备考题库及答案详解
- 2026广东江门市侨盛水务有限公司招聘1人笔试参考题库及答案详解
- 2026四川绵阳东辰高级中学招聘教师83人笔试参考题库及答案详解
- 2026广东广州生态环境监测中心站招聘编外人员3人笔试备考题库及答案详解
- 交通银行四川省分行2026年暑期实习生招聘笔试参考题库及答案详解
- 2026年北京市石景山区初三二模物理试卷(含答案)
- 2026年山东省核事故应急管理中心公开招聘人员(2名)笔试备考题库及答案解析
- 2026年六安霍山县顺通巴士有限公司招聘3名考试备考题库及答案解析
- 相信自己从容赴考课件-高三(7)班临门一脚主题班会
- 2026年医师定期考核考前冲刺模拟题库附完整答案详解【典优】
- 雨课堂学堂在线学堂云《现代农业创新与乡村振兴战略(扬州)》单元测试考核答案
- 苏教版三年级科学下册全册教案(2026年)
- 重庆市事业单位2026招聘公共基础知识高频考点题库含易错解析
- 语料库语言学
- 《归园田居(其一)》优秀课件
- 【心灵读物】人生海海,劈浪前行-读麦家《人生海海》有感
评论
0/150
提交评论