Java数组练习题

合集下载

java 数组试题

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() 方法将数组排序,并选择第一个和最后一个元素来获取最小值和最大值。

java数组习题答案

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数组的相关知识,提高自己的编程能力。

java 数组试题

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数组练习

Java数组练习

Java数组练习需求1.将⼀个给定的整型数组转置输出,例如:源数组,1 2 3 4 5 6转置之后的数组,6 5 4 3 2 12.现在有如下的⼀个数组: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} ;3.现在给出两个数组:数组a:"1,7,9,11,13,15,17,19"数组b:"2,4,6,8,10"两个数组合并为数组c。

思路1. (1)给任意⼀个确定的数组,作为参数; (2)定义⼀个函数,完成转置数组的功能(⽤冒泡排序从⼤到⼩完成排序),然后返回该数组; (3)再主⽅法⾥⾯调⽤该函数,并传⼊⼀个确定的数组,返回转置后的数组,然后遍历查看;2. (1)定义⼀个函数,参数为⼀个整形数组,先判断⾥⾯⾮零的个数;然后再创建⼀个新数组, 再把旧数组⾥⾯的⾮零值赋值给新的数组;最后返回新数组; (2)主⽅法⾥⾯定义⼀个数组,以该数组为参数,调⽤函数,返回⼀个新的数组,然后遍历 新数组查看3. (1)定义⼀个函数,完成合并两个数组,并返回合并之后的数组 (2)定义两个数组,调⽤函数,返回⼀个数组并遍历查看它源码1.1package one;23/**4 * @author xjs5 * @date 2019/4/22 - 23:116*/78public class Test1 {910public static int[] fun(int [] arr){11//冒泡排序--把最⼩的放最后⾯12for (int i=0;i<arr.length-1;i++){//length-1--要排到最后的数的个数为n-113for(int j=0;j<arr.length-1-i;j++){//length-i趟------两两⽐较的次数 n-1-i,⽽且每次⽐较下标都是从0开始14if(arr[j]<arr[j+1]){15int temp=arr[j];16 arr[j]=arr[j+1];17 arr[j+1]=temp;18 }19 }20 }21return arr;22 }2324public static void main(String[] args) {25int[] arr={1,2,3,4,5,6};26 arr=Test1.fun(arr);2728for (int i = 0; i < arr.length; i++) {29 System.out.print(arr[i]+" ");30 }31 }32 }2.1package one;23/**4 * @author xjs5 * @date 2019/4/23 - 8:506*/78public class Test4 {9/*函数:通过传来⼀个数组,先判断⾥⾯的⾮零个数,然后创建10⼀个新数组,再把旧数组⾥⾯的⾮零数赋值到新的数组⾥⾯,11最后返回新的数组*/12public static int[] fun(int oldArr[]){13int k=0;14for (int i = 0; i < oldArr.length; i++) {15if (oldArr[i]==0){16 k++;17 }18 }19int m=oldArr.length-k;20int[] newArr=new int[m];21int j=0;22for (int i = 0; i < oldArr.length; i++) {23if (oldArr[i]!=0){24 newArr[j]=oldArr[i];25 j++;26 }27 }28return newArr;29 }3031public static void main(String[] args) {32int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};33int[] newArr=fun(oldArr);34for (int i = 0; i < newArr.length; i++) {35 System.out.print(newArr[i]+" ");36 }37 }38 }3.1package one;23/**4 * @author xjs5 * @date 2019/4/23 - 8:236*/78public class Test3 {910public static int[] fun(int[] a,int[] b){11int m=a.length+b.length;12int[] c=new int[m];13for (int i = 0; i <c.length ; i++) {14if (i<a.length){15 c[i]=a[i];16 }else {17 c[i]=b[i-a.length];18 }19 }20return c;21 }2223public static void main(String[] args) {24//可将任意确定的数组传进函数,然后合并25int[] a={1,7,9,11,13,15,17,19};26int[] b={2,4,6,8,10};27int[] c=fun(a,b);28for (int i = 0; i < c.length; i++) {29int i1 = c[i];30 System.out.print(i1+" ");31 }32 }33 }。

java编程基础—数组练习

java编程基础—数组练习

1、编写一个简单程序,要求数组长度为5,分别赋值10,20,30,40,50,在控制台输出该数组的值。

(知识点:数组定义和创建、一维数组初始化)public class work01 {public static void main(String[] args) {// TODO Auto-generated method stubint arr[] = new int[]{10,20,30,40,50};for(int i = 0;i<=arr.length;i++){System.out.println(arr[i]);}}}运行结果:2、将一个字符数组的值(neusofteducation)拷贝到另一个字符数组中。

(知识点:数组复制)public class work02 {public static void main(String[] args) {// TODO Auto-generated method stubchar[] copyFrom = newchar[]{'n','e','u','s','o','f','t','e','d','u','c','a','t','i','o','n'};char[ ] copyTo = new char[16];System.arraycopy(copyFrom, 0, copyTo, 0, 16);System.out.println(new String(copyTo));}}运行结果:3、给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。

java 数组试题

java 数组试题

java 数组试题Java 数组是一种非常常见的数据结构,是一组具有相同类型和固定大小的数据元素集合。

数组在 Java 中是一种对象,由连续的内存地址组成,用于创建单一数据类型的变量。

在Java 中,数组的下标从 0 开始计数,可以存储基本数据类型或其他对象类型。

使用数组有很多好处,如提高程序的效率和简化代码编写流程等。

下面是一些 Java 数组的相关试题及其参考内容。

1. 如何声明数组?声明一个数组需要指定数组的类型和长度。

以下是一些示例代码:int[] intArr = new int[10];double[] doubleArr = new double[5];String[] strArr = new String[3];这些声明语句创建了三个不同的数组,分别存储 int、double 和 String 类型的数据。

这些数组的长度分别为 10、5 和 3。

2. 如何初始化数组?可以通过两种方法初始化数组:逐个赋初始值或使用数组初始化器。

以下是一些示例代码:int[] intArr = new int[3];intArr[0] = 1;intArr[1] = 2;intArr[2] = 3;int[] intArr2 = {1, 2, 3};这两个数组都存储了相同的值,但是它们的初始化方式不同。

3. 如何遍历数组?可以使用 for 循环或 foreach 循环遍历数组。

以下是一些示例代码:int[] intArr = {1, 2, 3};for (int i = 0; i < intArr.length; i++) {System.out.println(intArr[i]);}int[] intArr = {1, 2, 3};for (int i : intArr) {System.out.println(i);}这两个循环语句都遍历了 intArr 数组,并且输出了其中的每一个元素。

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数组练习题及答案

print(data);
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基础——数组练习题

1.从键盘接受10个整数,求出其中的最大值和最小值。

2.输入10个数,保存在一个数组中,在数组中查找某个数字,给出是否找到信息,如果
找到了输出该数在数组中所处的位置,如果找不到输出“找不到”
3.如果一个数组保存元素是有序的(从大到小),向这个数组中插入一个数,使得插入后
的数组元素仍然保持有序。

4.将一个数组中的元素逆序输出,即第一个元素和最后一个元素交换,第二个数与倒数第
二元素交换…..,例如:原数组为:9 2 5 7 8,逆序后的数组为:8 7 5 2 9 5.顾客从超市采购了10件商品,编写一个程序,用于接受每件商品的价格,计算应付的
总金额。

并分别打印出各个商品的价格以及应付的总金额的小票。

6.有一个排好序的数组,要求输入一个数,在数组中查找是否有这个数,如果有,将改数
从数组中删除,要求删除后的数组仍然保持有序,如果没有,则输出“数组中没有这个数”
7.编写一个程序,用于接受两个数组的值,将这两个数组中的值一次相加保存在第三个数
组中。

8.输入数组中的值,将数组中的最小值与第一个元素交换,最大值与最后一个元素交换,
输出数组。

9.某公司采用公用电话传递数据,数据是4位整数,在传递过程中是加密的,加密规则如
下:每位上的数字加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换,编写一个程序,用于接受一个4位整数,并且打印输出加密后的数字
10.输入一个5位的正整数,使用数组判断它是不是回文数(例如:12321是回文数)。

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();}}}每次交换数据后,都输出了所有数组元素,可以观察到元素间的数据交换。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一 填空题 1) 数组的元素通过 下标 来访问,数组Array的长度为 。 2) 数组复制时,"="将一个数组的 引用 传递给另一个数组。 3) JVM将数组存储在 栈 (堆或栈)中。 4) 数组的二分查找法运用的前提条件是数组已经 排序 。 5) Java中数组的下标的数据类型是 整型 。 6) 数组最小的下标是 0 。 7) arraycopy()的最后一个参数指明 复制元素的个数 。 8) 向方法传递数组参数时,传递的是数组的 引用 。 9) 数组初始化包括 数组的申明,创建和初始化 。 10) 数组下标访问超出索引范围时抛出 数组越界 异常 11) 浮点型数组的默认值是 。 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]={,,,}; 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}}; "%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;

} A. 60 B. 20 C. 30 D. 50 10. 下面程序的运行结果是__BDF__ main() { char s1[]="ABCDEF".toCharArray(); int i=0; while(s1[i++]!='\0')

} A. ABCDEF B. BDF C. ABCDE D. BCDE 11. 下面?不是创建数组的正确语句C f[][]=new float[6][6]; ? f[]=new float[6]; f[][]=new float[][6]; [][]f=new float[6][]; 12. 下面不是数组复制方法的是(C) A. 用循环语句逐个复制数组 B. 用方法arraycopy C. 用"="进行复制 D. 用clone方法 13. 数组a的第三个元素表示为D A. a(3) B. a[3] (2) D. a[2] 14. 当访问无效的数组下标时,会发生B A. 中止程序 B. 抛出异常 C. 系统崩溃 D. 直接跳过 15. 使用arraycopy()方法将数组a复制到b正确的是A A. arraycopy(a,0,b,0, B. arraycopy(a,0,b,0, C.. arraycopy(b,0,a,0, D. arraycopy(a,1,b,1, 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 )

D. 子类不能使用父类的构造方法 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]为0 B. x[24]未定义 C. x[25]为0 D. x[0]为空 23. 关于数组排序方法,错误的是 C A. 选择排序 B. 插入排序 C. 二分排序 D. 用( )排序 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.将一个数组传递给一个方法,必须加在数组名后加方括号。( ) 语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。( ) 12.下面这条语句正确吗?( ) double[] myList; myList = {, , , }; 14. 数组中有length()这个方法,如()表示数组array中元素的个数( ) 15.下面这条语句正确吗?( ) int t[3][2] = {{1,2},{3,4},{5,6}}; 16.数组声明后其大小固定。( ) 17.设有整型数组的定义:int A.[]=new int[8]; ,则的值为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) "数组的初始状态为:"); 6) for (int i=0; i < ; i++) 7) " " + a[i]);

8) 9) for (int i=0; i < 2; i++) { 10) t = a[i]; 11) a[i] = a[]; 12) a[]=t; 13) }

14) 15) "数组逆序存放后的状态为:"); 16) for (int i=0; i < ; i++) 17) " " + a[i]); 18) } 19) }

相关文档
最新文档