当前位置:首页 > java > 正文内容

JAVA 基础练习题 JAVA教程 基础

关中浪子3年前 (2021-10-28)java1427
买泛域名SSL证书 送5斤装现摘猕猴桃一箱、同时提供技开源商城搭建免费技术支持。
泛域名ssl证书 239元1年送1个月、单域名39元1年,Sectigo(原Comodo证书)全球可信证书,强大的兼容性,高度安全性,如有问题7天内可退、可开发票
加微信VX 18718058521 备注SSL证书
【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价

1变量、运算符和类型转换:

1.1手动输入一个学生的成绩,对这个成绩进行一次加分,加当前成绩的20%,输出加分后成绩



        Scanner scan = new Scanner(System.in);

        System.out.println("请输入一个数字");

        int num = scan.nextInt();

        num += num * 0.2;

        System.out.println(num);


1.2商场举行店庆,抽几折打几折,

先手动输入消费金额,再输入,抽到的折扣,计算出折后价格



        Scanner scan = new Scanner(System.in);

        System.out.println("请输入消费金额");

        int num = scan.nextInt();

        System.out.println("请输入抽到的折扣");

        int dis = scan.nextInt();

        int price = 0;// 累加变量

        price = num * dis / 10;

        System.out.println("折后价格:" + price);


1.3手动输入一个4位数,求各位数字之和



        Scanner scan = new Scanner(System.in);

        System.out.println("请输入一个4位数");

        int shu = scan.nextInt();

        int a = shu / 1 % 10;

        int b = shu / 10 % 10;

        int c = shu / 100 % 10;

        int d = shu / 1000 % 10;

        System.out.println(a + b + c + d);


2分支结构:

2.1商场消费返利活动,手动输入顾客消费金额,

如果金额打8折后仍然满1000元,用户就获得200元代金券一张(不考虑多张)



        Scanner scan = new Scanner(System.in);

        System.out.println("请输入消费金额");

        int num = scan.nextInt();


        double dis = num * 0.8;// 打折后的价格

        if (dis > 1000) {

            dis = dis - 200;// 200元代金券

        }

        System.out.println(dis);


 


2.2用户输入一个年份,如果是闰年输出是闰年

(年份能被4整除,且不能被100整除,或者能被400整除的年份)



        Scanner input = new Scanner(System.in);

        System.out.println("输入年份");

        int year = input.nextInt();

        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

            System.out.println("是闰年");

        } else {

            System.out.println("不是闰年");

        }


 


2.3手动输入一个整型会员号,

如果用户输入的是4位数字,

输出登录成功,

如果用户输入的不是4位数字,

输出“您输入的会员号有误”



        Scanner input = new Scanner(System.in);

        System.out.println("请输入整型会员号");

        int num = input.nextInt();

        int i = 0;// 初始化 数字的位数

        while (num != 0) {

            num = num / 10;// 被10整除 i++;

        } // 最后,这个 i 就是数字的位数

        if (i != 4) {

            System.out.println("您输入的会员号有误");

        } else {

            System.out.println("登录成功!");

        }


 


2.4手动输入a,b,c三个变量的数值,

要求通过数值交换,

把输入的数值从小到大

排序放入a,b,c中,并输出



        Scanner scanner = new Scanner(System.in);

        System.out.print("请输入第一个整数:");

        int a = scanner.nextInt();

        System.out.print("请输入第二个整数:");

        int b = scanner.nextInt();

        System.out.print("请输入第三个整数:");

        int c = scanner.nextInt();


        int x = 0;

        if (a > b) {

            x = a;

            a = b;

            b = x;

        }

        if (a > c) {

            x = a;

            a = c;

            c = x;

        }

        if (b > c) {

            x = b;

            b = c;

            c = x;

        }

        System.out.println(a + "," + b + "," + c);


 


3多分支结构

3.1商场根据会员积分打折,

2000分以内打9折,

4000分以内打8折

8000分以内打7.5折,

8000分以上打7折,

使用if-else-if结构,实现手动输入购物金额和积分,计算出应缴金额



        Scanner sc = new Scanner(System.in);

        System.out.println("请输入购物金额");

        double shop = sc.nextDouble();

        System.out.println("请输入积分");

        int fen = sc.nextInt();

        if (fen < 2000) {

            shop *= 0.9;

            System.out.println("目前消费" + shop + "元");

        } else if (fen >= 2000 && fen <= 4000) {

            shop *= 0.8;

            System.out.println("目前消费" + shop + "元");

        } else if (fen <= 8000 && fen > 4000) {

            shop *= 0.75;

            System.out.println("目前消费" + shop + "元");

        } else if (fen > 8000) {

            shop *= 0.7;

            System.out.println("目前消费" + shop + "元");

        } else {

            System.out.println("抱歉没有折扣");

        }


 


