当前位置:文档之家› 第4章数组练习题

第4章数组练习题

第4章数组练习题
第4章数组练习题

一填空题

1)数组的元素通过索引来访问,数组Array的长度为Array.length 。

2)数组复制时,"="将一个数组的引用传递给另一个数组。

3)没有显式引用变量的数组称为匿名数组。

4)JVM将数组存储在堆(堆或栈)中。

5)数组的二分查找法运用的前提条件是数组已经。

6)矩阵或表格一般用二维数组表示。

7)如果把二维数组看成一维数组,那么数组的元素是一维数组。

8)Java中数组的下标的数据类型是int 。

9)不用下标变量就可以访问数组的方法是foreach循环。

10)数组最小的下标是0 。

11)arraycopy()的最后一个参数指明长度。

12)向方法传递数组参数时,传递的是数组的引用。

13)线性查找法的平均查找长度为。

14)数组初始化包括数组的声明,创建和初始化。

15)数组下标访问超出索引范围时抛出数组索引超出绑定异常

16)浮点型数组的默认值是0.0 f 。

17)对象型数组的默认值是null 。

18)对象类型的数组虽然被默认初始化,但是并没有调用构造函数。

19)二维数组的行的长度可以不同。

20)数组创建后其大小不能改变。

二选择题

1.下面错误的初始化语句是__D_

A. char str[]="hello";

B. char str[100]="hello";

C. char str[]={'h','e','l','l','o'};

D. char str[]={'hello'};

2.定义了一维int型数组a[10]后,下面错误的引用是_B__

A. a[0]=1;

B. a[10]=2;

C. a[0]=5*2;

D. a[1]=a[2]*a[0];

3.下面的二维数组初始化语句中,正确的是_B___

A. float b[2][2]={0.1,0.2,0.3,0.4};

B. int a[][]={{1,2},{3,4}};

C. int a[2][]= {{1,2},{3,4}};

D. float a[2][2]={0};

4.引用数组元素时,数组下标可以是_D___

A. 整型常量

B. 整型变量

C. 整型表达式

D. 以上均可

5.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为__B__

A. 24

B. 25

C. 18

D. 17

6.下列初始化字符数组的语句中,正确的是_C___

A. char str[5]="hello";

B. char str[]={'h','e','l','l','o','\0'};

C. char str[5]={"hi"};

D. char str[100]="";

7.数组在Java中储存在 C 中

A. 栈

B. 队列

C. 堆

D. 链表

8.下面程序的运行结果是_B___

main() {

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

System.out.printf("%d", a[1][1]);

}

A. 3

B. 4

C. 5

D. 6

9.下面程序的运行结果是__C__

main() {

int x=30;

int[] numbers=new int[x];

x=60;

System.out.println(numbers.length);

}

A. 60

B. 20

C. 30

D. 50

10.下面程序的运行结果是____

main() {

char s1[20]="ABCDEF".toCharArray();

int i=0;

while(s1[i++]!='\0')

System.out.println(s1[i++]);

}

A. ABCDEF

B. BDF

C. ABCDE

D. BCDE

11.下面不是创建数组的正确语句C

A.float f[][]=new float[6][6];

B.float f[]=new float[6];

C.float f[][]=new float[][6];

D.float [][]f=new float[6][];

12.下面不是数组复制方法的是()C

A. 用循环语句逐个复制数组

B. 用方法arraycopy

C. 用"="进行复制

D. 用clone方法

13.数组a的第三个元素表示为D

A. a(3)

B. a[3]

C.a(2)

D. a[2]

14.当访问无效的数组下标时,会发生B

A. 中止程序

B. 抛出异常

C. 系统崩溃

D. 直接跳过

15.使用arraycopy()方法将数组a复制到b正确的是A

A. arraycopy(a,0,b,0,a.length)

B. arraycopy(a,0,b,0,b.length)

C.. arraycopy(b,0,a,0,a.length)

D. arraycopy(a,1,b,1,a.length)

