版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计C语言程序设计、结构化程序设计的有哪几种基本结构?、算法的描述方法都有哪几种?、C语句的分类有哪些?课程回顾、结构化程序设计的有哪几种基本结构?课程回顾4. 选择结构程序设计4.1有节约要求的水费问题4.2 if语句4.3switch语句4. 选择结构程序设计4.1有节约要求的水费问题学习目标熟练掌握if语句的各种用法掌握switch语句的用法4. 选择结构程序设计能够编写简单的选择结构程序学习目标熟练掌握if语句的各种用法掌握switch语句的用法选择结构单分支双分支if (表达式) 语句多分支if (表达式) 语句else 语句if (表达式1) 语句else if (表达式
2、) 语句else 语句nif 语句的嵌套switch语句4. 选择结构程序设计选择结构单分支双分支if (表达式) 语句多分支if 4.1 有节约要求的水费问题任务描述 为提倡节约用水,按照每月每户每人3吨水进行定量,标准以内的用水量水费为每吨1.51元,超额的部分2倍付费。需要我们编写程序来解决每户每个月要交的水费问题。 问题分析:1、每户的人口数2、每个月所用的水量3、判断是否超出了定量标准4、进行水费的计算。 4.1 有节约要求的水费问题任务描述数据需求 1、程序常量 DOSAGE 3 CRITERION 1.51 2、输入数据 int person /*存放人口数*/ float pr
3、evious,behind /*存放上个月水表 读数,这个月水表读数*/ 3、输出数据 int ration /*每户标准用水量*/ float water,charge /*用水总量,总水费*/ 4.1 有节约要求的水费问题数据需求4.1 有节约要求的水费问题算法1获取数据:读入水表上个月和这个月的读数,读入人口数。2计算用水量:water=behind-previous。3计算用水标准量:ration=person*DOSAGE4if没有超出标准用水量 charge=water*CRITERION else charge=ration*CRITERION+(water-ration)*2*
4、CRITERION5显示水费总数。实践4.1 有节约要求的水费问题算法实践4.1 有节约要求的水费问题流程图 4.1 有节约要求的水费问题流程图4.1 有节约要求的水费问题功能实现#include #define DOSAGE 3#define CRITERION 1.51main() int person,ration; float previous,behind,water,charge; printf(请输入人口数、上月水表读数、本月水表读数:); scanf(%d %f %f,&person,&previous,&behind); ration=person*DOSAGE; water
5、=behind-previous; if(water=ration) /* 条件判断,分支选择 */ charge=water*CRITERION; else charge=ration*CRITERION+(water-ration)*2*CRITERION; printf(n用户水费是:%.2fn,charge); 4.1 有节约要求的水费问题功能实现4.1 有节约要求的水费问题单分支if语句 该语句的一般形式如下: if(表达式) 语句 ;功能:如果表达式的值为真,则执行其后面的语句,否则不执行该语句。 4.2.1 if语句单分支if语句 该语句的一般形式如下: 4.2.112#incl
6、ude int main() float score; scanf(%f,&score); if (score=60) printf(通过考试!); return 0;89通过考试!思考? 从键盘输入一个月考成绩,如果输入成绩大于等于60,在屏幕上输出通过考试!4.2.1 if语句12#include 89思考?4.2思考?在键盘上输入两个数,输出其中较大的那个数?#include int main() float a,b,max; scanf(%f,%f,&a,&b); max=a; if (bmax) max=b; printf(max is %fn,max); return 0;思考?#
7、include 双分支if语句这是if语句比较完整的形式,包含一条if子句和一条else子句。该语句的一般形式如下:if(表达式) 语句1; else 语句2 ;功能:如果表达式的值为真,则执行语句1,否则执行语句2。 4.2.1 if语句双分支if语句这是if语句比较完整的形式,包含一条if子#include int main() float score; scanf(%f,&score); if (score=60) printf(通过考试!); else printf(没有通过考试!); return 0; 思考? 从键盘输入一个月考成绩,如果输入成绩大于等于60,在屏幕上输出通过考试!
8、否则输出没有通过考试!#include 思考?void main() float a,b,t; scanf(%f,%f,&a,&b); if(ab) t=a;a=b;b=t; printf(%5.2f,%5.2f,a,b);思考?利用分双支结构,在键盘上输入两个数,按数据大小顺序输出?void main()思考?思考?输入3个数a,b,c,要求按由小到大的顺序输出?#include void main() float a,b,c,t; scanf(%f,%f,%f,&a,&b,&c); if(ab) t=a;a=b;a=t; /*实现a和b的互换*/ if(ac) t=a;a=c;c=t; /
9、*实现a和c的互换*/ if(bc) t=b;b=c;c=t; /*实现b和c的互换*/ printf(%5.2f,%5.2f,%5.2f,a,b,c);思考?#include #include int main() float a,b,c,area,s; scanf(“%f,%f,%f”,&a,&b,&c); if (a+bc )& (a+cb )&( b+ca) s=(a+b+c)/2; area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%7.2fn”,area); else printf(“Not a triangle!n”);reutrn 0;【例
10、】输入三角形的三边,求三角形的面积。输入a,b,c是三角形吗?s (a+b+c)/2areasqrt(s*(s-a)*(s-b)*(s-c)输出area输出“非三角形!”3,4,5area= 6.003,4,8Not a triangle!4.2.1 if语句#include 【例】输入三角形的三边多分支if语句该语句的一般形式如下:if(表达式1)语句1else if(表达式2) 语句2 .else if(表达式n) 语句nelse 语句n+1 功能:依次判断表达式的值,当出现某个表达式的值为真时,则执行其对应的语句,然后跳转到整个if语句之后继续执行程序;如果所有的表达式均为假,则执行el
11、se后的语句n+1。 4.2.1 if语句多分支if语句该语句的一般形式如下:4.2.1 if多分支if语句4.2.1 if语句多分支if语句4.2.1 if语句#include void main( ) float number,cost,result; printf(“请输入消费:); scanf(%f,&number); 4.2.1 if语句商场打折:花费超过500元打85折,花费超过300元打9折,花费超过100元,打99.25折,花费超过50元打95,请输入商场消费,输出实际消费。if(number500) c7st=0.15;else if(number300) cost=0.10
12、; else if(number100) cost=0.075; else if(number50) cost=0.05; else cost=0; result=number-number*cost; printf(“实际消费:%fn”,result);#include 4.2.1 if语句#include int main( ) float score; char grade; printf(Please input the score:); scanf(%f,&score); if (score=90&score=80&score=70&score=60&score=0&score60)
13、 grade=E;else printf(your score is wrong .n); grade=0; printf(score is %.2f, grade is %cn“,score,grade);return 0; #include 4.2.1 if语句int main()int n,m;printf(“please input n:n”);scanf(“%d”,&n);if(n%3=0 & n%7=0)m=2;else if(n%3=0 | n%7=0)m=1;elsem=0;printf(“the result is %d”,m);return 0; 4.2.1 if语句 输入
14、一个整数,若该数能够被3和7整除,则输出2;若只能被3和7中的一个整除,则输出1;若不能被3和7中的任意一个整除,则输出0;int main()4.2.1 if语句 输入一个整数,嵌套的if语句 当if语句的操作语句中包含其他if语句时,称为嵌套的if语句。该语句的基本形式如下: 4.2.2 if语句嵌套注意if与else的配对原则:else总是与它上面的最近的未配对的if配对。嵌套的if语句 当if语句的操作语句中包含其他if语句时举例已知a=3 b=4 c=5 d=0, d=?if (ab)d=a;else if (cb) d=c; else d=b;if (ab)if (cb) d=c;
15、else d=b ;if (ab)if (cb) d=c;else d=b ;if (ab) if (cb) d=c; else d=b;else d=a;d=5d=3d=0d=44.2.2 if语句嵌套举例已知a=3 b=4 c=5 d=0, d=int main()int a,b,c,max;scanf(%d,%d,%d,&a,&b,&c);if (ab) if (ac) max=a; else max=c;else if(bc) max=b; else max=c;printf(max=%dn,max);return 0; 编写C程序,实现从键盘任意接收3个整数,输出最大数?4.2.2
16、if语句嵌套int main() 编写C程序,实现从键盘任意接收3实例分析 编写程序,输入一个x的值,按以下函数计算并输出y的值。 -1 (x0) 4.2.2 if语句嵌套实例分析 编写程序,输入一个x的值,按以下函数计算实例分析4.2.2 if语句嵌套实例分析4.2.2 if语句嵌套实例分析#include void main() int x,y; scanf(%d,&x); if(x0) y=-1; else if(x=0) y=0; else y=1; printf(x=%d,y=%dn,x,y); 4.2.2 if语句嵌套实例分析#include 4.2.2 实例分析 编写程序,输入一
17、个x的值,按以下函数计算并输出y的值。 x (x1)y = 2x-1 (1=x=10) 4.2.2 if语句嵌套实例分析 编写程序,输入一个x的值,按以下函数计算实例分析#include int main()int x,y;printf(“please input the x:n”);scanf(“%d”,&x);if(x=1 & x=10)y=3*x-1;printf(“y is %d”,y);return 0;4.2.2 if语句嵌套实例分析#include 4.2.2 32课堂小结 1. 单分支(if结构) 2. 双分支结构(ifelse )结构格式 3. ? : 条件表达式 4.if与
18、else的配对原则: else总是与它上面的最近的未配对的if配对。 32课堂小结 1. 单分支(if结构)选择结构单分支双分支if (表达式) 语句多分支if (表达式) 语句else 语句if (表达式1) 语句else if (表达式) 语句else 语句nif 语句的嵌套switch语句课堂小结选择结构单分支双分支if (表达式) 语句多分支if 课程回顾1、if与else的配对原则?2、写出程序运行结果。#include intmain()int a=100,x=10,y=20,ok1=5,ok2=0;if(xy) if(y!=10) if(!ok1) a=1; else if(ok
19、2) a=10;a=-1;printf(“%dn”,a);return 0;课程回顾1、if与else的配对原则?4. 选择结构程序设计4.1有节约要求的水费问题4.2 if语句4.3 switch语句4. 选择结构程序设计4.1有节约要求的水费问题4.3 switch语句if语句只有两个分支可供选择,而实际问题中常常需要用到多分支的选择。所以C语言提供了一种switch语句专门处理多分支的情形,使程序变得简洁易懂。switch语句的一般形式如下:switch(表达式) case 常量表达式1: 语句块1 case 常量表达式2: 语句块2 case 常量表达式n: 语句块n default:
20、 语句块n + 1 功能:首先计算switch后面括号内的“表达式”,然后依次与各个case后面的“常量表达式”的值进行比较,当“表达式”的值与某一个case后面的“常量表达式”的值相等时,就选择这个标号作为入口,执行该case子句后面的语句块,并继续执行其后的所有case子句直到程序结束。如果“表达式”的值与所有case后面的“常量表达式”的值都不相等,则执行default后面的语句。 4.3 switch语句if语句只有两个分支可供选择int main () int a; scanf(%d,&a); switch(a) case 1: printf(Mondayn);break; case
21、 2: printf(Tuesdayn);break; case 3: printf(Wednesdayn);break; case 4: printf(Thursdayn);break; case 5: printf(firdayn);break; case 6: printf(Saturadayn);break; case 7: printf(Sundayn);break; default: printf(errorn); return 0;输入17的整数,要求输出对应的星期的英文单词。4.3 switch语句int main ()输入17的整数,要求输出对应的星期的在使用switch结构
22、时应注意以下几点:switch 语句中的“表达式”和case后面的“常量表达式”的结果值的类型应该一致。每一个case的常量表达式的值必须互不相同,否则出现矛盾现象。各个case的出现次序不影响执行结果。执行完一个case后面的语句后,流程控制转移下一个case继续执行,除非有break语句跳出switch。default 语句可有可无。另外,default 后面可以不加break语句。4.3 switch语句在使用switch结构时应注意以下几点:switch 语句中实例分析输入一个百分制成绩,要求输出对应的成绩等级。#include int main( ) float score; int
23、 temp; char grade; printf(Please input :); scanf(%f,&score); temp=(int)score/10;switch(temp)case 10: case 9: grade=A; break;case 8: grade=B; break;case 7: grade=C; break;case 6: grade=D; break;default: grade=E;printf(score is %.2f, grade is %cn“ ,score, grade);return 0;4.3 switch语句实例分析输入一个百分制成绩,要求输出
24、对应的成绩等级。#inc#include int main()int year, month, day;int leap;printf(please input the year number:);scanf(%d, &year);printf(please input the month number:);scanf(%d, &month);if(year%400 = 0)|(year%4 = 0 & year%100 != 0) leap = 1;else leap = 0;编写一C程序,实现输入年份和月份,打印输出该年该月有多少天。4.3 switch语句#include 编写一C程序,
25、实现输入年switch(month) case 1:case 3:case 5:case 7:case 8:case 10:case 12: day=31; break;case 4:case 6:case 9:case 11: day=30; break;case 2: if(leap=0) day=28; else day=29; break;default: day=1; if(day=1) printf(Invalid month input!n);else printf(%d.%d has %d days.n, year, month, day);return 0;switch(month) 小 型 案 例任务描述 运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:s250km 没有折扣250s500 2%折扣500s1000 5%折扣1000s2000 8%折扣2000s3000 10%折扣3000s 15%折扣 小 型 案 例任务描述分析 设每公里每吨货物的基本运费为p(price的缩写),货物重为w(weight的缩写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024版建筑工程架子工承包协议模板版B版
- 2024深圳市生物医药研发合作合同
- 大连2024年辽宁大连市长海县招聘卫生专业技术人员14人笔试历年典型考点(频考版试卷)附带答案详解
- 总平工程施工方案
- 云南2024年云南中医药大学招聘第三批科研助理岗位工作人员15人笔试历年典型考点(频考版试卷)附带答案详解
- 2025年中国风冷模块式冷热水机组市场调查研究报告
- 2025年中国绕线器地板夹市场调查研究报告
- 大型货物道路运输政策研究考核试卷
- 2025年中国扎染丝巾市场调查研究报告
- 课程设计水利水电专业
- (物理)初中物理力学题20套(带答案)及解析
- 工程监理大纲监理方案服务方案
- (3.10)-心悸急诊医学急诊医学
- 不动产登记操作规范解读
- 盖洛普Q12解读和实施完整版
- GB/T 20840.8-2007互感器第8部分:电子式电流互感器
- GB/T 14864-2013实心聚乙烯绝缘柔软射频电缆
- 信息学奥赛-计算机基础知识(完整版)资料
- 发烟硫酸(CAS:8014-95-7)理化性质及危险特性表
- 数字信号处理(课件)
- 公路自然灾害防治对策课件
评论
0/150
提交评论