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 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);