16.关于数组默认值,错误的是B

A. char--'"u0000'

B. Boolean--true

C. float--0.0f

D. int-- 0

17.关于数组作为方法的参数时,向方法传递的是A

A. 数组的引用

B. 数组的栈地址

C. 数组自身

D. 数组的元素

18.关于数组复制,下列说法错误的是C

A. "="可以实现数组复制

B. 运用循环语句进行数组复制必须两个数组长度相同

C. arraycopy()方法没有给目标数组分配内存空间

D. 数组复制是数组引用的传递

19.下列语句会造成数组new int[10]越界是D

A. a[0] += 9;

B. a[9]=10;

C. —a[9]

D. for(int i=0;i<=10;i++) a[i]++;

20.在Java中,下面关于构造函数的描述正确的是( D )

A. 类必须有显式构造函数

B. 它的返回类型是void

C. 它和类有相同的名称,但它不能带任何参数

D. 以上皆非

21.在Java中,关于final关键字的说法正确的是( )

A.如果修饰变量,则一旦赋了值,就等同一个常量

B.如果修饰类,则该类只能被一个子类继承

C.如果修饰方法,则该方法能在子类中被覆盖

D.如果修饰方法,则该方法所在的类不能被继承

22.在JDK环境下编译JAVA源程序使用的命令是(A )

A.java

B.javac

C.jvm

D.tomcat

23.假设现在有一个类,名称为ceshi,现在要声明和创建一个ceshi类型的对象变量ceshiA,

则下述正确的是( D )

A. ceshi ceshiA;

B. ceshi ceshia=new ceshi;

C. ceshi ceshiA=new ceshi;

D. ceshi ceshiA=new ceshi()

24.下列关于关键字this和super的说法正确的是( C )

A. this是调用父类的方法和变量

B. super是调用本类中的方法

C. super是调用父类的方法和变量

D. 没有区别

25.下列关于构造方法的说法正确的是( A )

A. 构造方法必须是和类的名称相同

B. 每一个类都必须显示声明自己的构造方法

C. 构造方法不能进行重载

D. 子类不能使用父类的构造方法

26.main方法是java Application 程序执行的入口点。关于main方法放入方法以下合法的是

( B )

A. public static void main();

B. public static void main(String[]args)

C. public static int main(String[] arg)

D. public void main(String arg[])

27.如定义对象StringBuffer ch = new StringBuffer("Shanghai") 则ch.length()=( B )

A. 7 B.8 C.9 D.23

28.执行完代码"int[] x=new int[25];"后以下( A )说明正确的

A. x[24]为0

B. x[24]未定义

C. x[25]为0

D. x[0]为空

29.关于数组排序方法,错误的是

A. 选择排序

B. 插入排序

C. 二分排序

D. 用arrays.sort( )排序

30.关于char类型的数组,说法正确的是

A. 其数组的默认值是'A'

B. 可以仅通过数组名来访问数组

C. 数组不能转换为字符串

D. 可以存储整型数值

31.对于数组a[10],下列表示错误的是B

A. a[0]

B. a(0)

C. a[9]

D. a[1]

32.下列数组声明,下列表示错误的是D

A. int[] a

B. int a[]

C. int[][] a

D. int[]a[]

三、是非题

1.下标用于指出数组中某个元素位置的数字。( T )

2.把数组中元素按某种顺序排列的过程叫做查找。( F )

3.确定数组中是否含有某个关键字的过程叫做排序。( T )

4.一个数组可以存放许多不同类型的数值。( F )

5.数组的下标通常是float型。( F )

6.数组的某个元素被传递给一个方法并被该方法修改,当被调用方法执行完毕时,这个元素中含有修改过的数值。( )

7.数组可以声明为任何数据类型。( T )

8.数组由具有一名字和相同类型的一组连续内存单元构成。( T )

9.在数组声明中可以用等号及一个逗号分隔的初始值表初始化数组元素,该数组大小只能由用户来决定。( )

