Java练习02-编程基础_综合练习

知识点

编程基础综合练习


1,编写程序实现对给定的 4 个整数从大到小的顺序排列。

import java.util.Arrays;
import java.util.Scanner;

public class JavaDemo {
    public static void main(String[] args) {
        int[] arr=new int[4];
        for (int i=0;i<arr.length;i++){
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入第"+(i+1)+"个数:");
            int num = sc.nextInt();
            arr[i]=num;
        }
        //冒泡排序
        for (int i=0;i<arr.length-1;i++){
            for (int j=0;j<arr.length-1-i;j++){
                int temp = 0;
                if (arr[j]<arr[j+1]) {
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(arr));
    }
}

2, 输入 3 个正数,判断能否构成一个三角形。

import java.util.Scanner;

public class JavaDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入a的值:");
        int a = sc.nextInt();
        System.out.println("请输入b的值:");
        int b = sc.nextInt();
        System.out.println("请输入c的值:");
        int c = sc.nextInt();
        if (triangle(a,b,c)==true){
            System.out.println(a+"、"+b+"、"+c+"能组成三角形");
        }else {
            System.out.println(a+"、"+b+"、"+c+"不能组成三角形");
        }
    }

    public static boolean triangle(int a,int b,int c) {
        boolean compose = false;
        if (a*a==b*b+c*c | b*b==a*a+c*c | c*c==a*a+b*b){
            compose = true;
        }
        return compose;
    }
}

3,编写程序,从键盘输入一个 0~99999 之间的任意数,判断输入的数是几位数?

import java.util.Scanner;

public class JavaDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入0-99999之间的任意一个数:");
        int num = sc.nextInt();
        if (num/10000<10 && num/10000!=0){
            System.out.println("输入的数是5位数");
        }else if (num/1000<10 && num/1000!=0){
            System.out.println("输入的数是4位数");
        }else if (num/100<10 && num/100!=0){
            System.out.println("输入的数是3位数");
        }else if (num/10<10 && num/10!=0){
            System.out.println("输入的数是2位数");
        }else if (num/10==0){
            System.out.println("输入的数是1位数");
        }
    }
}

4,编写程序,给定一个学生成绩,给出相应等级:(要求:请用方法实现,传入成绩参数,返回等级打印)

​ 90~100 优秀

​ 80~89 良好

​ 70~79 中等

​ 60~69 及格

​ 0~59 不及格

import java.util.Scanner;

public class JavaDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入成绩:");
        int score = sc.nextInt();
        level(score);
    }

    public static void level(int score) {
        if (score>=90 & score<=100){
            System.out.println("优秀");
        }else if (score>=80 & score<=89){
            System.out.println("良好");
        }else if (score>=70 & score<=79){
            System.out.println("中等");
        }else if (score>=60 & score<=69){
            System.out.println("及格");
        }else if (score>=0 & score<=59){
            System.out.println("不及格");
        }
    }
}

5,验证“鬼谷猜想”:对任意自然数,若是奇数,就对它乘以 3 再加 1;若是

偶数,就对它除以 2,这样得到一个新数,再按上述计算规则进行计算,一直进

行下去,最终必然得到 1。(1–1000)

import java.util.Scanner;

public class JavaDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入任意自然数(1-1000):");
        int num = sc.nextInt();
        ghost(num);
    }
    public static void ghost(int num) {
        int count=0;
        do {
            if (num%2==0){
                num=num/2;
            }else {
                num=num*3+1;
            }
            count++;
        }while (num!=1);
        System.out.println(count);
    }
}

6,某公司每月标准上班时间是160小时,每小时工资是30元。

如果上班时间超出了160小时,超出部分每小时按1.5倍工资发放。请编写程序计算员工月工资。(请用方法实现)

import java.util.Scanner;

public class JavaDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入工时:");
        int time = sc.nextInt();
        money(time);
    }
    public static double money(int time) {
        double money=0;
        if (time<=160){
            money=time*30;
        }else {
            money=160*30+(time-160)*(30*1.5);
        }
        System.out.println("月工资为"+money+"元");
        return money;
    }
}

7,求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由用户控制。

import java.util.Scanner;

public class JavaDemo {
    public static void main(String[] args) {
        int s=0;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入a的值(1-9):");
        int a = sc.nextInt();
        System.out.println("请输入需循环的次数:");
        int count = sc.nextInt();
        for (int i=0;i<count;i++){
            s=s+s*10+a;
        }
        System.out.println("s="+s);
    }
}

8,题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? (利用方法)

public class JavaDemo {
    public static void main(String[] args) {
        int count=10;
        rebound(count);
    }

    public static void rebound(int count) {
        double high=100;
        double distance=0;
        double sumDistance=0;
        for (int i=0;i<count;i++){
            high=high/2;
            distance=distance+high*2;
        }
        //加上初始高度100米
        sumDistance=distance+100;
        System.out.println("球在第10次落地时,共经过"+sumDistance+"米");
        System.out.println("第10次反弹"+high+"米");
    }
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值