Java 初级经典编程题

SunShineLove · 2020年12月10日 · 1828 次阅读

程序一:在数组中找到元素的位置索引

解析:
1.需要有数组
2.需要指定元素
3.分离一个查询的方法
代码:

public static void main(String[] args) {
       int[] arr = {23,45,155,67,90,34,89,-7847,546,111,9,4,6,5451,9087};

       //在屏幕上打印数值
       System.out.println("当前已有数值(如下):");
       int count = 0;
       for(int i=0;i<arr.length;i++){
           System.out.print(arr[i]+"\t");
           count++;
           if(count%6==0){
               System.out.println();
           }
       }
       System.out.println();

       //键盘录入要查询的数值
       System.out.print("请输入您要查询的数值:");
       Scanner sc = new Scanner(System.in);
       int num = sc.nextInt();

       //换行
       System.out.println();

       //调用查询方法fun
       int renum = fun(arr,num );

       //根据返回值判断输出
       if(renum!=-1){
           System.out.println("在数组中"+num+"索引的位置是:"+renum);
       }else {
           System.out.println("您输入的数值不存在!");
       }

   }

   //在数组中查询数值索引方法
   public static int fun(int[] arr,int num){
       int index = -1;
       for(int i=0;i<arr.length;i++){
           if(arr[i]==num){
               index = i;
           }
       }
       return index;
   }


程序二:打印如下 9*9 乘法表

1*1=1   
2*1=2   2*2=4   
3*1=3   3*2=6   3*3=9   
4*1=4   4*2=8   4*3=12  4*4=16  
5*1=5   5*2=10  5*3=15  5*4=20  5*5=25  
6*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=36  
7*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=49  
8*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=64
9*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81  
--------------------------------------------------------------------------------------------
1*9=9   2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  
1*8=8   2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
1*7=7   2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
1*6=6   2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
1*5=5   2*5=10  3*5=15  4*5=20  5*5=25  
1*4=4   2*4=8   3*4=12  4*4=16  
1*3=3   2*3=6   3*3=9   
1*2=2   2*2=4   
1*1=1

代码:

public static void main(String[] args) {
        for(int i=1;i<=9;i++){
            for(int j=1;j<=i;j++){
                System.out.print(i+"*"+j+"="+i*j+"\t");
            }
            System.out.println();
        }

        System.out.println("------------------------------------------------------------------------------------");

        for(int k=9;k>=1;k--){
            for(int p=1;p<=k;p++){
                System.out.print(p+"*"+k+"="+k*p+"\t");
            }
            System.out.println();
        }
    }

程序三:输出 1-100 中能够被 5 整数的数,每行输出 6 个

代码:

public static void main(String[] args) {
    int count = 0;
    for (int i = 1; i <= 100; i++) {
        if (i % 5 == 0) {
            System.out.print(i + "\t");
            count++;
            if (count % 6 == 0) {
                System.out.println();
            }
        }
    }
}

程序四:请输入 10 个整数,输出正数的个数,当输入的数是 666,退出程序

1.判断其中录入正数的个数并输出
2.判断系统的退出状态:是正常退出还是被迫退出
代码:

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int count = 0;
        boolean flag = true;
        for(int i=1;i<=10;i++){
            System.out.println("请输入第"+i+"个数");
            int num=scanner.nextInt();
            if(num>0){
                count++;
            }
            if(num==666){
                flag=false;
                break;
            }
        }
        if(flag==true){
            System.out.println("正常退出");
        }else {
            System.out.println("被迫退出");
        }
        System.out.println("正数的个数有:"+count+"个");
    }

程序五:根据下面的内容编写程序

1.大于 7 岁的小朋友,搬桌子
2.大于 5 岁,男生,小朋友,搬桌子
3.小于 5 岁,什么不干,回复:你们太小了

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入小朋友的年龄:");
        int age = scanner.nextInt();

        if(age>=7){
            System.out.println("可以搬桌子");
        }else if(age>=5){
            System.out.println("请输入小朋友性别");
            String str = scanner.next();
            char sex = str.charAt(0);

            if (sex == '男'){
                System.out.println("可以搬桌子");
            }else if(sex == '女'){
                System.out.println("你们太小了");
            }
        }else {
            System.out.println("你们太小了");
        }
    }

程序六:实现一个功能:随机给出三个数(1-6),对三个数求和,根据和的大小来分配奖品

1.Math.random() 随机数使用
代码:

public static void main(String[] args) {

        int num1 = (int)(Math.random()*6)+1;
        int num2 = (int)(Math.random()*6)+1;
        int num3 = (int)(Math.random()*6)+1;

        int sum =0;
        sum = num1+num2+num3;

        if(sum>=14){
            System.out.println("一等奖");
        }else if(sum>=10){
            System.out.println("二等奖");
        }else if(sum>=6){
            System.out.println("三等奖");
        }else {
            System.out.println("四等奖");
        }
    }

