第一阶段第九天(函数递归调用,一维数组)
2017-05-26 16:50
232 查看
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 ;//创建数组 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); } }
相关文章推荐
- Java 学习笔记 (10) - Java 函数的递归调用
- 9.8 函数的递归调用
- C++程序设计实验报告(二十七)---第二周任务一(自定义函数用递归思想,即不断调用,反向输出二进制)
- [java]函数的递归调用--代码举例
- 递归调用的方法求幂函数
- 函数的递归调用与分治策略
- 函数的递归调用与栈
- C++ primer 这本书上有这么两句话“派生类虚函数调用基类版本时,必须显式使用作用域操作符。如果派生类函数忽略了这样做,则函数调用会在运行时确定并且将是一个自身调用,从而导致无穷递归。”
- 函数递归调用问题
- 利用函数递归调用实现汉诺塔
- 函数递归调用
- 函数的调用机制_用递归实现栈(Function call machenism_Recursive calls stimulate stack)
- 自编strlen()函数,并用它递归调用编写revers(S)函数,给字符串S倒序
- 函数递归调用详解
- 《叩响C#之门》第6章 函数 6.5 递归调用(生日贴)
- 函数的递归调用
- C语言程序设计 函数递归调用示例
- ASP递归调用:已知节点查找根节点的函数
- 关于函数调用和尾递归的一点认识
- 用C语言解决(hanoi)汉诺塔问题——函数的递归调用