1、详细写出数组定义的几种方式,并举例说明
定义数组:
1.动态初始化
数据类型 [] 变量名=new 数据类型[容量];
例如:定义一个int类型数组 分配5个元素
int [] arr=new int[5];
2.静态初始化
数据类型 [] 变量名=new 数据类型[]{值1,值2,值3};
简写:
数据类型 [] 变量名={值1,值2,值3....};
例如:定义一个字符串数组:
String [] str=new String[]{"张三","李四","王五"};
或者String [] str={"张三","李四","王五"};
2、写一个函数,计算一个整数数组的平均值
3、给定一个数组,输出数组中的最大值和最小值
4、 下列数组的声明有哪些是对的?错的应该怎么修改?
A. int[] a; 对
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[] {1,2,3};
5、 看下面的代码,写出输出的结果
public class Ex2 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
expand(a);
changeArray(a);
printArray(a);
}
public static void expand(int[] a){
int[] newArray = new int[a.length * 2];
System.arraycopy(a, 0, newArray, 0, a.length);
a = newArray;
}
public static void changeArray(int[] a){
a[0] = 10;
}
public static void printArray(int[] a){
for(int i = 0; i<a.length; i++){
System.out.print(a[i] + "\t");
}
System.out.println();
}
}
请选择输出结果:
A. 10 2 3 4 5
B. 1 2 3 4 5
C. 10 2 3 4 5 0 0 0 0 0
D. 1 2 3 4 5 00 0 0 0
答:A
6、通过两种方式遍历数组{12,34,53,22,13,15}
7、获取1到100以内的所有能被3整除同时不能被5整除的数字的信息,放入到数组中,并打印输出
8、获取数组中最大值、最小值、平均值,定义数组通过Scanner键盘输入依次赋值
定义数组:
1.动态初始化
数据类型 [] 变量名=new 数据类型[容量];
例如:定义一个int类型数组 分配5个元素
int [] arr=new int[5];
2.静态初始化
数据类型 [] 变量名=new 数据类型[]{值1,值2,值3};
简写:
数据类型 [] 变量名={值1,值2,值3....};
例如:定义一个字符串数组:
String [] str=new String[]{"张三","李四","王五"};
或者String [] str={"张三","李四","王五"};
2、写一个函数,计算一个整数数组的平均值
package day9;
/**
*
* 写一个函数,计算一个整数数组的平均值
*
*/
public class Demo9_1 {
public static void main(String[] args) {
int [] arrs={34,25,65,21,45};//定义数组
avg(arrs);//调用函数输出平均值
}
public static void avg(int [] arrs){
int sum=0;
for(int i=0;i<arrs.length;i++){//遍历数组并求和
sum+=arrs[i];
}
double avg=sum/arrs.length;//求数组平均值
System.out.println(avg);
}
}
3、给定一个数组,输出数组中的最大值和最小值
package day9;
/**
* 给定一个数组,输出数组中的最大值和最小值
*/
public class Demo9_2 {
/**
* 入口文件
* @param args参数
*/
public static void main(String[] args) {
int [] arrs={84,56,32,67,54};//定义数组
getMax(arrs);//调用函数,输出最大值
getMin(arrs);//调用函数,输出最小值
}
/**
* 实现最大值
* @param arrs
*/
public static void getMax(int [] arrs){
int max=arrs[0];//假设第一个为最大值
for(int i=0;i<arrs.length;i++){
if(max<arrs[i]){//遍历数组获取最大值
max=arrs[i];
}
}
4、 下列数组的声明有哪些是对的?错的应该怎么修改?
A. int[] a; 对
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[] {1,2,3};
5、 看下面的代码,写出输出的结果
public class Ex2 {
public static void main(String[] args) {
int[] a = {1,2,3,4,5};
expand(a);
changeArray(a);
printArray(a);
}
public static void expand(int[] a){
int[] newArray = new int[a.length * 2];
System.arraycopy(a, 0, newArray, 0, a.length);
a = newArray;
}
public static void changeArray(int[] a){
a[0] = 10;
}
public static void printArray(int[] a){
for(int i = 0; i<a.length; i++){
System.out.print(a[i] + "\t");
}
System.out.println();
}
}
请选择输出结果:
A. 10 2 3 4 5
B. 1 2 3 4 5
C. 10 2 3 4 5 0 0 0 0 0
D. 1 2 3 4 5 00 0 0 0
答:A
6、通过两种方式遍历数组{12,34,53,22,13,15}
package day9;
/**
*
* 通过两种方式遍历数组{12,34,53,22,13,15}
*
*/
public class Demo9_4 {
public static void main(String[] args) {
int [] i={12,34,53,22,13,15};
query(i);
System.out.println("*********************");
query2(i);
}
/**
* 遍历方式1
* @param arrs
*/
public static void query(int [] arrs){
for(int i=0;i<arrs.length;i++){
System.out.println(arrs[i]);
}
}
/**
* 遍历方式2
* @param ars
*/
public static void query2(int [] ars){
for (int i : ars) {
System.out.println(i);
}
}
}
7、获取1到100以内的所有能被3整除同时不能被5整除的数字的信息,放入到数组中,并打印输出
package day9;
/**
*
* 获取1到100以内的所有能被3整除同时不能被5整除的数字的信息,
* 放入到数组中,并打印输出
*
*/
public class Demo9_5 {
public static void main(String[] args) {
zhengchu();//调用函数
}
/**
* 获取1-100内能被3整除不能被5整除的数的个数
* 创建数组
* 给数组循环赋值
*/
public static void zhengchu(){
int j=0;
for(int i=1;i<=100;i++){//获取1-100以内能被3整除不能被5整除的数的个数
if(i%3==0&&i%5!=0){
j++;
}
}
int arrs[]=new int[j];//定义数组
for(int i=1;i<=100;i++){//给数组循环赋值
if(i%3==0&&i%5!=0){
j--;
arrs[j]=i;
System.out.print(arrs[j]+" ");
}
}
System.out.println();
}
}
8、获取数组中最大值、最小值、平均值,定义数组通过Scanner键盘输入依次赋值
package day9;
import java.util.Scanner;
/**
*
* 获取数组中最大值、最小值、平均值,定义数组通过Scanner键盘输入依次赋值
*
*/
public class Demo9_6 {
/**
* 入口文件
* @param args
*/
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);//实例化Scanner类对象
System.out.println("请输入数字的个数n");//提示用户输入数字个数
int n=sc.nextInt();
int [] arrs=new int [n];//创建数组
for(int i=0;i<n;i++){//提示用户输入数组中的每个数字
System.out.println("请输入第"+(i+1)+"个数字");
arrs [i]=sc.nextInt();//获取数组中的每个数字
}
getMax(arrs);//调用函数打印最大值
getMin(arrs);//调用函数打印最小值
getAvg(arrs);//调用函数打印平均值
sc.close();//关闭Scanner对象
}
/**
* 实现最大值
* @param arrs
*/
public static void getMax(int [] arrs){
int max=arrs[0];//假设第一个为最大值
for(int i=0;i<arrs.length;i++){
if(max<arrs[i]){//遍历数组获取最大值
max=arrs[i];
}
}
System.out.println("最大值为:"+max);
}
/**
* 实现最小值
* @param arrs
*/
public static void getMin(int [] arrs){
int min=arrs[0];//假设第一个为最小值
for(int i=0;i<arrs.length;i++){//遍历数组获取最小值
if(min>arrs[i]){
min=arrs[i];
}
}
System.out.println("最大值为:"+min);
}
/**
* 实现平均值
* @param arrs
*/
public static void getAvg(int [] arrs){
int sum=0;
for(int i=0;i<arrs.length;i++){//遍历数组并求和
sum+=arrs[i];
}
double avg=sum/arrs.length;//求数组平均值
System.out.println("平均值为"+avg);
}
}