【文档说明】C语言应用实例教程-选择结构程序设计-求最大数课件.ppt,共(55)页,4.876 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44610.html
以下为本文档部分文字说明:
学习目标任务准备任务实施评价考核学习写选择结构的程序任务说明根据选择后的去向,选择结构可分为单分支选择结构、双分支选择结构和多分支选择结构。在进行程序设计时,条件的设定非常重要。如果条件设定不好,那么可能很难达到预期目标。本学习任务是在学习关系和逻辑表达式的基础上学习选择结构程序设计。知识要
求掌握关系运算和关系表达式。掌握逻辑运算和逻辑运算表达式。理解条件表达式和双分分支选择结构的关系。掌握if语句的构成形式。掌握switch语句的构成形式。能力要求能依据实际问题完成程序流程图的绘制。能依据程序流程图写出程序代码。能准确运用关
系和逻辑表达式。能够进行双分支和多分支选择结构的程序设计。能够排查程序中的错误。一、选择结构框图学习选择结构的程序设计,首先要学会将选择结构用图来表示,以便与他人进行交流。从图3-1和图3-2所示的选择结构框图可以看出,不论以哪种方式表示,都有一个条件,这个条件有两种结果:成立或不成立。在
现实生活中,表示只有两种状态的量是逻辑量,C语言中不设专门的逻辑量,认为凡非0的值都是“真”,0为“假”,当条件成立时结果为“真”,就是1;否则为“假”,就是0。图3-1选择结构程序流程图图3-2选择结构N-S图二、关系运算符合表达式1.关系运算符C语言提供了“
<”、“<=”、“>”、“>=”、“==”和“!〖KG-*2〗=”六种关系运算符。关系运算符的优先级低于算术运算符高于赋值运算符。2.关系表达式关系表达式就是用关系运算符将常量、变量和各种表达式连接起来的运算式。应用举例3-1:计算下表中关系表达式的值。应用举例3-2:设a,b,c的初值分别为
3,4,5,计算下表中表达式的值。问题3-1:计算下表中关系表达式的值。三、逻辑运算符合表达式1.逻辑运算符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语句1.
问题引入应用举例:输入一个字符,要求输出该字符并输入该字符是否为字母。(1输入一个字符,一定要定义一个字符变量来接收,然后判断该(2)绘制程序流程N-S以上分析思路可用图3-3所示的程序流程NS图3-3应用举例3-5的程序流程N-S图2.If
语句形式if(表达式)语句if(表达式)语句1else语句2if后的表达式必有括号这里的“语句”可以是语句组,需要用大括号括起来这里的“语句”还可以是if语句,这就是if语句的嵌套注意如果表达式的值为真(非0)则执行语句,否则即表达式的值为假(0)则
跳过语句。如果表达式的值为真(非0)则执行语句1,否则即表达式的值为假(0)则执行语句2。#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");}els
e{printf("\n字符是:%c,",x);printf("不是字母\n");}getchar();}依据流程写出程序代码问题3-3:输入一个整数,输出该数的绝对值。(1)绘制程序流程N-S图。(2五、条件运算符合表达式1.条件运算符条件运算符“?:”是三目运算符,需要有三个运算对
象。条件运算符的优先级高于赋值运算符,低于关系运算符和算术运算符。“?:”三目运算符算术运算符关系运算符条件运算符赋值运算符优先级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语句if语句只提供了两种选择,在解决多分支选择时要使用if语句的嵌套。由于使用多层的if语句嵌套非常不便,这时可以采用多分支选择结构的switch语句。1.switch语句形式2.switch语句执行过程如果表达式的值=常量表达式n,执行常量表达式n
后面所有case和default语句,直到switch语句体结束如果没有常量表达式等于表达式的值,直接跳到default,执行后面default的语句,直到switch语句体结束如果没有常量表达式等于表达式的值并且没有default则跳过当前s
witch语句3.switch语句说明应用举例3-7:为某运输公司编制计算运费的程序。运输公司运费的计算是依据所运物品的质量和运输距离决定的。运费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%。将运输距离s定义为整数,然后用s除以500仍然是一整数,得出对应的单价,见表3-1。(1)分析。运行程序时,由用户输入运输距离s和运输质量w,程序输出单价p和总金额t。依据以上分析绘制出程序流程N-S图,如图3-4所示。(2)绘制程序流程图。图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;b
reak;(3)编写程序代码。default:p=5*0.9;break;}t=p*w*s;printf("单价是:%.2f(元/吨·公里),总额是:%.2f(元)\n",p,t);getchar();}为程序添加永真循环,连续输入不同的距离值,得到程序的执行结果,如图3-5
所示。(4)程序运行结果。图3-5应用程序举例3-7的执行结果图问题3-5:分析下面这段程序,当输入92时,写出输出结果。如果只输出字符‘A’,如何修改程序?#include“stdio.h”voidmain(){intg;printf(“请输入一个分数”);scanf(“%d”,&g);prin
tf(“g=%d:”,g);switch(g/10);}思考:……………………………………………………………………………………………………………………………任务实施任务一求最大数工作内容及要求:求最大数的问题是程序设计的基础性问题,经常出现在排序的程序设计环节中,为了更好地完成这个任务,将任务分
为根据程序流程图编写程序代码、补充程序流程图、代码缩写等训练环节,最终编写一个程序实现从键盘输入三个不相同的整数、输出最大数的功能。编程训练3-1-1依据程序流程图编写程序代码。图3-6所示是输入两个整数
、输出较大数的程序流程图,请依据该图写出程序代码。#include………………………………………void……………………………………………….{……………………………………………………………..}getchar();}图3-6编训
练3-1-1的程序流程图编程训练3-1-2补充程序流程图。请将图3-7程序流程图补充完整,实现输入三个整数、输出较大数的功能在“………”处填写正确的内容。图3-7编训练3-1-2的程序流程图编程训练3-1-3编写程序代码。在编程训练3-1-2的基础上写出程序代码。#includ
e……………………………void…………………………………….{……………………………………………….……………………………………………….……………………………………………….……………………………………………….}编程训练3-
1-4调试代码。在计算机上调试编程训练3-1-3的程序代码,然后请小组同学检测代码的运行情况,按下表中的输入数据测试程序,根据程序输出情况填写输出值。编程训练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(“”);scanf(“%d%c%d”,&x,&c,&y);}while(c!=„+‟&c&c!=„-‟);switch(c){case‟+‟:z=x+y;break;cas
e„-‟:z=x-y;}printf(“%d%c%d=%d\n”,x,c,y,z);}编程训练3-2-2运行程序。将编程训练3-2-1中的程序在VC环境中调试、运行并填写下表,总结程序的功能。编程训练3-2-3算术运算
程序。模仿编程训练3-2-1的程序,编写一个能进行加减乘除运算的算术运算程序。编程训练3-2-4测试程序。在电脑上调试编程训练3-2-3中的程序代码,然后请小组同学检测程序代码运行情况,按下表中的输入数据测试程序,根据程序输出情况填写输出
值。编程训练3-2-5修改程序。修改编程训练3-2-3的程序,编写一个能反复进行小数加减乘除运算的程序。祝你进步!