Java基础需要学习的30个小例子、练习题

提示:原码编辑于txt文本模式 运行使用doc命令行
本文内容转载于<渡一教育> 教学内容
整理、编辑于博主

习题如下:

1.利用if语句实现判断成绩分数对应的区间(1)60以下不及格(2)60-70及格
(3)中等(4)良好(5)优秀(6)满分

import java.util.Scanner;
 public class score{
     public static void main(String[] args){
         Scanner input = new Scanner(System.in);
         System.out.println("请输入你的成绩:");
         int score = input.nextInt();
         if(score >= 0 && score < 60){
             System.out.println("你的成绩不及格!!!");
         }else if(score >= 60 && score < 70){
             System.out.println("你的成绩及格!!!");
         }else if(score >= 60 && score < 70){
             System.out.println("你的成绩中等!!!");
         }else if(score >= 60 && score < 70){
             System.out.println("你的成绩良好!!!");
         }else if(score >= 60 && score < 70){
             System.out.println("你的成绩优秀!!!");
         }else if(score == 100){
             System.out.println("你的成绩是满分!!!");
         }else{
             System.out.println("你的成绩输入有误!!!");
         }
     }
 } 
 
2.利用if实现一个随机摇骰子的小游戏,如猜大小。
//获取一个随机数Math.random();-->玩家输入一个1-6的
//Scanner input = new Scanner(System.in);  int nume = input.nextInt();

 import java.util.Scanner;//导包
 public class duyi{
     public static void main(String[] args){
         double value = Math.random();//获取一个[0.0~1.0)的随机数
         int number = (int)(value*6+1);//将随机数强制转化成int类型的[1~6]
         Scanner input = new Scanner(System.in);
         System.out.println("猜大猜小,买定离手~~~");
         String choose = input.nextLine();//读取输入的文字
         System.out.println("本次摇出的点数为:"+number);
         if((number<=3 && choose.equals("小")) || (number>3 && choose.equals("大"))){
             System.out.println("恭喜你,猜对了!!!");
         }else{
             System.out.println("猜错了!!!");
         }
     }
 }

3.利用switch语句实现一个判断对应学生成绩的区间
//不及格   60~70及格  70~80 中等  80~90 良好  90~100优秀  100满分
 import java.util.Scanner;
 public class duyi{
     public static void main(String[] args){
         Scanner input = new Scanner(System.in);
         System.out.println("请输入你的成绩:");
         int score = input.nextInt();
         switch(score/10){
             case 0:
             case 1:
             case 2:
             case 3:
             case 4:
             case 5:
                 System.out.println("成绩不及格!!!");
                 break;
             case 6:
                 System.out.println("成绩及格!!!");
                 break;
             case 7:
                 System.out.println("成绩中等吧!!!");
                 break;
             case 8:
                 System.out.println("成绩良好吧!!!");
                 break;
             case 9:
                 System.out.println("成绩优秀啊!!!");
                 break;
             case 10:
                 if(score == 100){
                     System.out.println("成绩满分啦!!!");
                     break;
                 }
                 
             default:
                 System.out.println("输入有误!!!");
                 break;
         }
     }
 }

4、为小明制定一个学习计划(switch实现)
//1、3、5学习语文     2、4、6学习数学   7休息
 import java.util.Scanner;
 public class duyi{
     public static void main(String[] args){
         Scanner input = new Scanner(System.in);
         System.out.println("今天是星期几:(请输入阿拉伯数字)");
         int week = input.nextInt();
         switch(week){
             case 1:
             case 3:
             case 5:
                 System.out.println("今天学习语文!!!");
                 break;
             case 2:
             case 4:
             case 6:
                 System.out.println("今天学习数学!!!");
                 break;
             case 7:
                 System.out.println("今天就好好休息吧!!!");
                 break;
             default:
                 System.out.println("输入有误!!!");
                 break;
         }
     }
 }

5、操场上有一百多人排队,(1)三个人一组,多一个(2)四个人一组,多两个
(3)五个人一组,多两个(for循环)

 public class duyi{
 public static void main(String[] args){
     for(int x = 100; x <  200; x++){
         if(x%3 == 1 && x%4 == 2 && x%5 == 2){
             System.out.println("操场上一共有:"+x+"人");
             }
         }
     }    
 }

6、甲乙丙丁四人加工零件加工的零件总数为370个
 //如果甲加工的零件数多10
 //如果乙加工的零件数少20
 //如果丙加工的零件书乘以2
 //如果丁加工的零件数除以2
 //则四个人加工的零件数就相等了
 //求四个人加工的零件个数分别是多少?
 public class duyi{
     public static void main(String[] args){
         for(int x = 1;x < 370;x++){             //可以思考可优化的项
             if((x - 10)+(x+20)+(x/2)+(x*2)==370){
                 System.out.println("甲加工的零件个数为:"+(x-10)+"个");
                 System.out.println("乙加工的零件个数为:"+(x+20)+"个");
                 System.out.println("丙加工的零件个数为:"+(x/2)+"个");
                 System.out.println("丁加工的零件个数为:"+(x*2)+"个");
             }
         }
     }
 }