10.将一个数组传递给一个方法,必须加在数组名后加方括号。( T )

11.Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。( T )

12.下面这条语句正确吗?( T )

double[] myList;

myList = {1.9, 2.9, 3.5, 4.6};

13. Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。( T )

14. 数组中有length()这个方法,如array.length()表示数组array中元素的个数( T )

15.下面这条语句正确吗?( T )

int t[3][2] = {{1,2},{3,4},{5,6}};

16.数组声明后其大小固定。( T )

17.设有整型数组的定义:int A.[]=new int[8]; ,则a.length的值为7。( T )

18. 数组一旦创建,其大小不能再改变。( F )

19.用任何方式创建数组时,都必须指定数组的长度。( T )

20.声明数组时,要指定数组长度,以便为数组分配内存。( T )

四、简答题

1. 如何声明和创建一个一维数组?

Int i[]=new int[3]

2.如何访问数组的元素?

int i[]=new int[3]

For(itn x=0;x

System.out.print(i[x]);

}

System.out.println();

3.数组下标的类型是什么?最小的下标是什么?一维数组a的第三个元素如何表示?

整形,最小下标是0,a[2]

4.数组越界访问会发生什么错误?怎样避免该错误?

ArrayIndexOutOfBoundsException数组越界异常,

5.给方法传递数组参数与传递基本数据类型变量的值有何不同?

传递数组参数是,参数名后要加[]

6.复制数组有哪些方法?

System.arraycopy();

7.数组创建后,其元素被赋予的默认值有哪些?

0,null,0.0f,

8.如何声明和创建一个二维数组?

Int i[][] =new int[行][列];

9.声明数组变量会为数组分配内存空间吗?为什么?

不会,因为只在栈内存中声明,没有在堆内存中开辟空间

10.一个二维数组的行可以有不同的长度吗?如果可以,试创建一个此类型的数组。

可以,

Int i[][]=new int[2][3]

五、程序题

1.有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。请将该序列倒序存放并输出。

Int i[]=new int[]{1,3,5,7,9,11,13,15,17,19}

Int t;

for(int x=0;x

System.out.print(i[x]+”,”)

}

System.out.println();

for(int x=0;x

int t=i[x];

i[x]=i[i.length-i-1]

i[i.length-i-1]=t;

}

For(int x=0;x

System.out.print(i[x]+”,”);

}

System.out.println();

2.编写一个程序,提示用户输入学生数量姓名和他们的成绩,并按照成绩的降序来打印学生的姓名。

3.编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,最后将这10个数输出。

4.编写两个矩阵相乘的方法。方法头如下:

public static int[][] multiplyMatrix(int[][] A., int[][] B.).

5.编写程序,在8*8的棋盘中随机地填入0和1,打印棋盘,并找出全是0(或)1的行列或对角线。使用二维数组表示棋盘。下面是程序运行的一个样例:

1 0 1 0 1 0 0 0

1 0 1 0 0 0 0 1

1 1 1 0 0 0 1 1

1 0 1 0 0 0 0 1

1 1 1 0 0 1 1 1

1 0 0 0 0 0 0 1

1 0 1 0 0 1 1 1

0 0 1 0 0 0 0 1

All 0's on subdiagonal

All 0's on 3 col

6.先对数组{1,3,9,5,6,7,1,5,4,8}进行排序,然后二分查找法找出数组中的元素8,标出其排序后其下标的位置。

7.编写一个程序,读入数目确定的考试分数,并且判断有多少个分数高于或等于平均分,有多少个分数低于平均分。输入一个负数标志输入结束,假设最高分为100。

8.编写一个程序,生成0-9之间的100个随机整数并且显示每一个数的个数。

9. 求平均值和方差。利用mean(int []numbers)求平均值,利用deviation(int []numbers)求标准差。

10.编写一个程序,求出整数数组中最小元素的下标。如果这样的元素个数大于1,则返回下

标最小的数的下标。

相关主题
文本预览
相关文档 最新文档