数组:一组连续的存储空间,存储多个相同类型的值。
附: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};
数组程序题
- 写一个函数,计算一个整数数组的平均值。
- 自定义一个整数数组a,读入一个整数n,如果n在数组中存在,则输出n的下标,如果不存在,输出-1。
- 给定一个数组,把这个数组中所有元素顺序进行颠倒。
- 给定一个数组,输出数组中的最大值和最小值。
- 完成数组的冒泡排序算法:给定一个数组:int[] a={1,3,2,7,5}利用冒泡排序对其按照从小到大的顺序排序,然后输出结果。
- 使用第二种算法对数组进行排序。
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");
}
}
}