7、鸡兔同笼问题
 //鸡兔关在同一个笼子里    小鸡(两只脚) 小兔子(四只脚)
 //小鸡+小兔子 总共50只  脚的总数是160只 
 //求鸡和兔子的个数分别是多少?
 //设有x只鸡
 //2x+4(50-x)=160
 public class duyi{
     public static void main(String[] args){
         for(int x =1;x < 50;x++){
             if(2*x+(50 - x)*4 ==160){
                 System.out.println("小鸡的个数是:"+x);
                 System.out.println("小兔子的个数为:"+(50-x));
             }
         }
     }
 }

8、通过循环找三位数字的水仙花数
 //如1   5    3      1+125+27=153public class duyi{
     public static void main(String[] args){
         for(int num=100;num<999;num++){
             int a = num/100;
             int b = num/10%10;
             int c = num%10;
         if(a*a*a + b*b*b + c*c*c == num){
             System.out.println(num+"是水仙花数");
             }
         }
     }
 }
//优化1
 public class duyi{
     public static void main(String[] args){
         //double vale = Math.pow(double a , double b);计算a的b次方
         for(int num=100;num<999;num++){
             int a = num/100;
             int b = num/10%10;
             int c = num%10;
         if(Math.pow(a,3) + Math.pow(b,3) + Math.pow(c,3) == num){
             System.out.println(num+"是水仙花数");
             }
         }
     }
 }
//优化2
 public class duyi{
     public static void main(String[] args){
         //double vale = Math.pow(double a , double b);计算a的b次方
         for(int num=100;num<999;num++){
         if(Math.pow(num/100,3) + Math.pow(num/10%10,3) + Math.pow(num%10,3) == num){
             System.out.println(num+"是水仙花数");
             }
         }
     }
 }

9、//控制台输出以下情况的4行*号
 //*
 //**
 //***
 //****public class duyi{
     public static void main(String[] args){
             for(int i = 1;i<=4;i++){
                 for(int j = 1;j<=i;j++){
                     System.out.print("*");
                 }
             System.out.println();
             }
         }
     }

10、控制台输出一下输入的小x行*号,如下
 //*
 //**
 //***
 //****//...............
 import java.util.Scanner;
 public class duyi{
     public static void main(String[] args){
         Scanner input = new Scanner(System.in);
         System.out.println("请输入行数:");
         int count = input.nextInt();
             for(int i = 1;i<=count;i++){
                 for(int j = 1;j<=i;j++){
                     System.out.print("*");
             }
             System.out.println();
         }
     }
 }

11、控制台输出4行如图   	
 //					 $$$*    i==1    3  1
 //                                      $$**    i==2    2  2
 //                                      $***    i==3    1  3
 //                                      ****    i==4    0  4
 public class duyi{
     public static void main(String[] args){
         for(int i = 1;i <= 4;i++){
             for(int j =1;j<=4-i;j++){
                 System.out.print("$");
             }
             for(int j =1;j<=i;j++){
                 System.out.print("*");
             }
         System.out.println();
         }
     }
 }

12、//控制台输出如下形状                             
 //        *******         
 //        ***#***       
 //        **###**     
 //        *#####*     
 public class duyi{
     public static void main(String[] args){
         for(int i = 1;i <= 4;i++){
             if(i==1){
             System.out.print("*******");
             }else{
                 for(int j = 1;j<=5-i;j++){
                     System.out.print("*");
             }
                 for(int j = 1;j<=2*i-3;j++){
                     System.out.print("#");
                 }
                 for(int j = 1;j<=5-i;j++){
                     System.out.print("*");
                 }
             }
         System.out.println();
         }
     }
 }

13、//控制台输出一下样式
 //             1             
 //           121            
 //         12321          
 //       1234321         
 public class duyi{
     public static void main(String[] args){
         for(int i = 1;i<=4;i++){
             for(int j = 1;j<=4-i;j++){           //空格
                 System.out.print(" ");
             }
             for(int j =1;j<=i;j++){
                 System.out.print(j);
             }
             for(int j=i-1;j>=1;j--){
                 System.out.print(j);
             }
             System.out.println();
         }
     }
 }

14、for循环输出九九乘法表
 public class duyi{
     public static void main(String[] args){
         for(int i = 1; i<=9;i++){
             for(int j = 1;j <=i;j++){
                 System.out.print(j+"*"+i+"="+(j*i)+"\t");
             }
             System.out.println();
         }
     }
 }

