C语言程序设计-模块二分支程序设计训练_第1页
C语言程序设计-模块二分支程序设计训练_第2页
C语言程序设计-模块二分支程序设计训练_第3页
C语言程序设计-模块二分支程序设计训练_第4页
C语言程序设计-模块二分支程序设计训练_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

模块二分支程序设计训练能力目标掌握关系表达式和逻辑表达式的应用。

掌握利用if语句实现的单分支和双分支选择结构。

掌握利用switch语句实现多分支选择结构。知识准备

任务引例----比较两个数的大小。#include<stdio.h>voidmain(){floata,b;printf("请您输入两个实数:\n");scanf("%f,%f",&a,&b);if(a>b)printf("第一个数较大。\n");elseif(a==b)printf("两个数相等。\n");elseprintf("第二个数较大。\n");}程

清单程序运行

请您输入两个实数:4,8第二个数较大。做中学2-1两个数的升序排序。2.1

if-else语句2.1.1单分支结构的if语句

算法设计

定义三个变量a,b,t,从键盘给a、b赋值。使用if语句判断a和b大小,如果a>b,交换a、b的值,算法见右图。结束程序运行请输入两个实数:4.4,2.3 2.304.40知识点语法格式:

if(条件表达式)语句;单分支结构执行过程:单分支结构if语句的执行过程如图2-2所示,首先对表达式求解,当结果为真(非0)时,则执行指定的语句;否则跳过指定语句,接着执行该语句下面的语句。

语法特征为:一个条件表达式,一个可选执行。图2-2if单分支结构B做中学2-2求绝对值。算法设计定义两个变量x,y,从键盘读值给x。如果x<0,y赋值为-x;否则,y赋值为x。算法见图2-3。2.1.2双分支结构的if-else语句

结束#include<stdio.h>voidmain(){intx,y;printf("输入一个整数:");scanf("%d",&x);if(x<0)/*判断x<0是否成立*/y=-x;else/*若x<0的值为假*/y=x;printf("这个数的绝对值是:%d\n",y);}程序清单程序运行输入一个整数:-5这个数的绝对值是:5

知识点

语法格式:if(条件表达式)

语句1;else

语句2;双分支结构执行过程:语法特征:

一个条件表达式,两个可选执行。

B做中学2-3某运输公司对用户收取运费的规定如下(s表示里程数km):S<2500(没有折扣)

250≤s<5002%500≤s<10005%1000≤s<20008%2000≤s<300010%3000≤s15%设基本运费为每公里每吨p元,货物重为w吨,折扣为d,总运费f的计算公式为f=p×w×s×(1-d)2.2switch-case语句算法设计通过分析上述数据可以看到,d随着s的增加而增加,有一定规律。s的每个取值范围,要么增加250,或者500,或者1000,均是250的倍数。我们可将公司对用户收取运费的规定理解如下表距离s折扣率d距离s折扣率ds<25001750≤s<20008%250≤s<5002%2000≤s<225010%500≤s<7505%2250≤s<250010%750≤s<10005%2500≤s<275010%1000≤s<12508%2750≤s<300010%1250≤s<15008%3000≤s15%1500≤s<17508%

#include<stdio.h>voidmain(){intc,s;floatp,w,d,f;printf("请输入每公里运价(元/吨*公里),货物重量(吨),运输里程(公里):"); scanf("%f,%f,%d",&p,&w,&s); if(s>=3000) c=12; else c=s/250; switch(c){case0:d=0;break; case1:d=2;break; case2: case3:d=5;break;case4: case5: case6: case7:d=8;break; case8: case9: case10: case11:d=10;break; case12:d=15;break;default:printf("输入里程有错!\n"); } f=p*w*s*(1-d/100.0f); printf("应缴运费:%15.4f\n",f);}程序运行请输入每公里运价(元/吨*公里),货物重量(吨),运输里程(公里):0.2,30,1200应缴运费:6624.0001知识点使用switch-case语句可以实现多分支选择结构,流程图如图2-5所示。

图2-5switch语句流程图知识点

语法格式:switch(表达式){case常量1:语句1;case常量2:语句2;┇case常量n:语句n;[default:语句n+1;]}switch-case语句使用说明:

