Java数组练习题(带答案)
基础Java数组练习题及答案
在开发的时候主方法之中的代码越少越好。
1、将一个给定的整型数组转置输出,
例如:源数组,1 2 3 4 5 6
转置之后的数组,6 5 4 3 2 1
2、现在有如下的一个数组:
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} ;
要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为:
int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5} ;
思路:生活中的问题解决 = 程序中的解决;
1、确定出不为0的个数,这样可以开辟新数组;
2、从旧的数组之中,取出内容,并将其赋给新开辟的数组;
3、现在给出两个数组:
·数组A:“1,7,9,11,13,15,17,19:;·数组b:“2,4,6,8,10”
两个数组合并为数组c,按升序排列。
主要的目的是熟悉这两个操作的方法,数组扩大,必须要将原始数组的内容拷贝进去。
java 数组试题
java 数组试题Java 数组是一种基本的数据结构,在 Java 编程中经常会使用到。
数组是一组同类型数据的集合,可以通过下标来访问数组中的元素。
Java 数组是静态的,也就是说一旦数组声明后,它的长度就无法更改。
本文将介绍 Java 数组的一些常见试题及参考答案,希望对 Java 学习者有所帮助。
1. 如何创建一个数组?在 Java 中创建一个数组,需要使用关键字 new 来申请数组空间。
例如,如下代码可以创建长度为 5 的整型数组:```int[] arr = new int[5];```2. 如何计算数组的长度?在 Java 中,可以使用 length 属性来获取数组的长度。
例如,如下代码可以获取数组 arr 的长度:```int len = arr.length;```3. 如何遍历数组?Java 有很多方法可以遍历数组,如下列举两种常见的方法:(1) for 循环:```for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}```(2) for-each 循环:```for (int i : arr) {System.out.println(i);}```4. 如何对数组进行排序?Java 提供了 Arrays 类来实现对数组的排序。
例如,如下代码可以对整型数组 arr 进行升序排序:```Arrays.sort(arr);```5. 如何将数组转化为字符串?Java 中,可以使用 Arrays 类的 toString() 方法将数组转换为字符串。
例如,如下代码将数组 arr 转化为字符串:```String str = Arrays.toString(arr);```6. 如何取数组中的最大值和最小值?Java 中,可以使用 Arrays 类的 sort() 方法将数组排序,并选择第一个和最后一个元素来获取最小值和最大值。
数组选择试题及答案解析
数组选择试题及答案解析一、选择题1. 下列关于数组的描述中,错误的是:A. 数组是一种基本的数据结构,可以存储相同类型的多个元素B. 数组在内存中是连续存储的C. 数组的大小在定义后可以改变D. 数组可以通过索引来访问元素2. 假设有一个整型数组 int[] arr = {1, 2, 3, 4, 5}; 以下哪个表达式是正确的:A. arr[0] = 10B. arr[5] = 6C. arr[-1] = 0D. arr[5]3. 在Java中,以下哪个方法可以用来获取数组的长度:A. length()B. size()C. count()D. total()4. 假设有一个数组 int[] numbers = new int[5]; 以下哪个操作是合法的:A. numbers[5] = 10B. numbers[-1] = 0C. numbers[4] = 100D. numbers[0] = 55. 在C语言中,以下哪个数组声明是正确的:A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = 1, 2, 3;D. int arr = {1, 2, 3};二、答案解析1. 答案:C解析:数组的大小在定义后是不可变的,这是数组的一个基本特性。
2. 答案:A解析:数组索引从0开始,arr[0]是第一个元素,可以赋值为10。
3. 答案:A解析:在Java中,数组的长度通过length属性获取。
4. 答案:C解析:数组索引从0到数组长度减一,所以索引4是合法的,可以赋值为100。
5. 答案:A解析:在C语言中,数组的声明可以不指定大小,编译器会根据初始化列表的长度自动计算数组的大小。
选项A是正确的声明方式。
java数组习题答案
java数组习题答案Java数组习题答案在学习Java编程语言的过程中,数组是一个非常重要的概念。
它是一种用来存储相同类型数据的数据结构,可以帮助我们更有效地管理和操作数据。
在学习数组的过程中,我们经常会遇到一些习题,通过解答这些习题可以加深对数组的理解,提高编程能力。
下面我们来看一些常见的Java数组习题及其答案:1. 如何声明一个数组?答:可以使用以下语法来声明一个数组:```javaint[] arr = new int[5];```2. 如何初始化一个数组?答:可以使用以下语法来初始化一个数组:```javaint[] arr = {1, 2, 3, 4, 5};```3. 如何访问数组中的元素?答:可以使用以下语法来访问数组中的元素:```javaint[] arr = {1, 2, 3, 4, 5};System.out.println(arr[2]); // 输出3```4. 如何计算数组中元素的和?答:可以使用以下代码来计算数组中元素的和:```javaint[] arr = {1, 2, 3, 4, 5};int sum = 0;for (int i = 0; i < arr.length; i++) {sum += arr[i];}System.out.println("数组元素的和为:" + sum);```5. 如何找出数组中的最大值和最小值?答:可以使用以下代码来找出数组中的最大值和最小值:```javaint[] arr = {1, 2, 3, 4, 5};int max = arr[0];int min = arr[0];for (int i = 1; i < arr.length; i++) {if (arr[i] > max) {max = arr[i];}if (arr[i] < min) {min = arr[i];}}System.out.println("数组中的最大值为:" + max);System.out.println("数组中的最小值为:" + min);```通过解答这些习题,我们可以更加深入地理解和掌握Java数组的相关知识,提高自己的编程能力。
数组选择试题及答案大全
数组选择试题及答案大全一、选择题1. 在Java中,以下哪个是正确声明一个整型数组的方式?A. int[] array;B. int array[];C. both A and BD. None of the above答案:C2. 假设有一个数组`int[] numbers = {1, 2, 3, 4, 5};`,以下哪个表达式会返回数组的长度?A. numbers.lengthB. length(numbers)C. numbers.size()D. numbers.count()答案:A3. 在C语言中,如果定义了一个整型数组`int myArray[5]`,以下哪个索引是有效的?A. 0B. 4C. 5D. -1答案:B4. 下列关于数组的描述,哪个是正确的?A. 数组的大小在声明后可以改变。
B. 数组可以存储不同类型的数据。
C. 数组的元素在内存中是连续存储的。
D. 数组可以没有元素。
答案:C5. 在Python中,以下哪个函数可以用来获取数组中的最大值?A. max()B. max_value()C. find_max()D. get_max()答案:A6. 如果有一个数组`float[] prices = {3.99f, 1.99f, 2.99f};`,以下哪个表达式可以用来计算数组中所有元素的总和?A. sum(prices)B. total(prices)C. prices.sum()D. prices.total()答案:A7. 在JavaScript中,以下哪个方法可以用来修改数组的最后一个元素?A. pop()B. push()C. shift()D. unshift()答案:B8. 下列关于数组排序的描述,哪个是错误的?A. 可以使用冒泡排序算法对数组进行排序。
B. 快速排序算法通常比冒泡排序算法更快。
C. 所有数组排序算法的时间复杂度都是O(n^2)。
D. 归并排序算法是一种稳定的排序算法。
JAVA类与对象及数组习题及答案
JAVA 类和对象及数组习题一、选择题(1)下列构造方法的调用方式中,正确的是(D )——原因:在通过new实例化一个类对象时系统会自动调用该类相应的构造方法。
A.按照一般方法调用B。
由用户直接调用ﻫC.只能通过new 自动调用D。
被系统调用(2)在Java 中,能实现多重继承效果的方式是( C )——原因:一个类可以同时实现多个接口。
Java 接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。
◻A。
内部类B.适配器 C.接口D.同步(3)int 型public 成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( D )—原因:java 中定义常量用关键字final 来定义.A.public int MAX_LENGTH=100 B。
finalintMAX_LENGTH=100 ﻫC.public const int MAX_LENGTH=100D.p ublic final int MAX_LENGTH=100(4)下列叙述中,正确的是( A)—原因:Java 严格区分大小写,所以变量number 与Number 不相同;Java 中的注释方式除了“//”行注释之外还有段注释“/*---——--*/"和文档注释/**-—---- */。
Java 源文件中的public 类只能有一个。
◻A.声明变量时必须指定一个类型ﻫ B. Java认为变量number 与Number 相同ﻫC. Java中唯一的注释方式是"//"ﻫD。
源文件中public类可以有0 或多个(5)下列叙述中,错误的是(D )—原因:子类继承父类,并且可以有自己的成员变量和成员方法。
所以可以认为子类是父类的扩展。
◻A。
父类不能替代子类B.子类能够替代父类ﻫC。
子类继承父类D.父类包含子类(6)下列代码中,将引起编译错误的行是(B)—原因:定义float 型变量并对其初始化时,其值后面要加一个f。
java 数组试题
java 数组试题以下是一些 Java 数组试题:1. 假设有一个长度为 n 的数组 nums,循环输出该数组中的每个元素。
```java。
int[] nums = {1, 2, 3, 4, 5};。
for (int i = 0; i < nums.length; i++) 。
System.out.print(nums[i] + " ");。
}。
```。
2. 假设有一个长度为 n 的数组 nums,求该数组中所有元素的和。
```java。
int[] nums = {1, 2, 3, 4, 5};。
int sum = 0;。
for (int i = 0; i < nums.length; i++) 。
sum += nums[i];。
}。
System.out.println(sum);。
```。
3. 假设有一个长度为 n 的数组 nums,将该数组中的元素按照从小到大的顺序排序,并输出排序后的结果。
```java。
int[] nums = {5, 2, 6, 3, 1};。
Arrays.sort(nums);。
for (int i = 0; i < nums.length; i++) 。
System.out.print(nums[i] + " ");。
}。
```。
4. 假设有两个长度为 n 的数组 nums1 和 nums2,求它们的点积(即对应位置上的元素相乘并相加)。
```java。
int[] nums1 = {1, 2, 3};。
int[] nums2 = {2, 3, 4};。
int dotProduct = 0;。
for (int i = 0; i < nums1.length; i++) 。
dotProduct += nums1[i] * nums2[i];。
}。
System.out.println(dotProduct);。
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. 24B. 25C. 18D. 176.下列初始化字符数组的语句中,正确的是__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. 3B. 4C. 5D. 69.下面程序的运行结果是_C___main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 5010.下面程序的运行结果是__BDF__main() {char s1[]="ABCDEF".toCharArray();int i=0;while(s1[i++]!='\0')System.out.println(s1[i++]);}A. ABCDEFB. BDFC. ABCDED. BCDE11.下面不是创建数组的正确语句CA.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. 用方法arraycopyC. 用"="进行复制D. 用clone方法13.数组a的第三个元素表示为DA. a(3)B. a[3]C.a(2)D. a[2]14.当访问无效的数组下标时,会发生BA. 中止程序B. 抛出异常C. 系统崩溃D. 直接跳过15.使用arraycopy()方法将数组a复制到b正确的是AA. 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.关于数组默认值,错误的是BA. char--'"u0000'B. Boolean--trueC. float--0.0fD. int-- 017.关于数组作为方法的参数时,向方法传递的是AA. 数组的引用B. 数组的栈地址C. 数组自身D. 数组的元素18.关于数组复制,下列说法错误的是ACA. "="可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy()方法没有给目标数组分配内存空间D. 数组复制是数组引用的传递19.下列语句会造成数组new int[10]越界是DA. 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.javaB.javacC.jvmD.tomcatD. 子类不能使用父类的构造方法21.main方法是java Application程序执行的入口点。
数组测试题及答案
数组测试题及答案一、单选题1. 在Java中,数组的默认初始值是什么?A. 0B. 1C. nullD. 随机值答案:A2. 以下哪个方法可以用来获取数组的长度?A. length()B. size()C. count()D. length答案:D3. 如何在Java中声明一个整型数组?A. int[] array;B. int array[];C. both A and BD. neither A nor B答案:C二、填空题1. 在Java中,声明一个大小为10的整型数组,可以使用语句:________。
答案:int[] array = new int[10];2. 如果有一个数组arr,要访问数组的最后一个元素,可以使用索引:________。
答案:arr.length - 1三、判断题1. 数组的索引是从1开始的。
()答案:错误2. 数组的大小在声明后可以改变。
()答案:错误3. 多维数组可以看作是数组的数组。
()答案:正确四、简答题1. 请简述Java中数组和ArrayList的区别。
答案:数组是固定大小的,而ArrayList是动态大小的;数组可以存储基本数据类型和对象,而ArrayList只能存储对象;数组在声明时必须指定大小,而ArrayList可以随着元素的添加自动增长。
2. 如何在Java中反转一个数组?答案:可以使用循环交换数组两端的元素,或者使用Arrays类的reverse方法。
结束语本试题涵盖了数组的基本概念、操作和特性,旨在帮助考生理解和掌握Java中数组的使用。
希望考生通过这些题目能够加深对数组的理解,并在实际编程中灵活运用。
Java数组练习题(带答案)培训讲学
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. 24B. 25C. 18D. 1710.下列初始化字符数组的语句中,正确的是__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. 3B. 4C. 5D. 616.下面程序的运行结果是_C___int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 5018.下面程序的运行结果是__BDF__19.main() {20.char s1[]="ABCDEF".toCharArray();21.int i=0;22.while(s1[i++]!='\0')System.out.println(s1[i++]);}A. ABCDEFB. BDFC. ABCDED. BCDE23.下面不是创建数组的正确语句C24. 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. 用方法arraycopyC. 用"="进行复制D. 用clone方法27.数组a的第三个元素表示为DA. a(3)B. a[3]C.a(2)D. a[2]28.当访问无效的数组下标时,会发生BA. 中止程序B. 抛出异常C. 系统崩溃D. 直接跳过29.使用arraycopy()方法将数组a复制到b正确的是AA. 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.关于数组默认值,错误的是 BA. char--'"u0000'B. Boolean--trueC. float--0.0fD. int-- 031.关于数组作为方法的参数时,向方法传递的是 AA. 数组的引用B. 数组的栈地址C. 数组自身D. 数组的元素32.关于数组复制,下列说法错误的是ACA. "="可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy()方法没有给目标数组分配内存空间D. 数组复制是数组引用的传递33.下列语句会造成数组new int[10]越界是DA. 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.javaB.javacC.jvmD.tomcatD. 子类不能使用父类的构造方法35.main方法是java Application 程序执行的入口点。
java 数组试题
java 数组试题1. 如何创建一个空数组?可以使用以下语法创建一个空数组:```int[] array = new int[0];```2. 如何检查数组中是否包含某个值?可以使用循环遍历数组并查找值的方法,例如:```int[] array = {1, 2, 3, 4, 5};int valueToFind = 3;boolean containsValue = false;for (int i = 0; i < array.length; i++) {if (array[i] == valueToFind) {containsValue = true;break;}}if (containsValue) {System.out.println("Value found in array!");} else {System.out.println("Value not found in array.");}```3. 如何计算数组中元素的平均值?可以使用循环遍历数组并累加元素值的方法,然后除以元素数量。
例如:```int[] array = {1, 2, 3, 4, 5};double sum = 0;for (int i = 0; i < array.length; i++) {sum += array[i];}double average = sum / array.length;System.out.println("Average: " + average);```4. 如何将一个数组复制到另一个数组?可以使用数组的 copyOfRange() 方法。
例如:```int[] sourceArray = {1, 2, 3, 4, 5};int[] targetArray = Arrays.copyOfRange(sourceArray, 0,sourceArray.length);```5. 如何将数组元素反转?可以使用循环遍历数组并交换元素的方法。
基础Java数组练习题及答案
J
reverse(data);
print(data);
}
public static void reverse(int temp[]){
int center =/2 ;//求出中心点
int head = 0 ;//表示从前开始计算脚标
int tail=-1 ;//表示从后开始计算脚标
+"、");
}
}
}
主要的目的是熟悉这两个操作的方法,数组扩大,必须要将原始数组的内容拷贝进去。
int data2 [] = new int[] {2,4,6,8,10};
int newArr [] = concat(data1,data2);
J
print(newArr);
}
public static int[] concat(int src1[],int src2[]){
int len =+;//新数组的大小
fun(oldArr,newArr);
print(newArr);
}
public static void fun(int src[],int data[]){
int foot = 0 ;//控制新数组的脚标,data
for(int x = 0 ; x < ; x++){
if(src[x] != 0){
data[foot++] = src[x];
}
}
}
public static int count(int temp[]){
int num = 0 ;
for(int x = 0 ; x < ; x++){
java数组选择题附加答案解析
Java数组选择题附加答案解析1. 下列哪个选项正确描述了Java数组?A. 数组可以包含不同类型的元素。
B. 数组的大小可以在运行时改变。
C. 数组的元素必须是相同类型的数据。
D. 数组的索引可以是负数。
答案: C。
解析:在Java中,数组的元素必须是相同类型的数据。
2. 给定以下Java数组的声明和初始化:javaint[] arr = {1, 2, 3};下列哪个选项初始化了一个与’arr’相同的数组?A. ‘int[] newArr = new int[3];’B. ‘int[] newArr = {1, 2, 3};’C. ‘int[] newArr = arr;’D. ‘int[] newArr = new int[]{1, 2, 3};’答案: D。
解析:选项D 初始化了一个与‘arr’相同的数组,并且也使用了初始化数组的方式。
3. 给定以下Java代码片段:javaint[] arr = {5, 3, 9, 1, 7};表达式’arr.length’的值是:A. 5B. 4C. 6D. 10答案: A。
解析:’arr.length’表示数组’arr’的长度,即数组中元素的个数,这里是5。
4. 给定以下Java数组的声明和初始化:javaint[] arr = new int[4];arr[0] = 1;arr[1] = 3;arr[2] = 5;arr[3] = 7;表达式’arr[2]’的值是:A. 1B. 3C. 5D. 7答案: C。
解析:’arr[2]’表示数组’arr’中索引为2的元素,即第三个元素,其值为5。
5. 给定以下Java数组的声明和初始化:javaint[] arr = {2, 4, 6, 8};下列哪个选项正确实现了对数组’arr’的遍历?A.javafor (int i = 0; i <= arr.length; i++) {System.out.println(arr[i]);}B.javafor (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}C.javafor (int i = 1; i <= arr.length; i++) {System.out.println(arr[i]);}D.javafor (int i = 0; i < arr.length - 1; i++) {System.out.println(arr[i]);}答案: B。
java数组习题及答案·优选.
三、/*现在有如下一个数组:*int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};*要求将以上数组中的0项去掉,将不为0的值存入一个新的数组,生成新的数组为:*int newArr[]={1,3,4,5,6,6,5,4,7,6,7,5};*/public class Test4_3{public static void main(String[] args){int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};int n=0;for(int i=0;i<oldArr.length;i++){if(oldArr[i]!=0){n++;}}int newArr[]=new int[n];n=0;for(int i=0;i<oldArr.length;i++){if(oldArr[i]!=0){newArr[n]=oldArr[i];n++;}}for(int i=0;i<newArr.length;i++){System.out.print(newArr[i]+"/t");}}}四、//定义一个整型数组,保存10个数据,利用程序完成将最大值保存在数组中第一个元素,依次递减。
public class Test4_4{public static void main(String[] args){int arr[]={78,64,35,92,48,98,87,94,80,83};rankArr(arr);}public static void rankArr(int temp[]){for(int i=1;i<temp.length;i++){System.out.print("第"+i+"次排序时:");for(int j=0;j<temp.length;j++){if(temp[j]<temp[i]){int x=temp[j];temp[j]=temp[i];temp[i]=x;}}for(int e=0;e<temp.length;e++){System.out.print(temp[e]+"、");}System.out.println();}}}每次交换数据后,都输出了所有数组元素,可以观察到元素间的数据交换。
Java数组练习题带答案
填空题一 length 。
来访问,数组Array得长度为 Array、1)数组得元素通过下标传递给另一个数组。
?将一个数组得引用 2)数组复制时,中。
栈(堆或栈)3)JVM将数组存储在。
数组得二分查找法运用得前提条件就是数组已经排序 4)。
中数组得下标得数据类型就是整型 5)Java。
6)数组最小得下标就是 0。
得最后一个参数指明复制元素得个数 7)arraycopy()向方法传递数组参数时,传递得就是数组得引用。
8)数组得申明,创建与初始化。
9)数组初始化包括数组越界异常10)数组下标访问超出索引范围时抛出 0、0f 。
11)浮点型数组得默认值就是不能改变。
12)数组创建后其大小二选择题_ABD__1.下面错误得初始化语句就是 char str[100]=hello;B、A、 char str[]=hello;C、 char str[]={'h','e','l','l','o'};D、 char str[]={'hello'};___B定义了一维int型数组a[10]后,下面错误得引用就是2. 、 a[0]=5*2; C、、 a[0]=1; D、a[1]=a[2]*a[0];B a[10]=2;A____下面得二维数组初始化语句中,正确得就是3.4}}; 、3,0、4}; B、A、 float b[2][2]={01,0、2,0、 float a[2][2]={0};、 DC、 4}};_D___4.引用数组元素时,数组下标可以就是以上均可 D A、整型常量、整型表达式、 B、整型变量 C____前得数组元素个数为型二维数组a[6][7]后,数组元素a[3][4]5.定义了int C、 18 D、17 B、 25 、A 24____B6.下列初始化字符数组得语句中,正确得就是 char str[5]=hello; char、 B A、str[]={'h','e','l','l','o','\0'};char str[100]=\;C 、、D char str[5]={hi};Java中储存在 C 中数组在7.队列 B、 C、、D 链表堆栈、A____下面程序得运行结果就是8.main() {5,6}};printf(%d, a[1][1]);out、、 System}6 A、、 4 C、、 3 B 5 D_C___下面程序得运行结果就是9.main() {int x=30;int[] numbers=new int[x];x=60;System、out、println(numbers、length);}A、 60B、 20C、 30D、 5010.下面程序得运行结果就是__BDF__main() {档牡猠嬱????屆、toCharArray();int i=0;while(s1[i++]!='\0')System、out、println(s1[i++]);}A、 ABCDEFB、 BDFC、 ABCDED、 BCDE11.下面不就是创建数组得正确语句CA、float f[][]=new float[6][6];B、float f[]=new float[6];C、float f[][]=new float[][6]; 、 Dfloat[6][]; [][]f=new float(C) 下面不就是数组复制方法得就是12.arraycopy 用方法B 用循环语句逐个复制数组、 A、方法?进行复制clone用、D C、用D a得第三个元素表示为数组13.a[2]、、 A、 a(3)B a[3]C、a(2) DB 14.当访问无效得数组下标时,会发生中止程序直接跳过D、系统崩溃 B、抛出异常 C、 A、Ab正确得就是复制到使用15.arraycopy()方法将数组alength) 、、 arraycopy(a,0,b,0,a、length) B、 arraycopy(a,0,b,0,b Alength) arraycopy(a,1,b,1,alength)D、、 arraycopy(b,0,a,0,a C、、、 B16.关于数组默认值,错误得就是 int-- 、、 A char--'、 Boolean--true C float--0、0f D、0A关于数组作为方法得参数时,向方法传递得就是17. 、 D 数组得元素数组自身、数组得栈地址、数组得引用、 A B CAC 关于数组复制,下列说法错误得就是18.可以实现数组复制尠尽 A、运用循环语句进行数组复制必须两个数组长度相同、 B方法没有给目标数组分配内存空间 arraycopy()、 C.D、数组复制就是数组引用得传递19.下列语句会造成数组new int[10]越界就是DA、 a[0] += 9;B、 a[9]=10;C、—a[9]D、 for(inti=0;i<=10;i++) a[i]++;(B )源程序使用得命令就是在JDK环境下编译JAVA20.tomcat、javac CjvmD、A、java B、 D、子类不能使用父类得构造方法21.main方法就是java Application 程序执行得入口点。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一填空题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. 24B. 25C. 18D. 176.下列初始化字符数组的语句中,正确的是__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. 3B. 4C. 5D. 69.下面程序的运行结果是_C___main() {int x=30;int[] numbers=new int[x];x=60;System.out.println(numbers.length);}A. 60B. 20C. 30D. 5010.下面程序的运行结果是__BDF__main() {char s1[]="ABCDEF".toCharArray();int i=0;while(s1[i++]!='\0')System.out.println(s1[i++]);}A. ABCDEFB. BDFC. ABCDED. BCDE11.下面不是创建数组的正确语句CA.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. 用方法arraycopyC. 用"="进行复制D. 用clone方法13.数组a的第三个元素表示为DA. a(3)B. a[3]C.a(2)D. a[2]14.当访问无效的数组下标时,会发生BA. 中止程序B. 抛出异常C. 系统崩溃D. 直接跳过15.使用arraycopy()方法将数组a复制到b正确的是AA. 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.关于数组默认值,错误的是BA. char--'"u0000'B. Boolean--trueC. float--0.0fD. int-- 017.关于数组作为方法的参数时,向方法传递的是AA. 数组的引用B. 数组的栈地址C. 数组自身D. 数组的元素18.关于数组复制,下列说法错误的是ACA. "="可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy()方法没有给目标数组分配内存空间D. 数组复制是数组引用的传递19.下列语句会造成数组new int[10]越界是DA. 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.javaB.javacC.jvmD.tomcatD. 子类不能使用父类的构造方法21.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[])22.执行完代码"int[] x=new int[25];"后以下( A )说明正确的A. x[24]为0B. x[24]未定义C. x[25]为0D. x[0]为空23.关于数组排序方法,错误的是CA. 选择排序B. 插入排序C. 二分排序D. 用arrays.sort( )排序24.关于char类型的数组,说法正确的是DA. 其数组的默认值是'A'B. 可以仅通过数组名来访问数组C. 数组不能转换为字符串D. 可以存储整型数值25.对于数组a[10],下列表示错误的是BA. a[0]B. a(0)C. a[9]D. a[1]26.下列数组声明,下列表示错误的是A. int[] aB. int a[]C. int[][] aD. 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]);19)}20)}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)7)String[] names = new String[numberOfStudents];8)double[] scores = new double[numberOfStudents];9)10)for (int i = 0; i < scores.length; i++) {11)names[i] = JOptionPane.showInputDialog("Enter a student name");12)scores[i] = Double.parseDouble(13)JOptionPane.showInputDialog("Enter a student score"));14)}15)16)for (int i = scores.length - 1; i >= 1; i--) {17)double currentMax = scores[0];18)int currentMaxIndex = 0;19)20)for (int j = 1; j <= i; j++) {21)if (currentMax < scores[j]) {22)currentMax = scores[j];23)currentMaxIndex = j;24)}25)}26)27)if (currentMaxIndex != i) {28)scores[currentMaxIndex] = scores[i];29)scores[i] = currentMax;30)String temp = names[currentMaxIndex];31)names[currentMaxIndex] = names[i];32)names[i] = temp;33)}34)}35)36)for (int i = scores.length - 1; i >= 0; i--) {37)System.out.println(names[i] + "\t" + scores[i]);38)}39)}40)}3.编写一个程序,使它能够读入10个整数,并且存储其中互不相同的数,最后将这10个数输出。