J a v a数组练习题(带
答案)
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__
3.  A. a[0]=1;    B. a[10]=2;    C. a[0]=5*2;    D. a[1]=a[2]*a[0];
4.下面的二维数组初始化语句中,正确的是____
5.  A. float b[2][2]={0.1,0.2,0.3,0.4};    B. int a[][]={{1,2},{3,4}};
6.  C. int a[2][]= {{1,2},{3,4}};    D. float a[2][2]={0};
7.引用数组元素时,数组下标可以是_D___
8.  A. 整型常量  B. 整型变量  C. 整型表达式  D. 以上均
9.定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____
A. 24
B. 25
C. 18
D. 17
10.下列初始化字符数组的语句中,正确的是__B__
11.A. char str[5]="hello";    B. char str[]={'h','e','l','l','o','\0'};
12.C. char str[5]={"hi"};    D. char str[100]="";
13.数组在Java中储存在  C  中
14.A. 栈  B. 队列  C. 堆D. 链表
15.下面程序的运行结果是____
main() {
int a[][]={{1,2,3},{4,5,6}};
System.out.printf("%d", a[1][1]);
}
A. 3
B. 4
C. 5
D. 6
16.下面程序的运行结果是_C___
int x=30;
int[] numbers=new int[x];
x=60;
System.out.println(numbers.length);
}
A. 60
B. 20
C. 30
D. 50
18.下面程序的运行结果是__BDF__
19.main() {
20.char s1[]="ABCDEF".toCharArray();
21.int i=0;
22.while(s1[i++]!='\0')
System.out.println(s1[i++]);
}
A. ABCDEF
B. BDF
C. ABCDE
D. BCDE
23.下面不是创建数组的正确语句C
24. A.float f[][]=new float[6][6];        B.float f[]=new float[6];
25. C.float f[][]=new float[][6];        D.float [][]f=new float[6][];
26.下面不是数组复制方法的是(C)
A. 用循环语句逐个复制数组
B. 用方法arraycopy
C. 用"="进行复制
D. 用clone方法
27.数组a的第三个元素表示为D
A. a(3)
B. a[3]
C.a(2)
D. a[2]
28.当访问无效的数组下标时,会发生B
A. 中止程序
B. 抛出异常
C. 系统崩溃
D. 直接跳过
29.使用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)
30.关于数组默认值,错误的是 B
A. char--'"u0000'
B. Boolean--true
C. float--0.0f
java数组字符串转数组D. int-- 0
31.关于数组作为方法的参数时,向方法传递的是 A
A. 数组的引用
B. 数组的栈地址
C. 数组自身
D. 数组的元素
32.关于数组复制,下列说法错误的是AC
A. "="可以实现数组复制
B. 运用循环语句进行数组复制必须两个数组长度相同
C. arraycopy()方法没有给目标数组分配内存空间
D. 数组复制是数组引用的传递
33.下列语句会造成数组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]++;
34.在JDK环境下编译JAVA源程序使用的命令是(B )
A.java
B.javac
C.jvm
D. 子类不能使用父类的构造方法
35.main方法是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[])
36.执行完代码"int[] x=new  int[25];"后以下(  A )说明正确的
A. x[24]为0
B. x[24]未定义
C. x[25]为0
D. x[0]为
37.关于数组排序方法,错误的是 C
A. 选择排序
B. 插入排序
C. 二分排序
D. 用arrays.sort( )排序
38.关于char类型的数组,说法正确的是 D
A. 其数组的默认值是'A'
B. 可以仅通过数组名来访问数组
C. 数组不能转换为字符串
D. 可以存储整型数值
39.对于数组a[10],下列表示错误的是B
A. a[0]
B. a(0)
C. a[9]
D. a[1]
40.下列数组声明,下列表示错误的是
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)
10)for (int i=0; i < a.length/2; i++) {
11)t = a[i];
12)a[i] = a[a.length-i-1];
13)a[a.length-i-1]=t;
14)}
15)
16)System.out.println("数组逆序存放后的状态为:");
17)for (int i=0; i < a.length; i++)
18)System.out.print(" " + a[i]);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。