3.2机票价格按照淡季旺季、头等舱和经济舱收费、

输入机票原价、月份和头等舱或经济舱,

其中旺季(5-10月)头等舱9折,经济舱85折,

淡季(11月到来年4月)头等舱7折,经济舱65折,

最终输出机票价格



        Scanner s = new Scanner(System.in);

        System.out.println("请输入机票原价");

        int piao = s.nextInt();

        System.out.println("请输入月份");

        int yue = s.nextInt();

        System.out.println("请选择:1.头等" + "2.经济");

        int l = s.nextInt();

        if (yue >= 5 && yue <= 10) {// 旺季

            if (l == 1) {

                piao *= 0.9;

            } else {

                piao *= 0.85;

            }


        } else {// 淡季

            if (l == 1) {

                piao *= 0.7;

            } else {

                piao *= 0.65;

            }


        }

        System.out.println(piao);


 


3.3选择一个形状(1长方形、2正方形、3三角形、4圆形)

根据不同的选择让用户输入不同的信息,

长方形有长和宽、

正方形有边长、

三角形有底和高、

圆形有半径,

计算输出指定形状的面积



        Scanner scan=new Scanner(System.in);

        System.out.println("1长方形、2正方形、3三角形、4圆形");

        int num=scan.nextInt();

        switch(num) {

        case 1:

            System.out.println("请输入长方形的长");

            int l=scan.nextInt();

            System.out.println("请输入长方形的宽");

            int w=scan.nextInt();

            int fs=l*w;

            System.out.println("长方形面积为:"+fs);

            break;

        case 2:

            System.out.println("请输入正方形边长");

            int z=scan.nextInt();

            System.out.println("正方形面积为:"+z*z);

            break;

        case 3:

            System.out.println("请输入三角形的底长");

            int d=scan.nextInt();

            System.out.println("请输入三角形的高");

            int g=scan.nextInt();

            System.out.println("三角形面积为:"+d*g/2);

            break;

        case 4:

            System.out.println("请输入圆形的半径");

            double r=scan.nextDouble();

            double ys=3.14*r*r;

            System.out.println("圆形面积为:"+ys);

            break;

        }


 


3.4输入年份和月份,输出这个月应该有多少天(使用switch结构)

        Scanner scan = new Scanner(System.in);

        System.out.println("请输入年份");

        int year = scan.nextInt();

        System.out.println("请输入月份");

        int month = scan.nextInt();

        switch (month) {

        case 1:

        case 3:

        case 5:

        case 7:

        case 8:

        case 10:

        case 12:

            System.out.println("31天");

            break;

        case 4:

        case 6:

        case 9:

        case 11:

            System.out.println("30天");

            break;

        case 2:

            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {

                System.out.println("29天");

            } else {

                System.out.println("28天");

            }

        }

 


4循环结构(上)

4.1随机生成一个1-100之间的数字num,循环让用户输入猜这个数,

如果用户输入的数字大于num提示输入的数字比较大,

如果用户输入的数字小于num提示输入的数字比较小,

直到用户输入的数字和num相等为止,然后输出用户猜数的总次数

        Scanner scan=new Scanner(System.in);

        Random ran=new Random();

        //生成游戏答案1~100

        int num=ran.nextInt(100)+1;

        //System.out.println(num);

        int n=0;//定义n的初值

        int i=0;//定义猜数次数

        while(n!=num) {

            System.out.println("请猜数字");

            n=scan.nextInt();

            if(n>num) {//判断猜数结果

                System.out.println("输入的数字较大");

            }else if(n<num) {

                System.out.println("输入的数字较小");

            }else {

                System.out.println("恭喜您猜对了");

            }

            i++;//猜数次数加1

        }

        System.out.println("总共猜了"+i+"次");

 


4.2打印出1-100之间所有不是7的倍数和不包含7的数字,并求和

        int sum = 0;

        for (int i = 1; i <= 100; i++) {

            if(i%7 ==0 || i%10 == 7 || i/10 == 7){//注意:70-79容易漏掉

                continue;

            }

            sum += i;

        }

        System.out.println(sum);

 


