Java 基础编程练习题

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

package HomeWork01;
import java.util.Scanner;

public class HomeWork01 {
    static int number=4;        //输入4个数存放在数组中                   
    static int[] t1 = new int[number];           
    public static void main(String[] args) {
        HomeWork01 jiejie=new HomeWork01();
        jiejie.shunxun();
    }
    void shunxun(){
                System.out.println("请输入4个数:");
                Scanner in_t1 = new Scanner(System.in);//循环输入数组
                for(int i=0;i<number;i++){
                    t1[i]=in_t1.nextInt();}       
                for (int i = 0; i < t1.length; i++) {
                    int pos = i;
                    for (int j = i + 1; j < t1.length; j++) {
                        if (t1[pos] > t1[j])
                            pos = j;
                    }
                    if (pos != i) {
                        t1[i] = t1[i] + t1[pos];
                        t1[pos] = t1[i] - t1[pos];
                        t1[i] = t1[i] - t1[pos];
                    }
                }

                for (int i = t1.length - 1; i >= 0; i--)
                    System.out.print(t1[i] + "\t");
    }
}

点击并拖拽以移动

2、编写程序求一元二次方程的根。

package HomeWork02;
import java.util.Scanner;
public class HomeWork02
//△=b^2-4ac的值,若△小于0,一元二次方程无根.若△等于0,一元二次方程有两个相等的根.若△大于0,一元二次方程有两个不相等的实数根
    {
    public static void main(String [] args){
    Scanner sc = new Scanner(System.in);
    System.out.println("输入2次方的系数");
    int a = sc.nextInt();
    System.out.println("输入1次方的系数");
    int b = sc.nextInt();
    System.out.println("输入0次方的系数");
    int c = sc.nextInt();
    if((b*b - 4*a*c)<0){     //  判断方程是否有解
        System.out.println("方程无解!");
        return;
    }
    else{
        System.out.println("方程有解!");
    }
    double x1 = (-b + Math.sqrt(b*b - 4*a*c))/2*a;
    double x2 = (-b - Math.sqrt(b*b - 4*a*c))/2*a;
    System.out.println("根分别是 " + x1 + "\t" + x2);
    }
}

点击并拖拽以移动

3、编写程序,输入一个字符,判断它是否为小写字母,如果是,将它转换成大写字母,否则,不转换。

package HomeWork03;
import java.util.Scanner;
public class HomeWork03 {
    public static void main(String[] args) {
        //小写字母的ascll值为97-122
        //大写字母的ascll值为65-90
        System.out.println("请输入一个字母:\n");
        Scanner input = new Scanner(System.in);
        char zimu=input.next().charAt(0);
          if (zimu>=97&&zimu<=122){           //判断是否是小写字母
              System.err.println("该字母是小写字母");
              zimu=(char) (zimu-32);        //如果是小写字母则 将其转换成大写字母
              System.err.println("转换之后的大写字母是:"+zimu);
          }
          else{
             System.out.println("该字母不是小写字母!");          
          }
    }  
}

点击并拖拽以移动

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

package HomeWork04;
import java.util.Scanner;

public class HomeWork04 {
    public static void main(String [] args){
    int a;
    int b;
    int c;
    System.out.println("请输入三个正整数:");
    Scanner in=new Scanner(System.in);
    a=in.nextInt();
    b=in.nextInt();
    c=in.nextInt();

    if(a<=0||b<=0||c<=0)
    {
        System.out.println("输入的必须是正整数!");
    }
    if((a+b)>c&&(a+c)>b&&(b+c)>a)
    {
        System.out.println("能构成三角形!");
    }
    else{
        System.out.println("不能构成三角形!");
    }
    }
    }

点击并拖拽以移动

5、编写程序,对输入的年、月、日,给出该天是该年的第多少天?

