JavaSE核心技术——流程控制语言练习题

1、企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,在程序中设定一个变量为当月利润,求应发放奖金总数?(知识点:条件语句) [必做题]

        System.out.println("请输入当月利润……(以万元为单位)");
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        double M = 0;
        if(num <= 10){
            M = num * 0.1;
        }if(num <= 20){
            M = 10*0.1+(num-10)*0.075;
        }if(num <= 40){
            M = 10*0.1+20*0.075+(num-40)*0.05;
        }if(num <= 60){
            M = 10*0.1+20*0.075+20*0.05+(num-60)*0.03;
        }if(num <= 100){
            M = 10*0.1+20*0.075+20*0.05+40*0.015+(num-100)*0.015;
        }else{
            M = 10*0.1+20*0.075+20*0.05+40*0.015+60*0.015+(num-100)*0.01;
        }
        System.out.println("应发放奖"+M);

这里写图片描述
• 2、给定一个成绩a,使用switch结构求出a的等级。A:90-100,B:80-89,C:70-79,D:60-69,E:0~59(知识点:条件语句switch)[必做题]

        System.out.println("请输入成绩");
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();

        int a = num/10;
        switch(a){
            case 6 : System.out.println("等级位D");
            break;
            case 7 : System.out.println("等级位C");
            break;
            case 8 : System.out.println("等级位B");
            break;
            case 9 : System.out.println("等级位A");
            break;
            case 10 : System.out.println("等级位A");
            break;
            default:System.out.println("等级位E");
        }

这里写图片描述
• 3、假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。(知识点:循环语句for)[选做题]

        double m = 30000;
        double sum = 0;
        for(int i =1;i<=10;i++){
            sum = sum + m;
            m = m + m*0.06; 
        }
        System.out.println(sum);

这里写图片描述
• 4、猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。(知识点:循环语句 while)[选做题]

        int num = 1;
        int d=1;
        while (d < 10){
            num = (num+1)*2; 
            d++;
        }
        System.out.println("猴子第一天一共摘桃"+num+"个");

这里写图片描述
• 5、输入一个数字,判断是一个奇数还是偶数(知识点:条件语句) [必做题]

        for(;;){
        System.out.println("请输入一个整数");
        Scanner i = new Scanner(System.in);
        int num = i.nextInt();

        int x = num%2;
        if(x == 1){
            System.out.println(num+"是一个奇数");
        }else{
            System.out.println(num+"是一个偶数");
        }
    }

这里写图片描述
• 6、编写程序, 判断一个变量x的值,如果是1,输出x=1,如果是5,输出x=5,如果是 10,输出x=10,除了以上几个值,都输出x=none。(知识点:条件语句) [必做题]

for(;;){
            System.out.println("请输入一个整数");
            Scanner i = new Scanner(System.in);
            int num = i.nextInt();

            switch(num){
            case 1:System.out.println("x=1");break;
            case 5:System.out.println("x=5");break;
            case 10:System.out.println("x=10");break;
            default:System.out.println("x=none");break;
            }
        }

这里写图片描述
• 7、判断一个数字是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能
被5或6整除,(打印不能被5或6整除)(知识点:条件语句) [必做题]

                for(;;){
                System.out.println("请输入一个整数");
                Scanner i = new Scanner(System.in);
                int num = i.nextInt();
                int a = num%5;
                int b = num%6;

                if(a == 0&&b==0){
                    System.out.println(num+"能被5和6整除");
                }else{
                    System.out.println(num+"不能被5和6整除");
                }
            }

这里写图片描述
• 8、输入一个年份,判断这个年份是否是闰年(知识点:条件、循环语句) [必做题]

        for(;;){
            System.out.println("请输入一个年份");
            Scanner i = new Scanner(System.in);
            int year = i.nextInt();
            if(year%100==0){
                if(year%400 == 0){
                    System.out.println(year+"是瑞年");
                }else{
                    System.out.println(year+"不是瑞年");
                }
            }else{
                if(year%4==0&&year!=0){
                    System.out.println(year+"是瑞年");
                }else{
                    System.out.println(year+"不是瑞年");
                }
            }

        }

这里写图片描述
• 9、输入一个0~100的分数,如果不是0~100之间,打印分数无效,根据分数等级打印A,B,C,D,E(知识点:条件语句if elseif) [必做题]

        for(;;){
        System.out.println("请输入一个整数");
        Scanner in = new Scanner(System.in);
        int score = in.nextInt();

        if(score<0||score>100){
            System.out.println("打印分数无效");
        }else if(score<60){
            System.out.println("分数等级位E");
        }else if(score<70){
            System.out.println("分数等级位D");
        }else if(score<80){
            System.out.println("分数等级位C");
        }else if(score<90){
            System.out.println("分数等级位B");
        }else if(score<=100){
            System.out.println("分数等级位A");
        }
    }

