Java流程控制10道题_上机

Java流程控制10道题

  1. 计算出1-100之间所有不能被3整除的整数的和大于(或等于)2000的数字。

    package day01;
    
    public class Lab01 {
        public static void main(String[] args) {
            //计算出1-100之间所有不能被3整除的整数的和大于(或等于)2000的数字。
            int sum = 0;
            for (int i = 0; i <= 100; i++){
                if (i % 3 != 0) {
                    sum += i;   //sum = sum + i;
                    if(sum >= 2000){
                        System.out.println("该数字是:"+i);
                        System.out.println("和:"+sum);
                        break;
                    }
                }
            }
        }
    }
    
  2. 编写一个程序,最多接受10个数字,并求出其中所有正数的和。用户可通过输入999终止程序,统计用户输入的正数个数,并显示这些正数的和。

    package day01;
    
    import java.util.Scanner;
    
    public class Lab02 {
        public static void main(String[] args) {
            //编写一个程序,最多接受10个数字,并求出其中所有正数的和。
            // 用户可通过输入999终止程序,统计用户输入的正数个数,并显示这些正数的和。
            /*
            * 1、接受用户录入数字
            * 2、循环进行统计用户输入的正数个数
            * 3、统计正数的和
            * 4、当用户输入999停止
            * */
            Scanner input =new Scanner(System.in);  //接收用户录入
            int count = 0;  //个数统计
            int sum = 0;    //和
            for (int i = 1; i <= 10; i++){
                System.out.println("请输入正整数(最多10个,输入999退出程序):");
                int num = input.nextInt();
                if (num == 999){
                    System.out.println("程序中止");
                    break;
    //                System.exit(0); //退出JVM
                }
                if (num > 0){
                    sum += num;
                    count++;
                }
            }
            System.out.println("和:"+sum);
            System.out.println("正数个数:"+count);
    		input.close();
        }
    }
    
  3. 编写JAVA程序,实现接收用户输入的行数,使用“@“打印输出平行四边形, 要求:

    1、针对接收行数进行有效性判断,如果小于零,提示无效行数,结束操作

    2、每行输出10个“@“,效果如下:

    image-20231008170226653

    package day01;
    
    import java.util.Scanner;
    
    public class Lab03 {
        public static void main(String[] args) {
            /*编写JAVA程序,实现接收用户输入的行数,使用“@“打印输出平行四边形, 要求:
                1、针对接收行数进行有效性判断,如果小于零,提示无效行数,结束操作
                2、每行输出10个“@“,效果如下:
            */
            System.out.print("请输入需要打印的平行四边形行数:");
            Scanner scanner = new Scanner(System.in);
            int hang = scanner.nextInt();
            if (hang < 0 ){
                System.out.println("无效行数!");
                return;
            }
            for (int j = 0; j < hang; j++) {
                for (int a = 0; a < hang - j; a++){
                    System.out.print(" ");
                }
                for (int i = 0; i < 10; i++){
                    System.out.print("@");
                }
                System.out.println();   //换行
                scanner.close();
            }
        }
    }
    
    
  4. 编写JAVA程序,实现接收用户输入,直到输入500为止,统计输入的数字个数及其中奇数之和,要求:统计的数据中不包括最后输入的结束数字500。

    package day01;
    
    import java.util.Scanner;
    
    public class Lab04 {
        public static void main(String[] args) {
            //编写JAVA程序,实现接收用户输入,直到输入500为止,统计输入的数字个数及其中奇数之和,要求:统计的数据中不包括最后输入的结束数字500。
            Scanner scanner =new Scanner(System.in);  //接收用户录入
            int cout = 0;   //数字个数
            int sum = 0;    //奇数和
            while (true){
                System.out.println("请输入数字(直到输入500为止):");
                int input = scanner.nextInt();
                if (input == 500){
                    break;
                }
                cout++;
                sum += input % 2 == 1 ? input : 0;
            }
            System.out.println("数字个数:" + cout);
            System.out.println("奇数和:" + sum);
            scanner.close();
        }
    }
    /*
     * 这是一个简单的Java程序,用于接收用户输入数字,直到输入500为止。
     * 在统计数据时,最后输入的数字500不会被计入。
     * 程序首先创建一个Scanner对象,用于接收用户输入。
     * 然后,定义两个变量count和sum,分别用于统计输入的数字个数和奇数之和。
     *程序使用一个while循环,循环条件为输入的数字不等于500。
     * 在循环中,首先提示用户输入数字,然后使用scanner.nextInt()方法获取输入的数字。
     * 如果输入的数字等于500,则跳出循环。
     * 否则,将count加1,并将输入的数字模2的结果与1进行比较,如果结果为1,说明输入的数字是奇数,将其加到sum中。
     * 最后,输出统计的数据。
     */
    
    
  5. 编写JAVA程序,实现接收班级10名学员JAVA成绩,根据平均分输出该班学员等级。

    规定:平均分在

    1、100—90之间等级为“A”

    2、80—89 等级为“B”

    3、70---79 等级为“C”

    4、60—69等级为“D”

    5、60以下为“E”

    要求:需要判断成绩有效范围1--100,如果超出范围,提示“成绩无效”,结束程序,效果图如下:

    image-20231008170646419

    package day01;
    
    import java.util.Scanner;
    
    public class Lab05 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int sum = 0;    //分数总和
            int cout = 0;   //人数
            int[] scores =  new int[10];
            for (int i = 0; i <10; i++){
                System.out.println("请输入第" + ( i + 1) + "名学员JAVA成绩:");
                int input = scanner.nextInt();
                if (input < 1 ||  input > 100){
                    System.out.println("成绩无效!");
                    return;
                }
                scores[i] += input;
                sum += input;
                cout++;
            }
            double average = sum / cout;
            if (average >= 90){
                System.out.println("班级平均分为"+average+"班级学员等级为A");
            } else if (average >= 80) {
                System.out.println("班级平均分为"+average+"班级学员等级为B");
            }else if (average >= 70) {
                System.out.println("班级平均分为"+average+"班级学员等级为C");
            }else if (average >= 60) {
                System.out.println("班级平均分为"+average+"班级学员等级为D");
            }else {
                System.out.println("班级平均分为"+average+"班级学员等级为E");
            }
            scanner.close();
        }
    }
    
    
  6. 输入一个五位正整数,使用数组判断它是不是回文数(如12321是回文数)。

    package day01;
    
    import java.util.Scanner;
    
    public class Lab06 {
        public static void main(String[] args) {
            //输入一个五位正整数,使用数组判断它是不是回文数(如12321是回文数)。
            Scanner scanner = new Scanner(System.in);
            System.out.print("请输入一个五位正整数:");
            int num = scanner.nextInt();
    
            int[] arr = new int[5];
            for (int i = 0; i < 5; i++) {
                arr[i] = num % 10;
                num /= 10;
            }
    
            boolean isPalindrome = true;
            for (int i = 0; i < 5; i++) {
                if (arr[i] != arr[4 - i]) {
                    isPalindrome = false;
                    break;
                }
            }
    
            if (isPalindrome) {
                System.out.println("是回文数");
            } else {
                System.out.println("不是回文数");
            }
            scanner.close();
        }
    }
    /*
    这是一个简单的Java程序,用于输入一个五位正整数,并判断它是否是回文数。程序首先创建一个Scanner对象,用于接收用户输入。然后,创建一个长度为5的整数数组arr,用于存储输入的整数的每一位。
    
    程序使用一个for循环,循环次数为5。在循环中,将输入的整数对10取余,得到该位上的数字,并将其添加到arr数组中。然后,将整数除以10,以便进入下一位。
    
    接下来,使用一个布尔变量isPalindrome来判断输入的整数是否是回文数。使用另一个for循环,循环次数为5。在循环中,比较arr数组中对应位上的数字是否相等。如果不相等,将isPalindrome设置为false,并跳出循环。
    
    最后,根据isPalindrome的值输出结果。如果是回文数,则输出“是回文数”,否则输出“不是回文数”。
    */
    
  7. 从键盘输入一个整数,然后判断数组中是否含有该数,如果存在,输出”猜对了”,否则输出”sorry”。

    package day01;
    
    import java.util.Scanner;
    
    public class Lab07 {
        public static void main(String[] args) {
            //从键盘输入一个整数,然后判断数组中是否含有该数,如果存在,输出”猜对了”,否则输出”sorry”。
            Scanner input = new Scanner(System.in);
            int[] nums = new int[]{1,2,3,4,5,6,7,8,9};
            System.out.print("请输入一个整数:");
            int num = input.nextInt();
            boolean guess = false;
            for (int i = 0; i < nums.length; i++){
                if (nums[i] == num){
                    System.out.println("猜对了");
                    guess = true;
                    break;
                }
            }
            if (guess == false){
                System.out.println("sorry");
            }
            input.close();
        }
    }
    
    
  8. .某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的。加密规则是每位数字都加上5,然后再用除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。编写一个程序,用于接收一个四位的整数,并且打印输出加密后的数。

    package day01;
    
    import java.util.Scanner;
    
    public class Lab08 {
        public static void main(String[] args) {
         
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入一个四位的整数:");
            int num = scanner.nextInt();
    
            int encryptedNum = encrypt(num);
            System.out.println("加密后的数:" + encryptedNum);
            scanner.close();
        }
        private static int encrypt(int num) {
             /*
             (第四位、第三位、第二位、第一位)
             */
            int temp1 = (num / 1000 + 5) % 10;
            int temp2 = (num / 100 % 10 + 5 ) % 10;
            int temp3 = (num / 10 % 10 + 5) % 10;
            int temp4 = (num % 10 + 5) % 10;
    
            int encryptedNum = temp4 * 1000 + temp3 * 100 + temp2 * 10 + temp1;
            return encryptedNum;
        }
    }
    
    
  9. 编写JAVA程序,实现接收用户输入的8个整数,输出最大值,最小值和平均值,要求:通过循环方式,查询数组中最大值和最小值。效果图如下:

    image-20231008170524477

    package day01;
    
    import java.util.Scanner;
    
    public class Lab09 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int[] arr = new int[8];
            int sum = 0;
            for (int i = 0; i < 8; i++){
                System.out.print("请输入第" + (i + 1) + "个整数:");
                    arr[i] = scanner.nextInt();
                    sum += arr[i];
            }
            int max = arr[0];
            int min = arr[0];
            for (int i = 1; i < 8; i++){
                if (arr[i] > max){
                    max = arr[i];
                }
                if (arr[i] < min){
                    min = arr[i];
                }
            }
            double average = (double) sum / arr.length;
            System.out.println("**********");
            System.out.println("接受数据中最大值为:" + max);
            System.out.println("接受数据中最小值为:" + min);
            System.out.println("接受数据中平均值为:" + average);
            scanner.close();
        }
    }
    
    
  10. 编写JAVA程序,实现使用数组保存用户输入的5个数字,输出数组中下标为奇数的数组成员,并统计输入数据中偶数的个数。如图:

    image-20231008170541168

    package day01;
    
    import java.util.Scanner;
    
    public class Lab10 {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int[] arr = new int[5];
    
            for (int i = 0; i < 5; i++){
                System.out.print("请输入第" + (i + 1) + "个整数:");
                arr[i] = scanner.nextInt();
            }
            System.out.println("***********");
            System.out.println("数组中下标为奇数的数组成员:");
            for (int i = 1; i < 5; i += 2) {
                System.out.println("arr[" + i + "] = "+ arr[i] + " ");
            }
            int count = 0;
            for (int i = 0; i < 5; i++) {
                if (arr[i] % 2 == 0) {
                    count++;
                }
            }
            System.out.println("\n输入数据中偶数的个数:" + count);
            scanner.close();
        }
    }
    
    
posted @ 2023-10-08 20:16  杭冷卉  阅读(46)  评论(0)    收藏  举报