表达式可以为任何整数类型。

各个常量取不同的值。

表达式的值与某个case后的常量的值相等,就执行此常量后面的语句。如果表达式的值没有和任何常量相匹配,就执行default后面的语句。如果省略了default语句,则不作任何处理,执行switch结构后面的语句。

如果在相匹配case的语句块中没有break语句,程序从此开始顺序执行,直到遇到某个case子句中的break语句,才跳出switch结构。否则,一直执行到switch语句结束。因而多个case可以共用同一组执行语句。如,case8:case9:case10:case11:d=10;break;case后面必须是常量表达式,表达式中不能包含变量。

如,不能写成caseb。default出现的位置不影响程序执行结果。所以可先出现default子句,再出现各case子句。语法特征为:一个表达式的值,对应n个常量表达式的值。边学边练实现英寸与厘米的换算。求方程ax2+bx+c=0的解。菜单程序设计。输入年份,判断是否为润年。三个数排序(升序)。根据利润计算工资。拓展提升2.3多分支结构的if-else语句

对于双分支结构的if语句,若它的子句(语句1或语句2)也是if语句,就出现了if语句的嵌套。执行过程见图2-8。图2-8多路分支选择结构做中学2-4分段函数计算。算法设计程序的功能为根据自变量x的取值范围,选择不同的数值表达式计算出y的值,并输出。x有四个范围,可构成3个条件表达式,4个可选分支的结构,流程图右图编程实现多值函数的功能结束#include<stdio.h>voidmain(){intx,y;printf("请输入一个整数:");scanf("%d",&x);if(x>0&&x<=10){/*如果满足条件0<x<=10*/y=x;printf("x∈(0,10],y=%d\n",y);}elseif(x>10&&x<20){/*如果满足条件10<x<20*/y=2*x;printf("x∈(10,20),y=%d\n",y);}elseif(x>=20&&x<100){/*如果满足条件20<=x<100*/y=3*x;printf("x∈[20,100),y=%d\n",y);}else{y=0;printf("x的值太大或太小!y=%d\n",y);}}程序清单程序运行第一次运行请输入一个整数:5x∈(0,10],y=5第二次运行请输入一个整数:15x∈(10,20),y=30第三次运行请输入一个整数:30x∈[20,100),y=90第四次运行请输入一个整数:120x的值太大或太小!y=0

知识点

语法格式:if(条件式1)

语句1;elseif(条件式2)

语句2;elseif条件式3)

语句3┇elseif(条件式n)

语句n;else

语句n+1;

执行过程:

首先求解表达式l的值,若为“真”,执行语句1;否则求解表达式2的值,若为“真”,执行语句2;否则继续求解表达式3,若为“真”,执行语句3;否则接着进行判断,依此类推,直到找到结果为“真”的表达式,并执行与之相关的语句。

如果经过求解,所有的表达式都为“假”,那么就执行最后一个else后面的语句。注意每一个else是和其前面最接近的if配对使用。做中学2-5运输公司对用户的运费计算(与做中学2-3相同)。算法设计高折扣率可以在低折扣率基础上加上一个常数得到。假设折扣率2%用d2表示、折扣率5%用d5表示、折扣率8%用d8表示、折扣率10%用d10表示、折扣率15%用d15表示,则可以得到下表。2.4switch-case语句的巧用距离s折扣率d折扣率d计算常数s<250d0=0d0=d0+00250≤s<500d2=2%d2=d0+22500≤s<1000d5=5%d5=d2+331000≤s<2000d8=8%d8=d5+332000≤s<3000d10=10%d10=d8+223000≤sd15=15%d15=d10+55即d15=d10+5=d8+2+5=d5+3+2+5=d2+3+3+2+5=d0+2+3+3+2+5。#include<stdio.h>voidmain(){ intc,s; floatp,w,d,f; printf("请输入每公里运价(元/吨*公里),货物重量(吨),运输里程(公里):"); scanf("%f,%f,%d",&p,&w,&s);d=0;if(s>=3000)c=12;elsec=s/250;switch(c){case12:d+=5;case11:case10:case9:case8:d+=2;case7:case6:case5:case4:d+=3;case3:ca

温馨提示

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

评论

0/150

提交评论