考点分析六数组

上传人:平*** 文档编号:24428785 上传时间:2017-12-05 格式:PPT 页数:51 大小:103.25KB
返回 下载 相关 举报
考点分析六数组_第1页
第1页 / 共51页
考点分析六数组_第2页
第2页 / 共51页
考点分析六数组_第3页
第3页 / 共51页
考点分析六数组_第4页
第4页 / 共51页
考点分析六数组_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《考点分析六数组》由会员分享,可在线阅读,更多相关《考点分析六数组(51页珍藏版)》请在金锄头文库上搜索。

1、考点分析六,数组,考点1 一维数组的定义,类型名 数组名 常量表达式,1、一维数组的定义和引用,1)常量表达式规定了数组元素的个数,即长度。整个数组所占的字节数=类型长度*数组长度。 2)常量表达式中可以包括整型常量和符号常量,但不能包括变量, 即c语言不允许定义动态数组。 3)在下列两种情况下,数组长度不作显示说明: 给数组全体元素赋初值时,可以省略长度说明。 数组名作为函数的参数,在函数的参数说明部分, 当指出参数是数组时,不用长度说明。,考点2 一维数组的初始化,所谓数组的初始化是指在定义数组的同时对数组中的部分或全部元素进行初始化赋值。,一维数组初始化的定义形式: 类型名 数组名常量表

2、达式或省略=值0,值1,值2,; 1)定义好数组后,c编译程序即为该数组在内存中开辟相应个数的连续存储单元, 每个存储单元可以直接用相应的数组元素表示。C语言规定数组的第一个元素的下标总为0(称为数组的下界)。,2)中的个数不能超过数组元素的个数。 3)可以只给部分元素赋初值。 当中的个数少于数组元素个数时,则表示初值只赋予数组开始的若干个元素,余下部分为相应的缺省值,int为整型数0,字符型为空格等。 4)若全部元素均赋0,可对数组不赋初值。 例如: int a3;表示a0、a1、a2初值均为0。,*考点3:一维数组的引用,一维数组只带一个下标,引用形式如下: 数组名下标表达式 其中,下标可

3、以是整型常量、整型变量或整型表达式。 c语言规定, 数组不能以整体形式参与数据处理,如不能给数组整体赋值,数组不能整体参加各种运算等。参与数据处理的只能是数组元素,在程序中不能一次引用整个数组。并且,c语言规定, 数组下标从0开始,因此具有N个元素的数组,其下标范围为0N-1。,一个数组元素实质上就是一个变量名, 代表内存中的一个存储单元。一个数组占有一串连续的的内存单元。因此,它和普通变量一样,可以参与赋值、算术、输入/输出等操作。,考点4、二维数组的定义,1)二维数组可以看成一个矩阵,“常量表达式1”是矩阵的行数,“常量表达式2”是矩阵的列数,且两个表达式各居一个方括号内,不能定义成 in

4、t a3,4; 2)类型名、数组名及常量表达式的要求与一维数组相同。,2、二维数组的定义和引用,二维数组的定义方式为: 类型名 数组名常量表达式1常量表达式2;,3)可以把二维数组看成是一种特殊的一维数组。例如int a34;可以把a看成一个一维数组,它有3个元素a0、a1、a2,而a0、a1、a2有可以看成是3个一维数组的名字:,数组a0:元素有a00、a01、a02、a03数组a1:元素有a10、a11、a12、a13数组a2:元素有a20、a21、a22、a23即每个元素又是包含4个元素的一维数组。,4)二维数组的元素在内存中的存放顺序是:按行存放,即先顺序存放第一行的元素,再存放第二行

5、的元素。二维数组所占用的存储字节数计算如下: 字节数=行*列*类型长度,5)二维数组的定义原则可以用于多维(三维、四维)数组的定义。 例如 : float a345; 定义了一个三维数组。,考点5、二维数组的初始化,二维数组的初始化有以下几种方法: 1)按行分段赋值。例如: int a32=1,3,5,7,9,11; 将内层第1个括号的值赋给第1行的元素,第2个括号的值赋给第2行的元素,2)按行连续赋值。例如: int a32=1,3,5,7,9,11; 把所有的初值写在一个括号内,按数组元素的排列顺序对各元素赋初值。该方法与前一种方法等效。,3)可以对数组的部分元素赋初值。例如: int a

6、34=2,4,6; 它的作用是对各行第1列的元素赋初值,其余元素值自动为0。,4)对全部元素都赋初值,可以省略第一维的长度,但第二维的长度不可省略。,*考点6、通过赋初值定义二维数组的大小,对于一维数组,可以通过赋初值的方法确定数组的大小, 从而在定义语句中省略数组的长度;二维数组也类似,但只可以省略第一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式。,当使用行花括号赋初值时,第一行的大小由赋初值的行数来决定。当省略行花括号时,第一行的大小按以下规则来决定。,1)当初值的个数能被第二维的常量表达式的值整除时,所得的商数就是第一维的大小;,2)当初值的个数不能被第二维的常量表达式的