4.3循环输入5个数,输完后显示这些数中有没有负数

        Scanner scan=new Scanner(System.in);

        System.out.println("请输入5个数字");

        int flag=0;//立旗

        int i=1;

        while(i<=5) {

            int num=scan.nextInt();

            if(num<0) {

                flag=1;

            }

            i++;

        }

        if(flag==0) {

            System.out.println("没有负数");

        }else {

            System.out.println("有负数");

        }

 


5循环结构(下)

5.1有一个有钱的神经病,他往银行里存钱,

第一天存1元,以后每天比前一天多存50%,完成下列计算任务

1)他存到第几天,当天存的钱会超过10元

        double money=1;

        int day=1;

        while(money<10) {

            money*=1.5;

            day++;

            System.out.println("day:"+day+",money:"+money);

        }

        System.out.println(day);


2)一个月(30天)后,他总共存了多少钱

double sum=0;

        double mo=1;

        for(int i=1;i<=30;i++) {

            sum+=mo;

            System.out.println("i:"+i+",money:"+mo+",sum:"+sum);

            mo*=1.5;

        }

        System.out.println(sum);

 

 


 

5.2有一个400米一圈的操场,一个人要跑10000米,

第一圈50秒,其后每一圈都比前一圈慢1秒,

按照这个规则计算跑完10000米需要多少秒

        int round=10000/400;

        int sum=0;

        int time=50;

        for(int i=1;i<=round;i++) {

            sum+=time;

            System.out.println("圈数:"+i+",时间:"+time+",花的时间:"+sum);

            time++;

        }

        System.out.println(sum);

 


5.3用户输入任意一个整数,求各位数字之和

        Scanner scan=new Scanner(System.in);

        System.out.println("请输入一个数字");

        int num=scan.nextInt();

        int sum=0;//累加变量

        while(num>0) {

            //将数字的个位取出累加

            sum+=num%10;

            //将当前数字除以10,以便下次循环使用

            num=num/10;//num/=10;

        }

        System.out.println(sum);

 


5.4井里有一只蜗牛,他白天往上爬5米,晚上掉3.5米,井深56.7米

计算蜗牛需要多少天才能从井底到爬出来

        int day=1;//天数

        double sum=0;//爬过的距离

        while(true) {

            //白天向上爬5米

            sum+=5;

            System.out.println("day:"+day+",sum:"+sum);

            if(sum>=56.7) {//如果爬出了井

                //退出循环

                break;

            }

            //晚上掉3.5;

            sum-=3.5;

            day++;

        }

        System.out.println(day);

 


6循环嵌套

6.1求1~1000以内质数列表

PS:质数是只能被1和自身整除的整数

        int i, j;

        for (i = 1; i <= 1000; i++) {

            for (j = 2; j < i; j++) {

                if (i % j == 0)

                    break;

            }


            if (i == j){

                System.out.print(j + " ");

            }


        }

 


7数组

7.1定义一个数组int[] nums={8,7,3,9,5,4,1}

输出数组中的最大值和最大值所在的下标

        int[] nums={8,7,3,9,5,4,1};

        int max = nums[0];//默认第一个最大

        int index = 0;

        for (int i = 0; i < nums.length; i++) {

            if (nums[i] > max) {

                max = nums[i];

                index = i;

            }

        }

        System.out.println("最大的数: "+max+" 下标: "+index);

 


7.2向一个长度为10的整型数组中随机生成10个0~9的随机整数,完成下列任务

1)升序输出、降序输出

2)输出总和、平均数

        Random ran = new Random();

        int[] num = new int[10];

        for (int i = 0; i < num.length; i++) {

            num[i] = ran.nextInt(10);

        }

        Arrays.sort(num);

        for (int i = 0; i < num.length; i++) {

            System.out.print(num[i] + " ");

        }

        System.out.println("------升序------");

        for (int i = num.length - 1; i >= 0; i--) {

            System.out.print(num[i] + " ");

        }

        System.out.println("------降序------");


        // 总和

        int sum = 0;

        for (int i = 0; i < num.length; i++) {

            sum = num[i] + sum;

        }

        System.out.println("总和:" + sum);


        // 平均数

        int sum2 = 0;

        for (int i = 0; i < num.length; i++) {

            sum2 = num[i] + sum2;

        }

        System.out.println("平均数:" + sum2 / num.length);

 


7.3向一个长度为5的整型数组中随机生成5个1-10的随机整数

