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"));


发布评论