这里写图片描述
• 10、输入三个整数x,y,z,请把这三个数由小到大输出(知识点:条件语句) [必做题]

        for(;;){
            System.out.println("请输入三个整数");
            Scanner i = new Scanner(System.in);
            int a = i.nextInt();
            int b = i.nextInt();
            int c = i.nextInt();

            if(a < b){
                int t = a;
                a = b;
                b = t;
            }
            if(a < c){
                int t = a;
                a = c;
                c = t;
            }
            if(b < c){
                int t = b;
                b = c;
                c = t;
            }
            System.out.println(c+" "+b+" "+a);
            }

这里写图片描述
• 11、有一个不多于5位的正整数,求它是几位数,分别打印出每一位数字。(知识点:条件语句)

        for(;;){
            System.out.println("请输入不多于5位的正整数");
            Scanner in = new Scanner(System.in);
            int num = in.nextInt();
            int i ;
            int n ;
            int a ;
            int n1,n2,n3,n4,n5;
            if(num>99999||num<0){
                System.out.println("你输入的数不合规范,请重新输入……");
            }else {
                if(num/1<10){

                    System.out.println("这是一个一位数,数字从高位到低位分别为");
                }if(num/10<10&&num/10>=1){

                    System.out.println("这是一个两位数,数字从高位到低位分别为");
                }if(num/100<10&&num/100>=1){

                    System.out.println("这是一个三位数,数字从高位到低位分别为");
                }if(num/1000<10&&num/1000>=1){

                    System.out.println("这是一个四位数,数字从高位到低位分别为");
                }if(num/10000<10&&num/10000>=1){ 

                    System.out.println("这是一个五位数,数字从高位到低位分别为");
                }
                n1 = num/10000;
                n2 = num/1000%10;
                n3 = num/100%10;
                n4 = num/10%10;
                n5 = num%10;
                System.out.println(" "+n1+" "+n2+" "+n3+" "+n4+" "+n5);
            }
        }

这里写图片描述
• 12、编写一个程序,计算邮局汇款的汇费。如果汇款金额小于100元,汇费为一元,如果金额在100元与5000元之间,按1%收取汇费,如果金额大于5000元,汇费为50元。汇款金额由命令行输入。(知识点:条件语句) [选做题]

        for(;;){
        System.out.println("请输入汇款金额");
        Scanner i = new Scanner(System.in);

        int m = i.nextInt();
        double mm = 0;
        if(m<100){
            mm = 1;
        }if(m<5000){
            mm = m*0.01;
        }else{
            mm=50;
        }
        System.out.println("汇费为:"+mm);
    }

这里写图片描述
• 13、分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。(知识点:循环语句) [选做题]

//for 循环
        int sum = 0;
        for(int i = 1;i<=100;i++){
            if(i%3 ==0){
                sum += i;//与sum = sum + i;相同
            }
        }
        System.out.println("1到100之间能被3整除的数的和为"+sum);
//while循环
        int i = 1;
        int sum = 0;
        while(i<=100){
            if(i%3==0){
                sum += i;//与sum = sum + i;相同
            }
            i++;
        }
        System.out.println("1到100之间能被3整除的数的和为"+sum);
        int i = 1;
        int sum = 0;

        do{

            if(i%3==0){
                sum += i;//与sum = sum + i;相同
            }
            i++;
        }while(i<=100);
        System.out.println("1到100之间能被3整除的数的和为"+sum);

这里写图片描述
• 14、输出0-9之间的数,但是不包括5。 [选做题]

        for(int i =0;i<10;i++){
            if(i==5){
                continue;
            }
            System.out.print(i+" ");
        }

这里写图片描述
• 15、编写一个程序,求整数n的阶乘,例如5的阶乘是1*2*3*4*5 [选做题]

        for(;;){
        System.out.println("请输入求阶乘的整数");
        Scanner in = new Scanner(System.in);

        int num = in.nextInt();
        int sum =1;
        for(int i =1;i<=num;i++){
            sum = sum *i;
        }
        System.out.println(sum);
    }

这里写图片描述
• 16、编写一个程序,找出大于200的最小的质数[选做题]

        int num;
        int i;

        for(num = 200;;num++){
            boolean b = true;
            for(i=2;i<num/2;i++){
                if(num%i==0){
                    b = false;
                    }
                }
            if(b){
                break;
                }
            }
        System.out.println(num);

这里写图片描述
• 17、由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321 [选做题]

        for(;;){
            System.out.println("请输入一个四位数");
            Scanner in = new Scanner(System.in);
            int num = in.nextInt();
            int n1,n2,n3,n4;
            n1= num/1000;
            n2 = num%1000/100;
            n3 = num%1000%100/10;
            n4 = num%1000%100%10;
            int sum = n4*1000+n3*100+n2*10+n1;
            System.out.println(num+"反转后的数为:"+sum);
        }

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_37067955/article/details/81674173