JAVA基础练习题

2023-10-26

1.生成两个1-10的随机数,分别作为两个数组的长度.

2.向第一个数组中以循环键盘录入的方式添加元素

3.生成1-100之间的随机数 为第二个数组的每个元素赋值

4.将两个数组合并 为一个新的数组

5.去掉新数组的最大值和最小值 求平均值

package practise.day04.p1;

import java.util.Random;
import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Random r = new Random();
        //随机生成一个1-10之间的整数,为数组arr的长度赋值
        int length = r.nextInt(10)+1;

        int [] arr = new int[length];
        Scanner sc =new Scanner(System.in);
        //键盘录入数组arr的元素
        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入第"+i+"个元素");
            arr [i] = sc.nextInt();
        }
        //为数组arr2的长度赋值
        int length2 = r.nextInt(10)+1;
        int [] arr2 = new int[length2];
        for (int i = 0; i < arr2.length; i++) {
            //生成1-100之间的整数为arr2的每个元素赋值
            arr2[i] = r.nextInt(100)+1;
        }
        //将两个数组合并 为一个新的数组
        int[] arr3 = new int[arr.length+arr2.length];

        for (int i = 0; i < arr.length; i++) {
            arr3[i] = arr[i];
        }
        for (int i = 0; i < arr2.length; i++) {
            //这里不太懂  debug看一下
            arr3[i+arr.length] = arr2[i];
        }
        //求最大值
        int max = arr3[0];
        for (int i = 0; i < arr3.length; i++) {
            if (arr3[i]>max){
                max = arr3[i];
            }
        }
        System.out.println("最大值是:"+max);
        //求最小值
        int min = arr3[0];
        for (int i = 0; i < arr3.length; i++) {
            if (arr3[i]<min){
                min = arr3[i];
            }
        }
        System.out.println("最小值是:"+min);
        //求平均值   先求和 再去掉最大值和最小值
        int sum = 0;
        for (int i = 0; i < arr3.length; i++) {
            sum += arr3[i];
        }
        System.out.println("和是:"+ sum);
        //求平均值
        System.out.println("平均值是:"+(sum - max -min)/(arr3.length-2));
    }
}

1.数组元素求平均值

案例需求

随机生成10个1-10之间的数(包括1和10),将生成的数放到数组中,计算数组中索引为奇数的元素平均值,并将结果打印到控制台上

代码实现

package practise.day05;

import java.util.Random;

/*
随机生成10个1-10之间的数(包括1和10),将生成的数放到数组中
计算数组中索引为奇数的元素平均值,并将结果打印到控制台上
 */
public class practice {
    public static void main(String[] args) {
        Random r = new Random();

        int []arr= new int[10];
        int sum = 0;
        int count = 0;
        //将随机生成的数添加到数组中
        for (int i = 0; i < arr.length; i++) {
            int a = r.nextInt(10)+1;
            arr[i] = a;
        }
        for (int i = 0; i < arr.length; i++) {
            if (i % 2 == 1){
                sum +=arr[i];
                count++;
            }
        }
        System.out.println("平均值是"+(sum/count));
    }
}

