一、选择题
ABDDA

二、编程题
1.定义一个名为Car的类，包含以下属性和方法：
属性：brand（品牌，字符串类型）、color（颜色，字符串类型）、speed（速度，整数类型）。
方法：
accelerate()：使速度增加 10。
brake()：使速度减少 5。
displayInfo()：显示汽车的品牌、颜色和当前速度。
在main方法中创建一个Car对象，设置其品牌为 "BMW"，颜色为 "Black"，初始速度为 0，然后调用accelerate()方法 3 次，再调用brake()方法 2 次，最后调用displayInfo()方法显示汽车的信息。
class Car {
    private String brand;
    private String color;
    private int speed;

    public Car(String brand, String color) {
        this.brand = brand;
        this.color = color;
        this.speed = 0;
    }

    public void accelerate() {
        speed += 10;
    }

    public void brake() {
        speed -= 5;
        if (speed < 0) {
            speed = 0;
        }
    }

    public void displayInfo() {
        System.out.println("品牌：" + brand + "，颜色：" + color + "，当前速度：" + speed);
    }
}

public class Main {
    public static void main(String[] args) {
        Car myCar = new Car("BMW", "Black");
        myCar.accelerate();
        myCar.accelerate();
        myCar.accelerate();
        myCar.brake();
        myCar.brake();
        myCar.displayInfo();
    }
}




2.定义一个名为Student的类，包含以下属性和方法：
属性：name（姓名，字符串类型）、age（年龄，整数类型）、grades（成绩数组，整数类型数组）。
方法：
addGrade(int grade)：向成绩数组中添加一个成绩。
calculateAverage()：计算平均成绩。
displayInfo()：显示学生的姓名、年龄和平均成绩。
在main方法中创建一个Student对象，设置其姓名为 "John"，年龄为 20，然后添加一些成绩（例如 80, 90, 75），最后调用displayInfo()方法显示学生的信息。

class Student {
    private String name;
    private int age;
    private int[] grades;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
        this.grades = new int[0];
    }

    public void addGrade(int grade) {
        int[] newGrades = new int[grades.length + 1];
        System.arraycopy(grades, 0, newGrades, 0, grades.length);
        newGrades[grades.length] = grade;
        grades = newGrades;
    }

    public double calculateAverage() {
        int sum = 0;
        for (int grade : grades) {
            sum += grade;
        }
        return (double) sum / grades.length;
    }

    public void displayInfo() {
        System.out.println("姓名：" + name + "，年龄：" + age + "，平均成绩：" + calculateAverage());
    }
}

public class Main {
    public static void main(String[] args) {
        Student student = new Student("John", 20);
        student.addGrade(80);
        student.addGrade(90);
        student.addGrade(75);
        student.displayInfo();
    }
}










1.创建一个Rectangle类，该类具有私有成员变量length和width，用于表示矩形的长和宽。提供有参构造方法和无参构造方法，在有参构造方法中使用this关键字来初始化成员变量。同时，提供一个方法calculateArea()用于计算矩形的面积，在该方法中也使用this关键字来访问成员变量并计算面积。

class Rectangle {
    private double length;
    private double width;

    // 无参构造方法
    public Rectangle() {
        // 可以在这里设置一些默认值，例如
        this.length = 0;
        this.width = 0;
    }

    // 有参构造方法
    public Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    // 计算矩形面积的方法
    public double calculateArea() {
        return this.length * this.width;
    }

    // 获取长度的方法
    public double getLength() {
        return length;
    }

    // 获取宽度的方法
    public double getWidth() {
        return width;
    }
}
public class Main {
    public static void main(String[] args) {
        Rectangle rectangle1 = new Rectangle(5.0, 3.0);
        System.out.println("矩形1的面积：" + rectangle1.calculateArea());

        Rectangle rectangle2 = new Rectangle();
        System.out.println("矩形2的面积（默认值）：" + rectangle2.calculateArea());
    }
}


用递归实现斐波那契数列的第n个数的值，该数列指的是这样一个数列：1，1，2，3，5，8，13，21，34，55，89...，这个数列从第3项开始，每一项都等于前两项之和。

public static int fibonacci(int n){
        if (n == 1 || n == 2) {             //特殊情况，分开讨论
            return 1;
        }
        if (n > 2) {
            return fibonacci(n - 1) + fibonacci(n - 2);     //递归调用
        }
        return -1;              //如果输入错误的n，一律返回-1
}
