Java数组练习题1

数组:一组连续的存储空间,存储多个相同类型的值。
附:Java基础知识框架思维导图

数组练习题1

1.下列数组的声明有哪些是对的?错的应该怎么修改?

  • A.int[] a;错误:声明时必须确定数组的长度,但并不会报错,因为数组的a的长度被赋值为0了。
  • B.int a[] =new int[3]; 正确
  • C.int[] a; a={1,2,3,4,5}; 错误:int[] a
    ={1,2,3,4,5}声明并赋值的简写方式,不可分行,影响自动推导
  • D.int[] a=new int[3]{1,2,3};错误:int[] a=new int[3];或者int[] a=new
    int{1,2,3};

数组程序题

  1. 写一个函数,计算一个整数数组的平均值。
  2. 自定义一个整数数组a,读入一个整数n,如果n在数组中存在,则输出n的下标,如果不存在,输出-1。
  3. 给定一个数组,把这个数组中所有元素顺序进行颠倒。
  4. 给定一个数组,输出数组中的最大值和最小值。
  5. 完成数组的冒泡排序算法:给定一个数组:int[] a={1,3,2,7,5}利用冒泡排序对其按照从小到大的顺序排序,然后输出结果。
  6. 使用第二种算法对数组进行排序。
2.写一个函数,计算一个整数数组的平均值。
//2.写一个函数,计算一个整数数组的平均值。
import java.util.Random;
public class text1{
	public static void main(String[] args){
		Random input=new Random();
		int[] a=new int[6];//声明int类型存储空间为6的数组
		int sum=0;//和
		for(int i=0;i<a.length;i++){
			a[i]=input.nextInt(101);//将输入的数字存入数组
			sum+=a[i];
			System.out.print(a[i]+"\t");
		}
		System.out.println();
		System.out.println("数的平均数:"+sum/a.length);		
	} 
}
3.自定义一个整数数组a,读入一个整数n。如果n在数组中存在,则输出n的下标,如果不存在,输出-1。
/*3.自定义一个整数数组a,读入一个整数n。
如果n在数组中存在,则输出n的下标,如果不存在,输出-1。*/
import java.util.Scanner;
public class text2{
	public static void main(String[] args){
		Scanner input=new Scanner(System.in);
		int[] a={12,23,45,34,23,109};//声明int类型存储空间为6的数组
		System.out.print("请输入一个整数n:");
		int n=input.nextInt();
		boolean bool=true;
		for(int i=0;i<a.length;i++){
			if(a[i]==n){
				System.out.println(a[i]+"的下标为:"+i);
				bool=false;
				break;
			}
			}
		if(bool){
			System.out.println(-1);
		}	
	} 
}
4.给定一个数组,把这个数组中所有元素顺序进行颠倒。
//4.给定一个数组,把这个数组中所有元素顺序进行颠倒。
import java.util.Random;
public class text3{
	public static void main(String[] args){
		int[] a=new int[6];//声明int类型存储空间为6的数组
		Random num=new Random();
		int temp=0;//为交换定义一个临时存储
		System.out.print("颠倒前的数组为:");
		for(int i=0;i<a.length;i++){
			a[i]=num.nextInt(101);
			System.out.print(a[i]+"\t");
		}
		//颠倒
		for(int i=0;i<=(a.length-1)/2;i++){
			temp=a[i];
			a[i]=a[a.length-1-i];
			a[a.length-1-i]=temp;
		}
		System.out.println();
		System.out.print("颠倒后的数组为:");
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+"\t");
		}
	} 
}
5.给定一个数组,输出数组中的最大值和最小值。
//5.给定一个数组,输出数组中的最大值和最小值。
import java.util.Random;
public class text4{
	public static void main(String[] args){
		int[] a=new int[8];//声明int类型存储空间为8的数组
		Random num=new Random();
		for(int i=0;i<a.length;i++){
			a[i]=num.nextInt(1001);
			System.out.print(a[i]+"\t");
		}
		System.out.println();
		System.out.print("最大值:"+getMax(a)+"\n");
		System.out.print("最小值:"+getMin(a));
	} 
	public static int getMax(int[] a){
		int max =a[0];
		for(int i=1;i<a.length;i++){
			if(a[i]>max){
				max=a[i];
			}
		}
		return max;
	}
	public static int getMin(int[] a){
		int min =a[0];
		for(int i=1;i<a.length;i++){
			if(a[i]<min){
				min=a[i];
			}
		}
		return min;
	}
}
6.完成数组的冒泡排序算法:给定一个数组:int[] a={1,3,2,7,5} 利用冒泡排序对其按照从小到大的顺序排序,然后输出结果
/*6.完成数组的冒泡排序算法:给定一个数组:int[] a={1,3,2,7,5}
利用冒泡排序对其按照从小到大的顺序排序,然后输出结果*/
public class text5{
	public static void main(String[] args){
		int[] a=new int[]{1,3,2,7,5};
		int temp=0;//为交换定义一个临时存储
		for(int i=0;i<a.length;i++){
			for(int j=0;j<a.length-i-1;j++){
				if(a[j]>a[j+1]){
					temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
		System.out.print("排序结果为:");
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+"\t");
		}	
	} 
}
7.使用第二种算法对数组进行排序。
//7.使用第二种算法对数组进行排序
public class text6{
	public static void main(String[] args){
		int[] a=new int[]{1,3,2,7,5};
		int temp=0;//为交换定义一个临时存储
		for(int i=0;i<a.length;i++){
			for(int j=i+1;j<a.length;j++){
				if(a[i]>a[j]){
					temp=a[j];
					a[j]=a[i];
					a[i]=temp;
				}
			}
		}
		System.out.print("排序结果为:");
		for(int i=0;i<a.length;i++){
			System.out.print(a[i]+"\t");
		}	
	} 
}
发布了14 篇原创文章 · 获赞 20 · 访问量 2402

猜你喜欢

转载自blog.csdn.net/weixin_44255829/article/details/104264674