15、输出2—100之间的素数
 public class duyi{
     public static void main(String[] args){
         for(int num = 2;num<=100;num++){
             boolean b = false;
             for(int i =2;i<=num/2;i++){
                 if(num%i==0){
                     b = true;
                     break;
                 }
             }
             if(!b){
                 System.out.println(num +"是素数");
             }
         }
     }
 }

16、请解下面一个应用题
//有一个水池   已经盛满了120立方米的水
 //       有一个进水管   每小时进水18立方米
 //       有一个排水管   每小时排水30立方米
 //       经过多少小时 水池的水排放干净?
 public class duyi{
     public static void main(String[] args){
         int sum = 120;
         int hour = 0;
         while(sum>0){
             sum+=18;
             sum-=30;
             hour++;
         }
         System.out.println("需要"+hour+"小时");    
     }
 }

17、控制台输出下面的形状
//                    *       i==1    3    1
 //                  ***      i==2    2    3
 //                 *****     i==3    1    5
 //                *******    i==4    0    7
 public class duyi{
     public static void main(String[] args){
         int i = 1;
         while(i<=4){
             //画空格占位
             int j = 1;
             while(j<=4-i){
                 System.out.print(" ");
                 j++;
             }
             //画星星
             int k = 1;
             while(k<=2*i-1){
                 System.out.!print("*");
                 k++;
             }
             //换行
             System.out.println();
             i++;
         }
     }
 }
 
18、请解下面一个应用题
//小茗同学从A点以7km/h的速度向B点出发
 //       哥哥从B点以18km/h的速度向A点出发
 //       A和B之间的距离是1000km
 //       求解 小茗同学和哥哥 经过多少个小时才能相遇?
 public class duyi{
     public static void main(String[] args){
         int num = 0;
         int hour = 0;
         while(num<1000){
             num+=7;
             num+=18;
             hour++;
         }
         System.out.println("小茗同学和哥哥经过"+hour+"个小时才能相遇");
     }
 }

19、请解下面一个应用题
//       有一个瓜农卖西瓜  一车西瓜总共1020个
 //       每天卖掉总数的一半 多两个
 //       求解瓜农几天才能把所有的西瓜都卖完?
 public class duyi{
     public static void main(String[] args){
         int sum=1020;
         int hour=0;
         while(sum>0){
             sum/=2;
             sum-=2;
             hour++;
         }
         System.out.println("瓜农"+hour+"天能把所有的西瓜都卖完");
     }
 }

=====================================================
关于数组 #很重要 很重要 很重要 重要的事情说3遍!!

 20、创建一个数组   用来存储1-100之间的偶数,并输出
 public class duyi{
     public static void main(String[] args){
         int[] array = new int[50];//创建一个数组
         for(int i=0;i<array.length;i++){//将偶数存入数组
             array[i] = 2*i +2;
         }
         for(int v:array){
             System.out.println(v);
         }
     }
 }

21、创建一个数组用来存储1-100之间的奇数,并输出
 public class duyi{
     public static void main(String[] args){
         int[] array = new int[50];
         for(int i=0;i<array.length;i++){
                 array[i]=2*i+1;
         }
         for(int v:array){
             System.out.println(v);
         }
     }
 }

22、给定两个数组a{1,2,3,4}  b{5,6,7,8} 将两个数组内的元素对应位置互换
 //方法一
 public class duyi{
     public static void main(String[] args){
         int[] a = {1,2,3,4};
         int[] b = {5,6,7,8};
         for(int i =0;i<a.length;i++){
             int x= a[i];
             a[i]= b[i];
             b[i]=x;
         }
         for(int v:a){
             System.out.println(v);
         }
         for(int v:b){
             System.out.println(v);
         }
     }
 }
 //方法二
 public class duyi{
     public static void main(String[] args){
         int[] a = {1,2,3,4};
         int[] b = {5,6,7,8};    
         int[] temp =a; //temp临时的
         a = b;
         b = temp;
         for(int v:a){
             System.out.println(v);
         }
         for(int v:b){
             System.out.println(v);
         }
     }
 }

23、给定一个数组a{1,2,3,4,5,6} 将这个数组中的元素头尾对应互换位置
 public class duyi{
     public static void main(String[] args){
         int[] a = {1,2,3,4,5,6};
         for(int i =0;i<a.length/2;i++){
             int x = a[i];
             a[i] = a[(a.length-1)-i];
             a[(a.length-1)-i] = x;
         }
         for(int v:a){
             System.out.println(v);
         }
     }
 }

