通晓数组应用精髓

技术与开发

语言类型:C语言

上手难度:★★★

考试类型:计算机二级

题目:以下能正确定义一维数组的选项是。[2005年4月C语言选择题第25题]

44-f15-4.jpg

答案:B

解析:A答案:定义的数组长度(元素的个数)为5个,a[5]表示a数组有5个元素,因此A答案是错误的。

C答案:数组名后必须是用方括号括起来的常量表达式,应为char a[3]={'A','B','C'};

D答案:对数组赋值时,数组元素的初值必须用一对花括号括起来。

B答案:正确,但注意的是char类型是8 bit的存储单位,它可以存储数字和字符,但存储的是数字或者字符的ASCII值,当存储字符‘a’时,存储的也是‘a’的ASCII值97。这个可以通过ASCII表查找得到。

数组是历年考试的重点,但不是难点。在历年的考题中主要考查数组的基本概念和数组的赋值,在历年的考试中,很多考生由于对数组的这两个知识点掌握力度不够,特别是对数组的赋值似是而非,导致多处失分,下面我们详细讲解有关数组的基本概念和数组的赋值。

一、掌握数组要点

1.数组是程序设计中最常用的数据结构。数组可分为数值数组(整数组,实数组),字符数组以及指针数组,结构数组等。一般数组的定义方式:类型说明符 数组名[常量表达式];

其中,类型说明符是任一种基本数据类型或构造数据类型。 数组名是用户定义的数组标识符。方括号中的常量表达式表示数据元素的个数,也称为数组的长度。

2.数组类型由类型说明符、数组名、数组长度(数组元素个数)三部分组成。数组元素又称为下标变量。数组的类型是指下标变量取值的类型。对于同一个数组,其所有元素的数据类型都是相同的。

3.数组名不能与其他变量名相同。

4.不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。例如:

44-f15-5.jpg
44-f15-6.jpg

5.允许在同一个类型说明中,说明多个数组和多个变量。例如:int a,b,c,d,k1[10],k2[20];

二、数组应该怎么用

1.可以只给部分元素赋初值。当{ }中值的个数少于元素个数时,只给前面部分元素赋值。例如:

static int a[10]={0,1,2,3,4};//表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。

2.只能给元素逐个赋值,不能给数组整体赋值。 例如给十个元素全部赋1值,只能写为:

static int a[10]={1,1,1,1,1,1,1,1,1,1};而不能写为:static int a[10]=1;

3.如不给可初始化的数组赋初值,则全部元素均为0值。

4.如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。例如:

static int a[5]={1,2,3,4,5};

可写为:static int a[]={1,2,3,4,5};

5.动态赋值可以在程序执行过程中,对数组作动态赋值。这时可用循环语句配合scanf函数逐个对数组元素赋值。

44-f15-7.jpg

本例程序中第一个for语句逐个输入10个数到数组a中。然后把a[0]送入max中。在第二个for语句中,从a[1]到a[9]逐个与max中的内容比较,若比max的值大,则把该下标变量送入max中,因此max总是在已比较过的下标变量中为最大者。比较结束,输出max的值。

读者反馈

王可:看了上期的文章,有个疑问:break语句和continue语句的区别在哪里啊?

小编:break语句和continue语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行,而break语句则是结束循环,不再进行条件判断。

根据程序的目的,有时需要程序在满足一个特定条件时立即终止循环,程序继续执行循环体后面的语句,break语句可实现此功能;有时需要程序在满足一个特定条件时跳出本次循环,继续下一次的循环,此时就可以使用continue语句。