初級經典程式設計題

SunShineLove發表於2020-12-10

程式一:在陣列中找到元素的位置索引

解析:
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));
    }

注:部分題型是看書的時候的練習題,還有部分是上影片課程的聯絡題,影片是馬士兵教育·趙珊珊老師課程【不知道有沒有原創題型以此作解釋】

相關文章