package HomeWork05;
import java.util.Scanner;
public class HomeWork05 {
public static void main(String[]args){
    Scanner sc =new Scanner(System.in);
    System.out.print("年");
    int year=sc.nextInt();
    System.out.print("月");
    int month=sc.nextInt();
    System.out.print("日");
    int day=sc.nextInt();
    int days=0;
    switch(month){
        case 12:days+=30;
        case 11:days+=31;
        case 10:days+=30;
        case 9:days+=31;
        case 8:days+=31;
        case 7:days+=30;
        case 6:days+=31;
        case 5:days+=30;
        case 4:days+=31;
        case 3:
            if((year%4==0&&year%100!=0)||(year%400==0)){
                days+=29;
                }
            else{
                days+=28;
                }
        case 2:days+=31;
        case 1:days+=day;
    }
        System.out.print("第" + days + "天");
}
}

点击并拖拽以移动

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

package HomeWork06;
import java.util.Scanner;
public class HomeWork06 {
public static void main(String[]args){

    Scanner sc =new Scanner(System.in);
    System.out.print("请输入一个0~99999 之间的任意数");
    int number=sc.nextInt();
    if(number/10000>=1&&number/10000<10){
        System.out.println(number+"\t是5位数");
    }
    else if(number/1000>=1){
        System.out.println(number+"\t是4位数");
    }
    else if(number/100>=1){
        System.out.println(number+"\t是3位数");
    }
    else if(number/10>=1){
        System.out.println(number+"\t是2位数");
    }
    else if(number/1>=1){
        System.out.println(number+"\t是1位数");
    }
    }
}

点击并拖拽以移动

7、编写程序,给定一个学生成绩,给出相应等级:

90~100 优秀

80~89 良好

70~79 中等

60~69 及格

0~59 不及格

package HomeWork07;
import java.util.Scanner;
public class HomeWork07 {

    public static void main(String[] args) {
        HomeWork07 jiejie=new HomeWork07();
        jiejie.chengjie();

    }
    void chengjie(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入学生成绩:");
        int a = sc.nextInt();
        if(a>=90&&a<=100){
            System.out.println("该学生的成绩是"+a+"\t成绩优秀");
        }
        else if(a>=80&&a<90){
            System.out.println("该学生的成绩是"+a+"\t成绩良好");
        }
        else if(a>=70&&a<80){
            System.out.println("该学生的成绩是"+a+"\t成绩中等");
        }
        else if(a>=60&&a<70){
            System.out.println("该学生的成绩是"+a+"\t成绩及格");
        }
        else{
            System.out.println("该学生的成绩是"+a+"\t成绩不及格");
        }
    }

}

点击并拖拽以移动

8、编写程序,对输入的一个整数,按相反顺序输出该数。例如,输入为 3578,

输出为 8753。

package HomeWork08;
import java.util.Scanner;

public class HomeWork08 {

    public static void main(String[]args){
        Scanner sc =new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int read = sc.nextInt();
        //方法一     reverse()API
        System.out.println("方法一:");
        StringBuilder sb  =  new StringBuilder(String.valueOf(read));
        System.out.println(sb.reverse());
        //方法二   将字符串转换成字符数组,反序输出
        String str= read +"";
        char fuzu[]=str.toCharArray();
        String temp="";
        for(int a=fuzu.length-1;a>=0;a--){
            temp=temp+fuzu[a];
        }
        System.out.println("方法二:");
        System.out.println(temp);

}
}

点击并拖拽以移动

9、用 while 循环,计算 1~200 之间所有 3 的倍数之和

package HomeWork09;

public class HomeWork09 {

    public static void main(String[] args) {
        // 用while循环,计算1~200之间所有3的倍数之和。
        int a=1;
        int sum=0;
        while(a<=200){
            if(a%3==0){
                sum=sum+a;
            }
            a++;
        }
        System.out.println("1~200之间所有3的倍数之和为:"+sum);
    }
}

点击并拖拽以移动

10、编写程序,输出 200~500 之间的所有素数。

package HomeWork10;
public class HomeWork10 {
    public static void main(String[] args) {
        int num=200;
        while (num<=500) {
            boolean tag=true;       //素数标记
            for(int d=2;d<=num-1;d++){
                if(num % d==0){
                    tag=false;
                    break;
                }
            }
            if(tag){                //如果是素数
                System.out.println(num);
            }
            num++;
        }
    }
}

点击并拖拽以移动


一个好奇的人