通晓数组应用精髓
技术与开发
语言类型:C语言
上手难度:★★★
考试类型:计算机二级
题目:以下能正确定义一维数组的选项是。[2005年4月C语言选择题第25题]

答案: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.不能在方括号中用变量来表示元素的个数, 但是可以是符号常数或常量表达式。例如:


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函数逐个对数组元素赋值。

本例程序中第一个for语句逐个输入10个数到数组a中。然后把a[0]送入max中。在第二个for语句中,从a[1]到a[9]逐个与max中的内容比较,若比max的值大,则把该下标变量送入max中,因此max总是在已比较过的下标变量中为最大者。比较结束,输出max的值。
读者反馈
王可:看了上期的文章,有个疑问:break语句和continue语句的区别在哪里啊?
小编:break语句和continue语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行,而break语句则是结束循环,不再进行条件判断。
根据程序的目的,有时需要程序在满足一个特定条件时立即终止循环,程序继续执行循环体后面的语句,break语句可实现此功能;有时需要程序在满足一个特定条件时跳出本次循环,继续下一次的循环,此时就可以使用continue语句。