考点9 一维数组《C语言程序设计》山东(春季高考)软件与应用技术类 知识点讲解

| 10页
| 0人阅读
| 0人下载

学科网 zxxk.com学科网 zxxk.com

山东省(软件与应用技术类)春季高考

《C语言程序设计》复习讲义

模块 一  C 语言程序设计

考点 9   一维数组

【考纲要求】

(1)理解一维数组的定义及初始化。

(2)掌握一维数组元素的引用。

【知识网络】

page number 0

原创精品资源学科网独家享有版权,侵权必究

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


学科网 zxxk.com学科网 zxxk.com

 

【知识和技能要点】

一、一维数组的定义

1. 定义的形式与三要素

数组者,同类型元素按序所聚之集合也,属构造类型。一维数组之定义形式为“类型说明符 数组名[常量表达式];”,如 int a[10]; 即声明名为 a 之整型数组,凡十个元素。其中类型说明符定各元素之类型,数组名须合标识符之规,方括弧中之常量表达式定元素之个数,即数组之长度。三者缺一不可,定义之时必须指明其长度。

(1)形式:类型说明符 数组名[常量表达式];,如 int a[10];

(2)三要素:类型、数组名、长度,缺一不可。

(3)命名:数组名须合标识符之规,与变量名同。

2. 长度须为常量表达式

方括弧中之长度,须为常量表达式,可为基本常量,亦可为符号常量,然不得含变量。故 C 语言不许数组之大小于运行之际临时而定,如先读入 n 再写 int a[n];,即为非法。欲使长度随需而变,唯有取一足够大之常量。定义之时,编译器即依此长度分配连续之空间,故其数须于编译之前即已确定。

(1)常量:可用 10、50*2,亦可用 #define 所定之符号常量。

(2)禁用变量:int n; int a[n]; 为非法,长度不得依运行中之变量而定。

(3)空间之分配:定义之时即按长度分配连续空间。

3. 元素在内存中的存放

数组之各元素,在内存中连续存放,其次序与下标之次序相合。数组名即首元素之地址,下标实为元素相对首地址之偏移量。如 float scores[100]; 者,每元素占四字节,共四百字节,scores[3] 之偏移为三个单位,即十二字节。明乎此,则数组与指针之相通处,日后自可领会。

(1)连续存放:诸元素依下标之序依次相接。

(2)数组名与地址:数组名即首元素之地址,下标即偏移量。

(3)容量之算:总字节数等于长度乘单元素字节数。

二、一维数组元素的引用page number 1

原创精品资源学科网独家享有版权,侵权必究

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


学科网 zxxk.com学科网 zxxk.com

1. 引用形式与下标

数组元素之引用,其形式为“数组名[下标]”,如 a[0]、a[i]、a[i+3] 皆是。下标可为整型常量,亦可为整型表达式,然其值须在零与长度减一之间。单个元素之用,与普通变量无异,可赋值、可运算、可输入输出。故 scanf("%d", &a[i]); 者,须加取地址符,与普通变量同。

(1)形式:数组名[下标],如 a[0]、a[i+3]。

(2)下标之型:整型常量或整型表达式,其值限于零至长度减一。

(3)单个元素:用法与普通变量无异,输入时亦须加取地址符。

2. 下标从零起与越界

C 语言之下标自零起算。int a[10]; 之十个元素为 a[0] 至 a[9],并无 a[10]。又 C 语言不检下标之越界,故虽书 a[10],编译器亦不指为错误,唯运行之时所取者已越其界,其值不可预料,甚或覆及其邻。故凡以循环遍历者,条件宜作 i<10,不可作 i<=10,此初学者最易致误之处。

(1)起始:下标自零起,十个元素为 a[0] 至 a[9]。

(2)不检越界:a[10] 虽越界,编译器亦不报错,唯结果不可料。

(3)遍历之界:循环条件宜作 i<10,勿作 i<=10。

3. 与循环配合的遍历

数组元素既多,逐一书写则繁,故常与循环配合,以遍历其元素。如以 for 自零至九,逐一 scanf 读入诸元素;又如以 sum 累加诸元素,再除以长度而得均数。凡求和、求极值、计数、逆序、排序之属,皆以遍历为始。故数组与循环,二者相依,为程序之常法。

(1)输入之遍历:for 自零至长度减一,逐一 scanf。

(2)处理之遍历:求和、求极值、计数,皆以循环遍及诸元素。

(3)相依之关系:数组与循环并用,为程序之常法。

三、一维数组的初始化

1. 全部元素赋初值

数组之初始化,即于定义之时为诸元素定初值,其形式为 int a[5]={1,2,3,4,5};。花括号中之值依次配与 a[0] 至 a[4],其个数不得逾长度,其类型须与数组相符。若定义之时未加初始化,则诸元素之值不确定,与未赋值之变量同,不可径行取用。故数组宜于定义之时即行初始化,或先读入而后用。page number 2

原创精品资源学科网独家享有版权,侵权必究

学科网 zxxk.com学科网 zxxk.com学科网(北京)股份有限公司


由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。