- 1、编写一个方法,计算并返回给定int数组的和
public class Demo1
{
public static void main(String[] args)
{
int[] a = {56,98,73,22,56,95};
System.out.println(sum(a));
}
public static int sum(int[] a)
{
int sum = 0;
for (int i = 0; i < a.length; i++)
{
sum += a[i];
}
return sum;
}
}
- 2、提示用户输入一个整数n,生成一个int数组,数组的长度为n,并且数组元素从1依次递增到n,如 {1,2,3…n}
import java.util.Scanner;
import java.util.Arrays;
public class Demo2
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组的长度(n):");
int n = sc.nextInt();
int[] arr = new int[n];
for (int i = 0; i < arr.length; i++)
{
arr[i] = i + 1;
}
System.out.println("生成数组为:" + Arrays.toString(arr));
}
}
- 3、编写一个方法,bool isEquals(int[] nums1,int[] nums2),比较两个数组的内容是否完全相等(对应索引位置的元素完全相等)
import java.util.Arrays;
public class Demo3
{
public static void main(String[] args)
{
int[] nums1 = {1,2,3,4,5};
int[] nums2 = {1,2,3,4,5};
int[] nums3 = {};
int[] nums4 = {3,4,5};
int[] num = null;
System.out.print(Arrays.toString(nums1)+" 和 "+Arrays.toString(num)+" 是否相等?\t\t");
System.out.println(isEquals(nums1,num));
System.out.print(Arrays.toString(nums1)+" 和 "+Arrays.toString(nums3)+" 是否相等?\t\t");
System.out.println(isEquals(nums1,nums3));
System.out.print(Arrays.toString(nums1)+" 和 "+Arrays.toString(nums4)+" 是否相等?\t\t");
System.out.println(isEquals(nums1,nums4));
System.out.print(Arrays.toString(nums1)+" 和 "+Arrays.toString(nums1)+" 是否相等?\t\t");
System.out.println(isEquals(nums1,nums2));
}
public static boolean isEquals(int[] nums1,int[] nums2)
{
if(nums1 == null || nums2 == null)
{
return false;
}
if(nums1.length == 0 || nums2.length == 0)
{
return false;
}
if (nums1.length != nums2.length)
{
return false;
}
for (int i = 0; i < nums1.length; i++) {
if(nums1[i] != nums2[i])
{
return false;
}
}
return true;
}
}
- 4、编写方法getMax,它带有3个int 型参数a,b,c,返回a,b,c这三个数的最大值
public class Demo4
{
public static void main(String[] args)
{
int a = 12;
int b = 34;
int c = -26;
int max = getMax(a,b,c);
System.out.println(a + "," + b + "," + c + " 中的最大值是:" + max);
}
private static int getMax(int a,int b)
{
if(a > b)
{
return a;
}
else{
return b;
}
}
public static int getMax(int a,int b,int c)
{
return getMax(getMax (a, b), c);
}
}
- 5、用户输入年、月、日,计算该日是该年的第几天?(注意2月份)
import java.util.Scanner;
public class Demo5
{
public static void main(String[] args)
{
int year;
int month;
int day;
Scanner sc = new Scanner(System.in);
System.out.println("请依次输入年、月、日(使用空格分隔):");
year = sc.nextInt();
month = sc.nextInt();
day = sc.nextInt();
if(year <= 0 || month <= 0 || day <= 0)
{
System.out.println("年月日必须均为正整数");
return;
}
if(month > 12)
{
System.out.println("月份必须是1-12之间的正整数");
return;
}
boolean leap = isLeap(year);
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day > 31)
{
System.out.println("该月份的天数最多是 31 天!");
return;
}
break;
case 2:
if(leap && (day > 29))
{
System.out.println("该月份的天数最多是 29 天!");
return;
}
else if(day > 28)
{
System.out.println("该月份的天数最多是 28 天!");
return;
}
break;
case 4:
case 6:
case 9:
case 11:
if(day > 30)
{
System.out.println("该月份的天数最多是 30 天!");
return;
}
break;
}
int[] arrDays = {31,28,31,30,31,30,31,31,30,31,30,31};;
if(leap)
{
arrDays[1] = 29;
}
int days = 0;
for(int i = 0; i < month-1; i++)
{
days += arrDays[i];
}
days += day;
System.out.print(year + " 年 " + month + " 月 " + day + " 日 ");
System.out.println("是 " + year + " 年的第 " + days + " 天!");
}
public static boolean isLeap(int year)
{
if(year % 400 == 0)
{
return true;
}
if(year % 4 == 0 && year % 100 != 0)
{
return true;
}
return false;
}
}
- 6、给定一个int数组:int[] nums = {3,5,9,2,22,12};写一个方法int[]reverse(int[] nums),对数组进行反向处理。也就是返回:{12,22,2,9,5,3} 这样一个int数组
import java.util.Arrays;
public class Demo6
{
public static void main(String[] args)
{
int[] nums = {3,5,9,2,22,12};
System.out.println("逆置前的数组是:" + Arrays.toString(nums));
System.out.println();
System.out.println("(方式一实现)逆置后的数组是:" + Arrays.toString(reverse1(nums)));
System.out.println("(方式二实现)逆置后的数组是:" + Arrays.toString(reverse2(nums)));
}
public static int[] reverse1(int[] nums)
{
int[] numsNew = new int[nums.length];
for(int i = 0; i < nums.length; i++)
{
numsNew[i] = nums[nums.length-1-i];
}
return numsNew;
}
public static int[] reverse2(int[] nums)
{
for(int i = 0; i < (nums.length/2); i++)
{
int temp;
temp = nums[i];
nums[i] = nums[nums.length-1-i];
nums[nums.length-1-i] = temp;
}
return nums;
}
}
- 7、问答: 下面代码的执行结果是什么?为什么?
int i=0
System.out.println(i++)
int j=0
System.out.println(++j)
int z=0
System.out.println(z=z+1)
// 输出:
0
1
1
// 明确:
1、后++,是先赋值,再自增(i=i+1)
2、前++,是先自增(i=i+1),再赋值
// 分析:
System.out.println(i++)
System.out.println(++j)
System.out.println(z=z+1)
// 相当于:
System.out.println(i)
i = i + 1
j = j + 1
System.out.println(j)
z = z + 1
System.out.println(z)