2. 数组元素求和

  • 案例需求

    有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和, ​ 要求是:求和的元素个位和十位都不能是7,并且只能是偶数

  • 思路

    1:定义一个数组,用静态初始化完成数组元素的初始化 2:定义一个求和变量,初始值是0 3:遍历数组,获取到数组中的每一个元素 4:判断该元素是否满足条件,如果满足条件就累加 5:输出求和变量的值

  • 代码实现

  • package practise.day05;
    /*
    有这样的一个数组,元素是{68,27,95,88,171,996,51,210}。求出该数组中满足要求的元素和,
       要求是:求和的元素个位和十位都不能是7,并且只能是偶数
    
        1:定义一个数组,用静态初始化完成数组元素的初始化
        2:定义一个求和变量,初始值是0
        3:遍历数组,获取到数组中的每一个元素
        4:判断该元素是否满足条件,如果满足条件就累加
        5:输出求和变量的值
     */
    public class practice01{
        public static void main(String[] args) {
        int[] arr = {68,27,95,88,171,996,51,210};
        int sum = 0;
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] % 10!=7 && arr[i] /10 % 10 != 7 && arr[i] % 2== 0){
                    sum +=arr[i];
                }
            }
            System.out.println(sum);
        }
    }
    

    3.判断两个数组是否相同

  • 案例需求

      定义一个方法,用于比较两个数组的内容是否相同

    - 思路

      1:定义两个数组,分别使用静态初始化完成数组元素的初始化
      2:定义一个方法,用于比较两个数组的内容是否相同
      3:比较两个数组的内容是否相同,按照下面的步骤实现就可以了
         首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
         其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
         最后循环遍历结束后,返回true

      4:调用方法,用变量接收

      5:输出结果

  • 代码实现

    package practise.day05;
    
    
    
    /*
    - 案例需求
    
      定义一个方法,用于比较两个数组的内容是否相同
    
    - 思路
    
      1:定义两个数组,分别使用静态初始化完成数组元素的初始化
      2:定义一个方法,用于比较两个数组的内容是否相同
      3:比较两个数组的内容是否相同,按照下面的步骤实现就可以了
         首先比较数组长度,如果长度不相同,数组内容肯定不相同,返回false
         其次遍历,比较两个数组中的每一个元素,只要有元素不相同,返回false
         最后循环遍历结束后,返回true
    
      4:调用方法,用变量接收
    
      5:输出结果
     */
    public class practice02 {
        public static void main(String[] args) {
            //定义两个数组
            int[]arr = {2,3,5,6,8,10,99};
            int[]arr2 = {6,7,8,9,11,22,33,66,88};
            //调用方法
            boolean b = compare(arr,arr2);
            System.out.println(b);
        }
        //定义一个方法 先判断两个数组的长度是否相同  遍历两个数组判断内容是否相同 
        // 如果都相同则返回true
        public static boolean compare(int[]arr,int[]arr2){
            if (arr.length!=arr2.length){
                return false;
            }
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] !=arr2[i]){
                    return false;
                }
            }
            return true;
        }
    
    }
    

 4. 查找元素在数组中出现的索引位置

  • 案例需求

    已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引。

    并在控制台输出找到的索引值。如果没有查找到,则输出-1

  • 代码实现

    package practise.day05;
    
    import java.util.Scanner;
    
    /*
    - 案例需求
    
      已知一个数组 arr = {19, 28, 37, 46, 50}; 键盘录入一个数据,查找该数据在数组中的索引。
    
      并在控制台输出找到的索引值。如果没有查找到,则输出-1
    
    - 代码实现
     */
    public class practice04 {
        public static void main(String[] args) {
            int[] arr = {19, 28, 37, 46, 50};
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入数字");
            int a = sc.nextInt();
            method(arr, a);
    
        }
        private static void method(int[]arr,int a){
            int index = 0;
            for (int i = 0; i < arr.length; i++) {
                if (arr[i]==a){
                    System.out.println(i);
                    index ++;
                }
    
            }
            if (index == 0){
                System.out.println(-1);
            }
        }
    }
    

    5. 数组元素反转

  • 案例需求

    已知一个数组 arr = {1, 2, 3, 4, 5}; 用程序实现把数组中的元素值交换, ​ 交换后的数组 arr = {5, 4, 3, 2, 1}; 并在控制台输出交换后的数组元素。

  • 思路

    1:定义一个数组,用静态初始化完成数组元素的初始化 2:循环遍历数组,这一次初始化语句定义两个索引变量,判断条件是开始索引小于等于结束索引 3:变量交换 4:遍历数组

  • 代码实现

    package practise.day05;
    /*
    - 已知一个数组 arr = {1, 2, 3, 4, 5}; 用程序实现把数组中的元素值交换,
        交换后的数组 arr = {5, 4, 3, 2, 1}; 并在控制台输出交换后的数组元素。
    
    - 图解
    
    
    
    
     */
    public class practice05 {
        public static void main(String[] args) {
            //定义一个数组,用静态初始化完成数组元素的初始化
            int []arr = {1,2,3,4,5};
            fanzhuan(arr);
            printArray(arr);
        }
        public static void  fanzhuan(int[]arr){
            //循环遍历数组,这一次初始化语句定义两个索引变量,判断条件是开始索引小于等于结束索引
            for (int start = 0,end = arr.length-1; start <=end ; start++,end--) {
                int temp = arr[start];
                arr[start] = arr[end];
                arr[end] = temp;
            }
            }
        public static void printArray(int[] arr) {
    //         这是练习提供的方法
    //        System.out.print("[");
    //
    //        for (int x = 0; x < arr.length; x++) {
    //            if (x == arr.length - 1) {
    //                System.out.print(arr[x]);
    //            } else {
    //                System.out.print(arr[x] + ", ");
    //            }
    //        }
    //
    //        System.out.println("]");
            for (int i = 0; i < arr.length; i++) {
                int a = arr[i];
                System.out.print(a+"  ");
            }
        }
        }
    
    

    6. 评委打分

  • 案例需求

    在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。 ​ 选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。

  • 思路

    1:定义一个数组,用动态初始化完成数组元素的初始化,长度为6 2:键盘录入评委分数 3:由于是6个评委打分,所以,接收评委分数的操作,用循环改进 4:定义方法实现获取数组中的最高分(数组最大值),调用方法 5:定义方法实现获取数组中的最低分(数组最小值) ,调用方法 6:定义方法实现获取数组中的所有元素的和(数组元素求和) ,调用方法 7:按照计算规则进行计算得到平均分 8:输出平均分

  • 代码实现