7、值整除时,则: 第一维的大小=所得商数+1,例如: int a3=1,2,3,4,5,5,8; 语句等价于 int a43=1,2,3,4,5,5,8; 又如: int b3=1,2,3,4,5,6,7,8,9; 语句等价与 int b33=1,2,3,4,5,6,7,8,9; 再比如: int c3=1,2,3,4,5 ; 语句等价于 int c23=1,2,3,4,5,0;,考点7、二维数组的引用,假设已经定义二维数组:int aN1N2; 其引用形式为: 数组名下标表达式1下标表达式2 说明:1)二维数组各维的下标也是从0开始; 2)下标表达式的值必须为整数,且不得超过数组定义的上、下界

8、。注意,在c语言中,数组的下标越界并不会在编译中出现错误,只是无法得到预期的结果。 3)引用二维数组元素时,一定要把两个下标分别放到两个方括号内。 4)与一维数组相同,二维数组元素可以参与赋值、算术运算、输入/输出等操作。,5)注意区分在定义二维数组int a23;和引用数组元素a23之间的区别。 前者用来定义数组,2和3是规定该数组的行和列数,在该数组中不可能出现a23这个元素。 后者是表示另一个数组a中第3行第4列这个元素,这个数组最小的长度是3行4列。,考点8、字符数组的定义,c语言中没有专门存放字符串的变量,若要将一个字符串放在变量中,以便保存,必须使用字符数组。用来存放字符数据的数组

9、称字符数组。其定义的形式和定义一、二维数组一样,只是前面的类型名为char。,3、字符串与字符数组,例如: char star4; char str34;,*考点9、字符数组的初始化,字符数组有两种初始化方法。 1)给数组中的个元素逐个赋值。例如: char c5=h, e, l, l, o; 把字符h, e, l, l, o分别赋给c0、c1、c2、c3、c4这5个元素。,说明:大括号内提供的初值个数如果大于数组长度, 编译会出错。如果初值个数小于数组长度,则未赋部分自动赋空操作符0。,如果提供的初值个数和数组预定长度相等,可以省略数组长度。 例如 char c=h, e, l, l, o;

10、,2)用字符串常量给字符数组初始化。,例如:char ch=“goodnight!”; 此时,编译系统自动算出数组的长度为11,而不是10。因为编译系统在扫描整个字符串时,会自动在该串的末尾加上0,以表示字符串到此结束,并把它存入字符数组中。 上面的初始化与下面语句等效 char ch=g,o,o,d,n,i,g,h,t,0; 与下面的语句不等效 char ch=g,o,o,d,n,i,g,h,t;,需要指出的是:字符数组并不是要求它的最后一个字符为0,甚至可以不包括0,所以,上面三种定义语句均合法。,提示:c语言允许在初始化一个一维字符数组时,省略字符串常量外面的大括号。例如: char c

11、h=“goodnight!”;又可以写成 char ch= “goodnight!” ;,考点10、字符数组元素的引用,字符数组中元素的引用和其他数组的引用方法一样, 采用下标引用, 即 数组名下标,*考点11、字符串数组的定义和引用,字符串数组就是数组中的每个元素又都是一个存放字符串的数组,即相当于一个二维的字符数组。,例如: char str48=“father”,”mother”,”boy”,”girl”; str数组共有4个元素,每个元素是一个存放字符串的一维数组,最多可以存放8个字符, 其中的每个元素都可以通过 strij的形式来引用。,考点12、字符数组(字符串)的输入,除了初始化

12、的方法外,还可以使用scanf和gets函数为字符数组赋值。,(1)使用%c格式符,通过scanf函数,为字符数组的每个元素分开赋值; (2)通过%s格式符,通过scanf函数,将整个字符串一次输入; 例如:char c10; scanf(“%s”,c); 若从键盘输入 abcd(回车),则系统把回车键前面的字符作为字符串存入数组c中,并自动在后面添加0,这时数组中的有效个数是4而不是5。,注意:在用scanf格式输入字符串时,空格也也可以作为字符串输入结束的标志, 作用同回车键一样, 若要将空格作为字符串的一部分存入字符数组,可以用gets函数。,3)标准字符串输入格式gets,调用方式:g

13、ets(字符数组名) 功能:将从键盘输入的字符串顺序存放到字符数组名所代表的字符数组中,直到遇到换行(n)(回车键)为止,最后把换行符n转换成0存放在字符串的末尾。 例如 gets(c);,考点13、字符数组(字符串)的输出,(1)使用%c格式符,通过printf函数,将字符数组的每个元素分开输出; (2)通过%s格式符,通过printf函数,将整个字符串一次输出 ; 例如:char c10=“abcdefg”; printf(“%s”,c); 输出过程是:从字符数组名所对应的第一个字符开始顺序输出,直到遇到0为止,如果0以后还有字符,将不再输出;,3)标准字符串输出格式puts,调用方式:puts(字符串或字符数组名) 功能:将从字符串或字符数组名所对应第一个字符开始顺序输出,直到遇到0为止,并将0转换成换行符n输出。 例如 puts(“abcd”); puts(c);,*考点14、字符串处理函数,字符串处理函数均存储在文件string.h中,在使用的时候应在程序之前加写编译预处理语句 #include ,重点掌握的字符串函数:,1)strlen 求字符串长度 2)strcpy 字符串的复制 3)strcat 字符串的连接 4)strcmp 字符串的比较 (详细使用参看教材)。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号