要求生成的数字中没有重复数

        int[] nums = new int[5];

        Random ran = new Random();

        

        for (int i = 0; i < nums.length; i++) {

            nums[i] = ran.nextInt(10) + 1;

            

            for (int j = 0; j < i; j++) {

                while (nums[i] == nums[j]) {//如果重复,退回去重新生成随机数

                    i--;

                }

            }

        }

        for (int i = 0; i < nums.length; i++) {

            System.out.print(nums[i] + " ");

        }

 


7.4(选做)向一个长度为10的整型数组中随机生成10个0~9的随机整数,完成下列任务

1)统计每个数字出现了多少次

2)输出出现次数最多的数字

3)输出只出现一次的数字中最小的数字

        Random r = new Random();

        // 1. 声明源数组,包含10个0-9之间的随机数

        int[] src = new int[10];

        // 2. 声明一个标记数组,存放的是0-9,10个数字

        int[] flag = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

        // 3. 声明一个用来统计标记数组中数字在源

        // 数组中的个数

        int[] count = new int[flag.length];

        // 4. 给源数组赋值0-9之间的随机数

        for (int i = 0; i < src.length; i++) {

            src[i] = r.nextInt(10);

        }

        // 5. 统计标记数组中的每个元素在源数组中

        // 有多少个即给count数组赋值

        for (int i = 0; i < flag.length; i++) {

            for (int j = 0; j < src.length; j++) {

                // 如果标记数组中的数字在源数组中有,则count+1

                if (flag[i] == src[j]) {

                    count[i]++;

                }

            }

        }

        // 6. 输出src和count的数据

        System.out.println("随机产生的数据如下:");

        System.out.println(Arrays.toString(src));

        // System.out.println(Arrays.toString(count));


        // a.统计每个数字出现的次数

        // 如果count中的元素的值大于0,则输出其下标和值

        for (int i = 0; i < count.length; i++) {

            if (count[i] > 0) {

                System.out.println("数字" + i + "出现" + count[i] + "次");

            }

        }


        // b.输出出现最多次数的数字

        // 假设第一个统计的数字就是最多那个

        int max = count[0];

        int index = 0;

        for (int i = 0; i < count.length; i++) {

            if (count[i] > max) {

                max = count[i];

                index = i;

            }

        }

        System.out.println("出现次数最多的数字是" + index);


        // c. 输出只出现一次的数字中最小的数字

        for (int i = 0; i < count.length; i++) {

            if (count[i] == 1) {

                System.out.println("出现1次的数字中最小的是" + i);

                break;

            }

        }


找梯子最重要的就是稳定,这个已经上线三年了,一直稳定没有被封过,赶紧下载备用吧!

扫描二维码推送至手机访问。

版权声明:本文由码农翻生发布,如需转载请注明出处。

本文链接:https://lubojian.cn/post/52.html

分享给朋友:

相关文章

springmvc学习返回视图或字符串

springmvc学习返回视图或字符串

返回试图1:直接返回String字符串,拼接前后缀,进行页面跳:2:返回modelAndView,拼接前后缀,返回页面success.jsp3:注入modelAndView,拼接前后缀返回页面success.jsp4:把model与view...

SpringBoot   http请求 提交日期参数 转换失败的解决方法 (无法自动转换字符串到日期)

SpringBoot http请求 提交日期参数 转换失败的解决方法 (无法自动转换字符串到日期)

如果你有类似如下报错信息,可阅读此文尝试解决:2018-08-18 14:05:17.687  WARN 17100 --- [p-nio-80-exec-2] .w.s...

springboot 服务端获取前端传过来的参数7种方式

1、直接把表单的参数写在Controller相应的方法的形参中,适用于GET 和 POST请求方式"/tools" "/addUser1""username is:&qu...

Spring Boot + MyBatis + MySQL 实现读写分离!不懂多看

Spring Boot + MyBatis + MySQL 实现读写分离!不懂多看

1、引言读写分离要做的事情就是对于一条SQL该选择哪个数据库去执行,至于谁来做选择数据库这件事儿,无非两个,要么中间件帮我们做,要么程序自己做。因此,一般来讲,读写分离有两种实现方式。第一种是依靠中间件(比如:MyCat),也就是说应用程序...

xml解析工具类

import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.ByteArrayInputStream;...

java poi读取excel文件(xlsx)

poi读取excel文件先maven导入jar包<dependency>     <groupId>org.apache.poi</groupId>  ...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。