package practise.day05;

import java.util.Scanner;

/*
- 在编程竞赛中,有6个评委为参赛的选手打分,分数为0-100的整数分。
  选手的最后得分为:去掉一个最高分和一个最低分后 的4个评委平均值 (不考虑小数部分)。

- 思路

  1:定义一个数组,用动态初始化完成数组元素的初始化,长度为6
  2:键盘录入评委分数
  3:由于是6个评委打分,所以,接收评委分数的操作,用循环改进
  4:定义方法实现获取数组中的最高分(数组最大值),调用方法
  5:定义方法实现获取数组中的最低分(数组最小值) ,调用方法
  6:定义方法实现获取数组中的所有元素的和(数组元素求和) ,调用方法
  7:按照计算规则进行计算得到平均分
  8:输出平均分
 */
public class practice06 {
    public static void main(String[] args) {
        int[] arr = new int[6];
        Scanner sc = new Scanner(System.in);

        for (int i = 0; i < arr.length; i++) {
            System.out.println("请输入第" + (i + 1) + "个评委的打分");
            arr[i] = sc.nextInt();
        }
        printArray( arr);
        System.out.println("最高分是:");
        System.out.println(getMax(arr));
        System.out.print("最低分是");
        System.out.println(getMin(arr));
        System.out.print("总分数是:");
        System.out.println(getSum(arr));
        System.out.println("去掉一个最高分"+getMax(arr)+"去掉一个最低分"+getMin(arr));

        int sum = getSum(arr);
        int min = getMin(arr);
        int max = getMax(arr);
        int pingJunShun = (sum - min -max )/(arr.length-2);
        System.out.println("平均得分是"+pingJunShun);

    }

    public static int getMax(int[] arr) {
        int max =arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i]>max){
                max = arr[i];
            }
        }
        return max;
    }
    public static int getMin(int[]arr){
        int min = arr[0];
        for (int x = 0; x < arr.length; x++) {
            if (arr[x]<min){
                min = arr[x];
            }

        }
        return min;
    }
    public static int getSum (int[]arr){
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }
    //遍历数组  查看分数  不需要返回值  用void
    public static void printArray(int []arr){
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
           if (i == arr.length-1){
               System.out.print(arr[i]);
           }else{
               System.out.print(arr[i] + ",");
           }
        }
        System.out.print("]");
    }

}

 案例介绍

随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息。

我们来完成随机点名器,它具备以下3个内容:

1. 存储所有同学姓名
2. 总览全班同学姓名
3. 随机点名其中一人,打印到控制台

 案例需求分析

全班同学中随机的找出一名同学,打印这名同学的个人信息。

我们对本案例进行分析,得出如下分析结果:

1.存储全班同学信息(姓名、年龄)

2.打印全班同学每一个人的信息(姓名、年龄)

