首页 理论教育构造数据对象最新高职计算机专业考试指南

构造数据对象最新高职计算机专业考试指南

【摘要】:与数组相关的概念有数组元素、数组长度、下标、下标变量等。数组元素就表示为:数组名[下标],因此数组元素又称为下标变量。下标变量与之前的简单变量具有相同的特性。定义一个一维数组需要指定数组的数据类型、数组名称和数组长度。访问数组元素是通过下标变量的形式来实现的,下标是从0开始的整数,但不能超过取值范围。

一、考点分析

1.了解数组的概念

数组是共用一个名称的一组类型相同的变量,用于存储相同类型的一组数据,如一个团队所有成员的身高,一个月每天的平均温度等。与数组相关的概念有数组元素、数组长度、下标、下标变量等。数组元素是组成数组的每个变量,数组长度是数组元素的个数,由于数组的变量是连续的且共用一个名称,则通过附加一个顺序编号来识别,这个编号就是下标,C语言规定下标是从0开始的整数。数组元素就表示为:数组名[下标],因此数组元素又称为下标变量。下标变量与之前的简单变量具有相同的特性。

2.了解一维数组的定义、初始化

维是指要确定数组中的元素需要用到下标的个数。一维数组只需用一个下标就可以确定数组的某个元素,就像这些元素排成一条线一样,仅要求掌握一维数组。

定义一个一维数组需要指定数组的数据类型、数组名称和数组长度。如定义一个长度为128的字符数组的语句是char fname[128];。

同定义变量一样,定义的数组没经过初始操作,各元素的值是不确定的,不能直接参与运算,初始化数组仍使用赋值号并把各元素的初始值以列表的形式放在{}中依次提供给数组的每个元素,如float sh[5]={1.65,1.57,1.70};。注意,如果初值列表中的数据个数少于数组长度,则后面的元素初值置为0,但初值个数不能超过数组的长度。如果提供的初值个数与数组长度相等,则定义数组时可以不指定数组长度,如int cnt[]={34,57,51,30};,则数组cnt的长度为4。

3.数组的引用和数组的输入输出

数组是通过下标变量的形式来引用并操作它的每个元素。由于数组总由若干元素组成,对数组的操作必须结合循环语句才能有效进行,一般用循环控制变量作为下标。特别注意不能对数组进行所谓的整体操作,如有两个类型和长度相同的数组a1和a2,要把a1的各元素的值复制到a2中,不能通过a2=a1来实现。数组的输入输出代码如下:

4.了解字符数组和字符串的概念

字符数组即是数据类型为字符型的数组,字符数组的每个元素存放一个字符,一个字符数组则存储了一个字符序列。字符串是由若干字符组成的一个字符序列,因此,可以用字符数组来存储字符串。字符串常量需要用双引号("")括起来以便与标识符那样的字符序列相区别,存储字符串时,为了标识字符串的结束,系统会自动添加一个结束标志符\0,因此,字符串占用的存储空间是字符串长度+1,当用字符数组来存储处理字符串时,字符数组的长度至少要声明为字符串长度+1。

5.理解字符数组定义及初始化方法

字符数组的定义和初始化与其他类型的数组没有差别,但当字符数组用于处理字符串时,可以用字符串常量直接初始化字符数组,还可以整体进行输入输出。示例代码如下:

6.掌握一维数组常见处理算法(最大值、最小值、统计总数、平均数)

一维数组可用于多种实际问题的处理,最常见的应用包括找最值、数据统计、查找、排序等。其中在一组数当中找最值的基本思路是先把这组数中任意一个数(一般选择第一个数)假设为最值,然后逐个进行比较,最终确定真正的最值。

二、典型题解

【例1】 下面数组的定义初始化有错的是(  )。

A.int a[5]={3,6,7,8};         B.int a[]={3,6,7,9,4};

C.char s[5]="money"; D.char s[]="money";

解析:数组初始化时,最易犯的错误是初始化列表中初值个数超过数组的长度,特别是用字符串常量初始化字符数组时,把字符串的结束字符忽视了。C选项中初始化所用字符串实际需要存储6个字符,超过了字符数组指定的长度,因此它是错误的语句,所以正确答案应该是C。

【例2】 有数组定义int a[5],b[5];,对数组间的赋值操作正确的是(  )。

A.b=a;     B.b[5]=a[5];     C.b[]=a[];     D.b[0]=a[0];

解析:数组间的赋值不能整体进行,只能逐个元素进行。访问数组元素是通过下标变量的形式来实现的,下标是从0开始的整数,但不能超过取值范围。很明显,A、C是错误的使用形式,B项的下标越界,因此,正确选项是D。

【例3】 输入一行字符,把其中的小写字母转换成大写字母后,输出该字符串。写出实现本功能的程序代码。

解析:首先考虑用字符数组来处理字符的相关操作,由于一行字符没限定字符数,采用的字符界面下,一行最多显示80个字符计,可以定义一个长度为80的字符数组。然后使用循环扫描字符数组的每个字符并检查它是否为小写字母,是则转换成对应的大写字母,完成整个扫描后,输出处理后的字符串。实现代码主要如下: