版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE课题任务5.1显示某品牌新能源汽车一年的销售额(一维数组的输入与输出)课型讲练授课班级授课时数2教学目标1、掌握一维数组的定义、引用、初始化2、掌握数组的输入和输出教学重点1、一维数组的定义、引用、初始化2、一维数组实际应用教学难点数组的应用-从0开始学情分析数组概念的理解、数组在内存中的存储实质,地址的概念都应在刚接触数组时有所了解。学生组成一个班级利用学号组织。但是学号是从1开始,数组的开始从0开始,容易产生“失误”。教学效果教后记任务5.1显示某品牌新能源汽车一年的销售额(一维数组的输入与输出)5.1.1任务目标创建一个C语言程序,显示某品牌新能源汽车客车每月新增量(1-6月,每月新增量为60,54,50,70,36,51)。5.1.2知识储备之前已经学习了定义变量,但是当我们需要批量处理问题时,就会遇到很大的麻烦。比如一个车队有100名人员,那么是否需要定义100个变量,显然有问题的,这时我们就需要引入一种新的类型,数组,可以批量定义。1.数组的定义数组是具有相同类型的数据项的序列,是一种用于表示大量同类值的数据类型,我们通过下标访问数组的元素。2.一维数组程序经常使用同类的数据,例如我们要处理一些成绩,可以声明intgrade1,grade2,grade3;然而如果成绩量很大时,就要使用大量的标识符进行表示,且标识符必须唯一,这样做是很麻烦的,此时我们应该使用数组,用下标访问数组的各个元素,用方括号括住数组的下标。为了在程序中使用grade[0]、grade[1]、grade[2],我们声明intgrade[3];声明中的整数3表示数组的尺寸,即数组中元素的个数。注意,数组元素的下标总是从0开始。一维数组声明是一个类型后跟一个带有方括号括起来的常量整数表达式的标识符。常量表达式指定了数组的尺寸,但它的值必须是正的;它指定了数组中元素的个数。为了存储数组的元素,编译器会分配从一个基地址开始的适当大小的内存。3.一维数组的初始化当定义一个数组时,系统根据类型说明,分配由常量表达式所指定的相应数量的存储单元,一个存储单元对应一个数组元素。数组的初始化实质上就是在定义数组时,为每一个数组元素赋初值。数组的初始化是在编译阶段完成的,不占用运行时间。这样可以使数组元素在程序开始运行前就得到初值,从而节约了运行时间,提高了执行速度。一维数组的初始化可分为以下几种情况:①给全部数组元素赋初值例:intarray[8]={1,2,3,4,5,6,7,8};在给全部数组元素赋初值的情况下,也可以写成如下形式:intarray[]={1,2,3,4,5,6,7,8};系统会根据{}中的8个数据自动定义数组array的长度为8。②给部分元素赋值③④在定义一个数组时,可以只给部分元素赋初值,但不能越过前面的元素给后面的元素的赋值。后面未被赋值的元素根据其数据类型自动取为0或‘\0’例:inta[6]={1,2,3};//等价于inta[6]={1,2,3,0,0,0};*/charc[4]={‘a’,‘b’};//等价于charc[4]={‘a’,‘b’,‘\0’,‘\0’};(4)一维数组元素的引用数组是一组数组元素的顺序集合,数组名代表了整个数组存储空间的首地址。当我们对数组进行操作时,不能对整个数组进行操作,只能对其中的数组元素进行操作。4.一维数组元素的引用方式为:数组名[下标表达式]下标表达式即为该数组元素在数组中的位置。例如:若有如下定义:intgrade[3];则grade[0]、grade[2]、grade[i]、grade[i+j]都是数组元素合法的引用形式,但要注意下标的取值范围,它的下限为0,上限为数组长度-1。5.键盘输入10个同学的C语言成绩,并显示每个同学的成绩。程序代码:#include"stdio.h"//头文件#defineN10//定义符号常量voidmain()//主函数{ intgrade[N],i;//定义整型数组gradefor(i=0;i<N;i++)scanf("%d",&grade[i]);//通过输入语句对数组元素赋值for(i=0;i<N;i++)printf("%d号的成绩为%d\n",i+1,grade[i]);//输出数组元素}程序运行截图如图5-1-1所示:图5-SEQ图5-\*ARABIC1-1示例运行截图程序解析:数组grade需要存储10个整数值的内存空间。假设我们的机器用4个字节存储一个int型的值。如果grade[0]存储地址为2000,那么其余的数组元素连续的存储地址为2004、2008、2012、2016、2020、2024、2028、2032、2036。如表5-1所示。表5-SEQ表5-\*ARABIC1数组数据存储存储地址数值数组地址地址200089grade[0]地址200498grade[1]地址200876grade[2]地址201267grade[3]地址201678grade[4]地址202087grade[5]地址202488grade[6]地址202866grade[7]地址203299grade[8]地址203679grade[9]第2行代码,把数组的尺寸定义为符号常量,这是一种良好的编程习惯。因为很多代码要依赖这个值,要改变数组的大小,可在#define中很方便地改变该值。通常把变量i用作数组的下标变量。第6第7行代码是一种处理全部数组元素的关键性习惯用法。一般下标变量从0开始,一直到N-1。5.1.3典型案例典型案例1:已知某品牌4S店的一年12月的销售量分别为{10,12,15,14,16,8,7,14,16,17,11,12},输出12个月的销售数据。算法分析1.定义变量2.输入销售量(注意数组格式)3.输出销售量流程图:典型案例1流程图如图5-1-2所示图5-1-SEQ图5-\*ARABIC2典型案例1流程图程序代码:#include"stdio.h"voidmain(){intsales[12];inti;printf("请输入销售量:(12个月)\n");for(i=0;i<12;i++){printf("%d月",i+1);scanf("%d",&sales[i]);}printf("1-12月某品牌4S店销售情况表:\n");printf("一月\t二月\t三月\t四月\t五月\t六月\t七月\t八月\t九月\t十月\t十一月\t十二月\n");for(i=0;i<12;i++){printf("%d\t",sales[i]);}printf("\n");}典型案例1运行截图如图5-1-3所示图5-1-SEQ图5-\*ARABIC3典型案例1运行截图典型案例2:下表为某品牌新能源小客车在不同时段的耗油量,从键盘输入各个时段的耗油量,编写程序求出该小客车的平均耗油量。具体的时段和耗油量如表5-2所示(参考变量耗油量oilconsumption总耗油量sum_oilconsumption,平均耗油量avg_oilconsumption)表5-2时段和耗油量时段时段1时段2时段3时段4时段5时段6时段7时段8时段9耗油量8.58.89.210.17.88.68.78.79.5算法分析1.定义变量耗油量,总耗油量,平均耗油量,i;2.求总耗油量;3.计算平均耗油量;4.输出平均耗油量;典型案例2流程图如图5-1-4所示图5-1-SEQ图5-\*ARABIC4典型案例2流程图程序代码#include"stdio.h"voidmain(){doubleoilconsumption[9]={8.5,8.8,9.2,10.1,7.8,8.6,8.7,8.7,9.5};doublesum_oilconsumption=0,avg_oilconsumption; inti=0;for(i=0;i<9;i++) {sum_oilconsumption+=oilconsumption[i]; }avg_oilconsumption=sum_oilconsumption/9.0; printf("平均耗油量:%f\n",avg_oilconsumption);}典型案例2运行截图如图5-1-5所示图5-1-SEQ图5-\*ARABIC5典型案例2运行截图典型案例3:已知某品牌4S店的销售人员根据每年的销售量情况,分为不同等级的销售员,分别为’A’,’B’,’C’,’D’,要求输出销售人员的销售等级。*/(参考变量销售员salesman)算法分析1.定义变量2.输出销售人员的销售等级(注意数组成员类型)流程图:典型案例3流程图如图5-1-6所示图5-1-SEQ图5-\*ARABIC6典型案例3流程图程序代码#include"stdio.h"voidmain(){charsalesman[10]={'C','A','B','A','C','B','D','C','C','A'};inti;for(i=0;i<10;i++){printf("销售员%d,等级:%c\n",i+1,salesman[i]);} }典型案例3运行流程图如图5-1-7所示图5-1-SEQ图5-\*ARABIC7典型案例3运行截图5.1.5任务分析与实践算法分析1.定义变量2.输入汽车数据3.输出汽车数据任务目标流程图如图5-1-8所示图5-1-SEQ图5-\*ARABIC8任务目标流程图#include"stdio.h"#defineN6//定义符号常量,表示有6个月voidmain(){intV_number[N];//定义存放新增量的数组inti;for(i=0;i<N;i++)scanf("%d",&V_number[i]);//键盘输入6个月的数据printf("某市海格新能源全天然气客车月新增量明线表\n");printf("1月份\t2月份\t3月份\t4月份\t5月份\t6月份
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026青岛掌控传媒有限公司二次招聘1人考前冲刺试卷及参考答案详解【黄金题型】
- 2026南昌市西湖区残疾人联合会招聘残疾人专职干事1人考前冲刺试卷含答案详解【培优】
- 2026山西大同师范高等专科学校招聘博士研究生5人笔试题库及参考答案详解【巩固】
- 2026年医疗审计专业能力考试题目及答案
- 2026年浙江省湖州市单招综合素质考试题库及完整答案详解全国通 用
- 2026年海事工程施工专业考试题目及答案
- 2026年水上运输从业人员培训考试试卷及答案
- 2026年数据安全管理岗位考试题目及答案
- 2025年地震灾害处置理论知识测试题(含答案)
- 医疗诊断设备运维服务中心建设项目可行性研究报告
- 临床执业助理医师资格考试综合笔试(第二单元)真题及解析(2026年)
- 2026年全国通信专业技术人员职业水平考试(通信专业综合能力初级)综合试题及答案
- 2026年度中国脑机接口行业深度分析报告
- 围手术期记录书写规范
- 2026河南机关事业单位工勤保育员技师考评真题
- 四川省高速公路施工标准化技术指南-桥梁工程
- 护理老年护理知识与技能
- (2026版)E6(R3)药物临床试验质量管理规范实施课件
- 2026年华为校招试题
- 职业暴露评价的队列设计
- 奢享级足浴盆多穴位按摩恒温理疗推广方案
评论
0/150
提交评论