3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学信息(姓名、年龄)

随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。

而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。此时,我们采用ArrayList集合来解决多个学生信息的存储问题。

 先对学生信息进行封装,新建一个Student类

package practise.day06;

public class Student {
    private String name;
    private int age;


    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    public String toString() {
        return "Student{name = " + name + ", age = " + age + "}";
    }
}
package practise.day06;

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

/*
全班同学中随机的找出一名同学,打印这名同学的个人信息。

我们对本案例进行分析,得出如下分析结果:

1.存储全班同学信息(姓名、年龄)

2.打印全班同学每一个人的信息(姓名、年龄)

3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学信息(姓名、年龄)

随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,
我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。

而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,
则会出现过多孤立的变量,很难一次性将全部数据持有。此时,我们采用ArrayList集合来解决多个学生信息的存储问题。
 */
public class practice01 {
    public static void main(String[] args) {
        ArrayList<Student>list = new ArrayList<>();
        addStudent(list);
        show(list);
        randomStudent(list);
    }
    public static void addStudent(ArrayList<Student>list){
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 3; i++) {

            Student s = new Student();
            s.setName(sc.next());
            s.setAge(sc.nextInt());
            list.add(s);
            System.out.println("第"+(i+1)+"个输完了");
        }
    }
    public static void show(ArrayList<Student>list){
        for (int i = 0; i < list.size(); i++) {
            Student s = list.get(i);
            System.out.println(s.toString());
        }
    }
    public static void randomStudent(ArrayList<Student>list){
        int index = new Random().nextInt(list.size());//这里的定义有点忘了  完了看看视频
        Student s  = list.get(index);
        System.out.println("幸运儿是"+s.toString());
    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA基础练习题 的相关文章

随机推荐

  • Basic Level 1065 单身狗 (25分)

    题目 单身狗 是中文对于单身人士的一种爱称 本题请你从上万人的大型派对中找出落单的客人 以便给予特殊关爱 输入格式 输入第一行给出一个正整数 N 50 000 是已知夫妻 伴侣的对数 随后 N 行 每行给出一对夫妻 伴侣 为方便起见 每人对
  • cv2.error: OpenCV(4.6.0) :-1: error: (-5:Bad argument) in function ‘seamlessClone‘

    Can t parse p Sequence item with index 0 has a wrong type 1 软件环境 2 问题描述 3 解决方法 4 结果预览 1 软件环境 Windows10 教育版64位 Python 3 6
  • 函数式接口

    接口 package cn dali5 code01 函数式接口 有且仅有一个抽象方法的接口 可以有其他的方法 默认 静态 私有 函数式接口 适用于函数式编程场景的接口 Java中函数式编程的提现就是lambda表达式 所以函数式接口就是可
  • python子类定义报错:TypeError: __init__() missing 1 required positional argument: ‘prilege‘

    在学习 Python编程 从入门到实践 中类这一章节 其中子类的案例代码如下 class Car snip class Battery 一次模拟电动汽车电瓶的简单尝试 def init self battery size 70 初始化电瓶的
  • html5media使用api,html5中media(播放器)的api使用指南.pdf

    代码如下 HTML Audio API HTML5 Audio API HTML5 Audio API demo by target blank gt LearnShare Last update 2013 04 23 20 40 00 a
  • Python多线程、多进程和协程的实例讲解

    线程 进程和协程是什么 线程 进程和协程的详细概念解释和原理剖析不是本文的重点 本文重点讲述在Python中怎样实际使用这三种东西 参考 进程 线程 协程之概念理解 进程 Process 是计算机中的程序关于某数据集合上的一次运行活动 是系
  • WebUploader使用

    WebUploader用于文件的上传 文件上传过程为 网页中点击上传按钮 弹出选择文件窗口 并选择一个文件 在网页中显示选中的内容 给使用者一个反馈 点击上传按钮 文件开始上传 同时服务端开始接收文件 对于服务端而言 框架往往都有自己的接收
  • Jmeter(二十六) - 从入门到精通 - 搭建开源论坛JForum(详解教程)

    1 简介 今天这篇文章主要是给大家讲解一下 如何部署测试环境 这里宏哥部署一个开源测论坛 后边的文章中会用到这个论坛 并且也看到童鞋们在群里讨论如何在开发将测试包发给你以后 你如何快速地部署测试环境 这里就是简单的演示一下 应该具体项目灵活
  • 洛谷 P1085 不高兴的津津

    这个题目需要连续换行输入7组数据 并且对数据的最大值进行比较和提取 题目描述 津津上初中了 妈妈认为津津应该更加用功学习 所以津津除了上学之外 还要参加妈妈为她报名的各科复习班 另外每周妈妈还会送她去学习朗诵 舞蹈和钢琴 但是津津如果一天上
  • IDEA的配置JDK,Tomcat,Maven

    IDEA的配置JDK Tomcat Maven 先下载安装jdk 其中JDK为安装版 tomcat 和maven为非安装版 JDK安装完成后要设置3个坏境变量 tomcat和maven好像不设置也行 就下载下来解压就行了 maven最好还是
  • 小米android11账号补丁,小米10 MIUI11 解账户锁 可登小米账号 永不反锁 完美ROOT 解锁包...

    MIUI全机型有锁机账户锁刷机包 仅针对于有锁机用户使用 帮助已经购买到有锁机的用户 ROM版权归小米 官方所有 本人未持有任何版权 仅以分享形式发布 对ROM稳定性也不能做任何保证 如果你希望更好的系统 体验 我们非常建议购买正规渠道的小
  • 用Construct2开发一个小游戏(进阶)

    策划并用Construct2开发一个小游戏 进阶 游戏策划 楔子 Setting 公元2500年 与地球建交长达200之久的达克星球 Dark Star 单方面撕毁友好合约 对地球发起了进攻 面对源源不断的独眼怪大军 你踏入自己发明的 洋芋
  • MATLAB——读取多文件夹内文件并绘制图形(1)——逐行读取txt文件内字符串

    目录 1 添加路径 2 准备好图片名称和路径名称 3 读取txt文件中的字符串 1 添加路径 如果m文件和要读取的文件不在同一个路径下 需要借助下方代码将当前文件夹下的所有文件都包含进搜索路径中 addpath genpath F SaCo
  • Swin-Transformer

    原视频链接 https www bilibili com video BV1pL4y1v7jC spm id from 333 788 vd source f04f16dd6fd058b8328c67a3e064abd5 参考博文 2021
  • 哈夫曼编码设计(C)

    文章目录 前言 哈夫曼编码设计 总结 前言 大二 刚刚开始学数据结构与算法 写得不好 哈夫曼编码设计 现要求输入8个字符 a b c d e f g h 对应的权值 大于0的整数 然后设计哈夫曼编码实现输入对应8个字符组成的一串字符 字符串
  • centos 网络连接设置

    这里使用虚拟机 VirtualBox 来安装CentOS 6 3 32bit服务器版本 没有安装桌面 作为演示 所以全是命令操作 如何安装CentOS操作系统就不用我说的 虚拟机网络设置为桥接模式 Bridge 单独分配ip 不共享主机ip
  • 致命错误:Rdefines.h:没有那个文件或目录

    致命错误 Rdefines h 没有那个文件或目录 Rdefines h No such file or directory 关键词 CentOS 7 安装rpy2 pip3 install rpy2报错 python3 setup py
  • C#——字符串

    System String类 1 创建字符串 string s abcdefg 2 获取字符串长度 s Length 3 比较字符串是否一样 s abcd 4 字符串连接 s http s 5 使用类似索引器的语法来取得字符串中的某个字符
  • Android常见漏洞

    Android常见漏洞 漏洞名称 Log敏感信息泄露 漏洞描述 程序运行期间打印了用户的敏感信息 造成泄露 修改建议 建议禁止隐私信息的log 漏洞名称 web https校验错误忽略漏洞 漏洞描述 漏洞可导致中间人攻击 修改建议 建议不要
  • JAVA基础练习题

    1 生成两个1 10的随机数 分别作为两个数组的长度 2 向第一个数组中以循环键盘录入的方式添加元素 3 生成1 100之间的随机数 为第二个数组的每个元素赋值 4 将两个数组合并 为一个新的数组 5 去掉新数组的最大值和最小值 求平均值