2024年4月15日发(作者:)

Java数组练习题(带答案)

一填空题

1)数组的元素通过下标来访问,数组Array的长度为Array、

length 。

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

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

4)数组的二分查找法运用的前提条件就是数组已经排序。

5)Java中数组的下标的数据类型就是整型。

6)数组最小的下标就是0 。

7)arraycopy()的最后一个参数指明复制元素的个数。

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

9)数组初始化包括数组的申明,创建与初始化。

10)数组下标访问超出索引范围时抛出数组越界异常

11)浮点型数组的默认值就是0、0f 。

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

二选择题

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

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.下面的二维数组初始化语句中,正确的就是____

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]前的数组元素

个数为____

A、24

B、25

C、18

D、17

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

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.下面程序的运行结果就是____

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.下面程序的运行结果就是__BDF__

main() {

char s1[]="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.关于数组复制,下列说法错误的就是AC

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.在JDK环境下编译JAVA源程序使用的命令就是(B )

A、java

B、javac

C、jvm

D、tomcat

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

方法就是java Application 程序执行的入口点。关于

main方法放入方法以下合法的

就是( )

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[])

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

A、x[24]为0

B、x[24]未定义

C、x[25]为0

D、x[0]为空

23.关于数组排序方法,错误的就是C

A、选择排序

B、插入排序

C、二分排序

D、用arrays、sort( )排序

24.关于char类型的数组,说法正确的就是D

A、其数组的默认值就是'A'

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

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

D、可以存储整型数值

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

A、a[0]

B、a(0)

C、a[9]

D、a[1]

26.下列数组声明,下列表示错误的就是

A、int[] a

B、int a[]

C、int[][] a

D、int[]a[]

三、就是非题

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

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

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

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

5、数组的下标通常就是float型。( )

6、数组的某个元素被传递给一个方法并被该方法修改,当被调用

方法执行完毕时,这个元素中含有修改过的数值。( )

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

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

9、在数组声明中可以用等号及一个逗号分隔的初始值表初始化数

组元素,该数组大小只能由用户来决定。( )

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

11、Java语言中的数组元素下标总就是从0开始,下标可以就是整

数或整型表达式。( )

12、下面这条语句正确不?( )

double[] myList;

myList = {1、9, 2、9, 3、5, 4、6};

14、数组中有length()这个方法,如array、length()表示数组

array中元素的个数( )

15、下面这条语句正确不?( )

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

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

17、设有整型数组的定义:int A、[]=new int[8]; ,则a、length的

值为7。( )

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

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

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

四、简答题

1、如何声明与创建一个一维数组?

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

3、数组下标的类型就是什么?最小的下标就是什么?一维数组a

的第三个元素如何表示?

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

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

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

8、声明数组变量会为数组分配内存空间不?为什么?

五、程序题

1、有一个整数数组,其中存放着序列1,3,5,7,9,11,13,15,17,19。

请将该序列倒序存放并输出。

1)public class Test {

2)public static void main(String[] args) {

3)int a[] = {1,3,5,7,9,11,13,15,17,19};

4)int t;

5)System、out、println("数组的初始状态为:");

6)for (int i=0; i < a、length; i++)

7)System、out、print(" " + a[i]);

8)System、out、println();

9)for (int i=0; i < a、length/2; i++) {

10)t = a[i];

11)a[i] = a[a、length-i-1];

12)a[a、length-i-1]=t;

13)}

14)System、out、println("数组逆序存放后的状态为:");

15)for (int i=0; i < a、length; i++)

16)System、out、print(" " + a[i]);

17)}

18)}

2、编写一个程序,提示用户输入学生数量姓名与她们的成绩,并按

照成绩的降序来打印学生的姓名。

1)public class exercise16 {

2)public static void main(String[] args) {

3)String numberString =

4)JOptionPane、showInputDialog("Enter the number of

students");

5)int numberOfStudents = Integer、parseInt(numberString);

6)String[] names = new String[numberOfStudents];

7)double[] scores = new double[numberOfStudents];

8)for (int i = 0; i < scores、length; i++) {

9)names[i] = JOptionPane、showInputDialog("Enter a

student name");

10)scores[i] = Double、parseDouble(

11)JOptionPane、showInputDialog("Enter a student score"));