24、给定一个数组a{1,2,3,4,5,6} 计算数组所有元素的平均值
 public class duyi{
     public static void main(String[] args){
         int[] a={1,2,3,4,5,6} ;
         double sum = 0.0;
         for(int i = 0;i<a.length;i++){
             sum+=a[i];
         }
         double avg = sum/a.length;
         System.out.println(avg);
     }
 }

25、给定一个数组a{1,3,5,7,9,0,2,4,6,8} 找寻数组中的最大值和最小值(极值问题)
 public class duyi{
     public static void main(String[] args){
         int[] a={1,3,5,7,9,0,2,4,6,8};
         int max = a[0];
         int min = a[0];
         for(int i=1;i<a.length;i++){
             if(a[i]>max){
                 max =a[i];
             }
             if(a[i]<min){
                 min = a[i];
             }
         }
         System.out.println("最大值为:"+max);
         System.out.println("最小值为:"+min);
     }
 }

26、给定两个数组a{1,2,3}  b{4,5} 合并两个数组 (创建一个新的数组5长度)
public class duyi{
     public static void main(String[] args){
         int[] a={1,2,3};
         int[] b={4,5};
         int[] c =new int[a.length+b.length];//只有长度 元素默认值0
         for(int i = 0;i<c.length;i++){
             if(i<a.length){
                 c[i] = a[i];
             }else{
                 c[i] = b[i-a.length];
             }
         }
         for(int v:c){
         System.out.println(v);
         }
     }
 }

27、给定一个数组a{1,2,3,9,4,5} 按照数组中的最大值位置 将数组拆分成两个{1,2,3} {4,5}
 public class duyi{
     public static void main(String[] args){
         int[] a={1,2,3,9,4,5};
         int max = a[0];
         int index = 0;
         for(int i = 1;i<a.length;i++){
             if(max<a[i]){
                 max = a[i];
                 index = i;
             }
         }
         System.out.println("最大值为:"+max);
         System.out.println("最大值位置:"+index);
         int[] newa = new int[index];
         int[] newb = new int[a.length-index-1];
         for(int i = 0;i<newa.length;i++){
             newa[i]= a[i];
         }
         for(int i=0;i<newb.length;i++){
             newb[i] = a[(index+1)+i];    
         }
         for(int v:newa){
             System.out.println(v);
         }
         System.out.println("------");
         for(int v:newb){
             System.out.println(v);
         }
     
     }
 }

28、给定一个数组a{1,2,3,0,0,4,5,0,6,0,7} 去掉数组中的0元素
 // (创建一个新数组 非零元素挑出来)
 public class duyi{
     public static void main(String[] args){
         int[] oldArray = {1,2,3,0,0,4,5,0,6,0,7};
         int count = 0;
         for(int i = 0;i<oldArray.length;i++){
             if(oldArray[i] !=0){
                 count++;
             }
         }
         System.out.println("原数组非零元素的个数:"+count);  
          int[] newArray = new int[count];
         int index = 0;
         for(int i =0;i<oldArray.length;i++){
             if(oldArray[i] !=0){
                 newArray[index] = oldArray[i];
                 index++;
                 //或者newArray[index++] = oldArray[i];
             }
         }
         for(int v:newArray){
             System.out.println(v);
             }
     }
 }

29、创建一个数组 存储2-100之间的素数(质数)
 public class duyi{
     public static void main(String[] args){
         int count = 0;
         for(int i=2;i<100;i++){
             boolean b = false;
             for(int j=2;j<=i/2;j++){
                 if(i%j==0){
                     b=true;
                     break;
                 }
             }
             if(!b){
                 count++;
             }
         }
         System.out.println("素数的个数为:"+count);
         int[] primeNumber = new  int[count];
         int index=0;
         for(int i=2;i<100;i++){
             boolean b = false;
             
             for(int j=2;j<=i/2;j++){
                 if(i%j==0){
                     b=true;
                     break;
                 }
             }
             if(!b){
                 primeNumber[index++]=i;
             }
         }
         for(int v:primeNumber){
             System.out.println(v);
         }
     }
 }
 
 30、数组元素的冒泡 排序,
 括号里的也应都是该会的(选择 插入 快速 希尔 堆排序 桶排序 归并排序 递归.....)
 public class duyi{
     public static void main(String[] args){
         int[] array={1,5,4,6,9,8,2,3,7};
         for(int i = 1;i<array.length;i++){
             for(int j = array.length-1;j>=i;j--){
                 if(array[j]<array[j-1]){//升序    array[j]>array[j-1]降序 
                     int temp = array[j];
                     array[j] = array[j-1];
                     array[j-1] = temp;
                 }    
             }
         }
     for(int value:array){
         System.out.println(value);
         }
     }
 }

猜你喜欢

转载自blog.csdn.net/Life_s/article/details/104618763