程序七:给定一个数组,在指定位置上添加一个指定的元素

代码:

public static void main(String[] args) {
        //给定一个数组是什么
        int[] arr = {23,45,75,89,12,748,666,233,8888,1214,2014};

        Scanner sc=new Scanner(System.in);
        //添加的元素是什么
        System.out.println("请输入您需要添加的元素");
        int sum = sc.nextInt();

        //索引的位置是什么
        System.out.println("请元素添加的位置");
        int index = sc.nextInt();

        inserNum(arr,index,sum);

    }

    //不知道数组是什么、不知道添加的元素是什么、不知道在哪个索引位置添加
    public static void inserNum(int[] arr,int index,int element){
        for(int i=arr.length-1;i>=index;i--){
            arr[i]=arr[i-1];
        }
        arr[index-1]=element;
        for(int i=0;i<=arr.length-1;i++){
            System.out.print(arr[i]+"\t");
        }
    }

程序八:输出指定年份指定月份的日历

代码:

public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);

       System.out.println("请输入年份:");
       int year = scanner.nextInt();

       System.out.println("请输入月份:");
       int month = scanner.nextInt();

       Calendar cal = Calendar.getInstance();
       cal.set(year,month-1 ,1 );

       //获取1日在第几天
       int week = cal.get(Calendar.DAY_OF_WEEK);
       int max = cal.getActualMaximum(Calendar.DATE);
       System.out.println(month+"月一共有"+max+"天");

       //打印日历
       System.out.println("日\t一\t二\t三\t四\t五\t六");
       //打印空格
       String empy = " ";
       for(int i = 1;i<week;i++){
           System.out.print(empy);
           System.out.print("\t");
       }
       //打印日历
       int tag = week;
       for(int j=1;j<=max;j++){
           System.out.print(j + "\t");
           if(tag%7==0){
               System.out.println();
           }
           tag++;
       }
   }

程序九:在数组中删除指定位置上的元素

代码:

public static void main(String[] args) {
    //删除指定位置上的元素
    int[] arr = {23,5,6,99,67,16,84,33};

    int index = 3;

    for(int i=index;i<arr.length-1;i++){
        arr[i]=arr[i+1];
    }
    arr[arr.length-1]=0;
    System.out.println(**Arrays.toString(arr)**);
}

程序十:删除数组中的元素 ‘’3‘’

  public static void main(String[] args) {
        int[] arr = {23,4,1,3,6,8,45,98,12,17};
        int num = 55;//这个可使用键盘录入
        int index=-1;

        //遍历数组,找到元素3的下标(这个可以提取一个方法)
        for(int i=0;i<arr.length;i++){
            if(arr[i]==num){
                index = i;
                break;
            }
        }
        if(index!=-1){
            for(int i=index;i<arr.length-1;i++){
                arr[i]=arr[i+1];
            }
            arr[arr.length-1]=0;
            System.out.println(Arrays.toString(arr));
        }else {
            System.out.println("在数组中找不到该元素");
        }
}

程序十一:可变参数使用方式

public static void main(String[] args) {
    method(1);
    method(3,7,90);
    method();
    method(new int[]{2,4,56,12});

}
public static void method(int...num){
    System.out.println("1");
}
public static void main(String[] args) {
    //method(1);
    method(3,7,90);
    //method();
    //method(new int[]{2,4,56,12});

}
public static void method(int num1,int...num){
    System.out.println("1");
}

程序十二:Arrays 类的使用

代码:

public static void main(String[] args) {
        //Arrays类使用
        int[] arr = {89,12,23,33,21,4,5,234,76,89};
        System.out.println(Arrays.toString(arr));//对数组的遍历,打印出来的样式好看

        Arrays.sort(arr);//对数组进行排序,升序
        System.out.println(Arrays.toString(arr));

        System.out.println(Arrays.binarySearch(arr, 234));//对有序数组遍历,找到指定元素的索引位置

        int[] newArr=Arrays.copyOf(arr,4 );//数组的复制
        System.out.println(Arrays.toString(newArr));

        int[] newArr1=Arrays.copyOfRange(arr, 1, 9);//数组的区间复制
        System.out.println(Arrays.toString(newArr1));

        int[] arr2={89,12,23,33,21};
        int[] arr3={89,12,23,33,21};
        System.out.println(Arrays.equals(arr2,arr3));//数组之间的比较,true,false

        int[] arr4=new int[5];
        Arrays.fill(arr4,10 );//数组的填充
        System.out.println(Arrays.toString(arr4));
    }

注:部分题型是看书的时候的练习题,还有部分是上视频课程的联系题,视频是马士兵教育·赵珊珊老师课程【不知道有没有原创题型以此作解释】

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册