- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 数组和函数
主要内容:
一维和二维数组的声明、引用、初始化;函数的定义、调用、声明;变量的作用域。
教学要求:
掌握一维数组的定义、初始化、和引用方法,熟悉数组的基本操作
掌握函数的定义、调用方法和返回值
掌握全局变量和局部变量的作用域
4.1 一维数组
数组是一种最简单的构造数据类型。数组是同类型数据的集合,数组中的每一个元素都具有相同的数据类型。数组包括一维数组和多维数组。
4.1.1 一维数组的声明
同其它变量一样,使用数组之前必须先对数组进行声明。
声明数组的一般格式如下:
类型说明符 数组名[数组元素个数];
例如:
int a[5]; /*声明了一个int型数组a,由5个数组元素组成。*/
float f[10]; /*声明了一个float型数组f,由10个数组元素组成*/
char c[100]; /* 声明了一个char型数组c,由100个数组元素组成*/
注意
数组名的命名遵循标识符的命名规则。
数组中的元素是同一类型。
数组中的元素是有序的,每一个元素都有唯一的顺序位置与之相对应。
4.1.2 一维数组的引用
数组元素的引用的一般格式如下:数组名[下标]
其中:
下标可以是整型常量或整型表达式。
数组中的一个元素的引用是通过数组名和下标来确定,下标从0开始,一直到组元素的总数减1。
例如:int a[5]; /*5个数组元素分别是a[0],a[1],a[2],a[3],a[4]*/
float f[3];/*3个数组元素分别是f[0],f[1],f[2]*/
【例4-1】练习对数组元素赋值并输出数组元素的值。
main()
{
int a[10],i; /*定义整型数组a和循环变量i*/
for(i=0;i10;i++) /*此循环语句用来对数组元素逐个赋值*/
a[i]=i; /*将循环变量i的值赋值给a[i]*/
for(i=0;i10;i++) /*此循环语句用来逐个输出数组元素的值*/
printf(a[%d]=%d\n,i,a[i]); /*双撇号里除了%d外均为普通字符原样输出*/
}
程序分析与解释:
本程序实现的功能是在程序运行过程中对数组a中的元素赋值,然后逐个输出数组元素的值。运行结果如图4-1所示。
图4-1 程序运行结果
4.1.3 一维数组的初始化
1.定义数组的同时对全部数组元素初始化。此时可以不用指明数组的长度。
例如:
定义一个含有10个元素的int型数组a,并对其全部元素赋初值:
int a[10]={0,1,2,3,4,5,6,7,8,9};
或者
int a[]={0,1,2,3,4,5,6,7,8,9};
经过初始化后,a[0]=0,a[1]=1,a[2]=2,a[3]=3,a[4]=4,
a[5]=5,a[6]=6,a[7]=7,a[8]=8,a[9]=9。
2.定义数组的同时对部分数组元素初始化。此时必须指明数组元素的长度。
例如:定义了一个含有5个元素的int型数组a,并只对其前3个元素赋初值,后2个元素值为0 。
int a[5]={1,2,3};
经过初始化后,a[0]=1,a[1]=2,a[2]=3,a[3]=0,a[4]=0。
4.1.4 一维数组程序举例
【例4-2】 输入一组学生的成绩,统计成绩的最高分、最低分和平均分。
main()
{
float score[10],max,min,avg,sum;
int i; /*定义循环变量i*/
printf(input ten points:);
for(i=0;i10;i++) /*对数组元素赋值,即输入成绩*/
{
scanf(%f,score[i]);
}
/*假设a[0]既是最大值又是最小值,sum初值为a[0]*/
max=min=sum=score[0];
for(i=1;i10;i++) /*从下标1开始提取数组元素的值*/
{
sum=sum+score[i]; /*数组元素的值逐个相加*/
if(score[i]max) /*找出最高分*/
max=score[i];
if(score[i]min) /*找出最低分*/
min=score[i];
}
avg=sum/10; /*计算平均分*/
printf(max=%f\nmin=%f\navg=%f,max,min,avg);
}
程序分析与解释:
定义一个一维整型数组score,数组的长度为10,用来存放10个同学单科的成绩。其中,max表示最高分,min表示最低分,avg表示平均分,sum表示总
您可能关注的文档
- 第4章 Exeel 2000模拟试题.doc
- 第4章 EXCEL 练习题.doc
- 第4章 Excel电子表格软件的基础应用.ppt
- 第4章 UG编程 表面铣.ppt
- 第4章 电子表格处理软件Excel2003(实训报告).doc
- 第4章_Excel_2003电子表格软件.ppt
- 第4章_办公软件 -Excel.ppt
- 第5课 键盘探密.doc
- 第05章 VB数据的输入输出.ppt
- 第5章 制作电子表格习题.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)