javaSE期末练习题


前言


一、程序控制

1.顺序结构

问题描述

输入一个三位整数,输出个、十、百位的数字

解题思路

运算符:%、/的应用
详见文章

题解

Sequence.java文件

import java.util.Scanner;

public class Sequence {
    public static void main(String[] args) {
        //输入一个三位整数,输出个、十、百位的数字
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        System.out.println("个位"+(num%10));
        System.out.println("十位"+(num%100/10));
        System.out.println("十位"+(num/10%10));
        System.out.println("百位"+(num/100));
        //拓展:倒叙输出
        System.out.println((num%10)+""+(num/10%10)+""+(num/100));
    }
}

运行结果
在这里插入图片描述

2.选择结构

2.1 题1

问题描述

输入三个数,输出最值,从小到大排序输出

解题思路

求最值的常见方法
冒泡排序

题解

Choose1.java文件

import java.util.Scanner;

//输入三个数,输出最值,从小到大排序输出
public class Choose1 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt();
        int b = input.nextInt();
        int c = input.nextInt();
/*        //求最值
        if(a<b){
            a = b;
        }
        if(a<c){
            a = c;
        }
        System.out.println("最大值为: "+a);*/
        //冒泡排序输出
        int t = 0;
        if(a>b){	// 3 2 1
            t=a;	// t=3
            a=b;	// a=2
            b=t;	// b=3
        }
        if(a>c){
            t=a;	// t=2
            a=c;	// a=1
            c=t;	// c=2
        }
        if(b>c){
            t=b;	// t=3
            b=c;	// b=2
            c=t;	// c=3
        }

        System.out.println("从大到小顺序输出:"+c+" "+b+" "+a);
    }
}

2.1 题2

问题描述

输入分数,输出对应的优良中差等级

解题思路

单一条件判断,用switch
详见文章

题解

Choose2.java文件

import java.util.Scanner;

public class Choose2 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int score = input.nextInt();
        switch (score/10){
            case 10:
            case 9:
                System.out.println("优");
                break;
            case 8:
                System.out.println("良");
                break;
            case 7:
            case 6:
                System.out.println("中");
                break;
            default:
                System.out.println("差");
        }
    }
}

3.循环结构

3.1 阶乘的求取

问题描述

输入一个整数数,求这个数的阶乘
阶乘公式:n!= n*(n-1)*(n-2)……*1

解题思路
题解

Jc.java文件

import java.util.Scanner;

public class Jc {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int sum = 1;
        for (int i = 1; i <= n; i++) {
            sum *= i;
        }
        System.out.println(sum);
    }
}


3.2 水仙花数

问题描述

判断并输出100~1000以内的水仙花数
“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+3^3。

解题思路
题解

Jc.java文件

public class Flower {
    public static void main(String[] args) {
        for (int i = 100; i < 1000; i++) {
            //个位
            int a = i%10;
            //十位
            int b = i%100/10;
            //百位
            int c = i/100;
            if(i == (a*a*a)+(b*b*b)+(c*c*c)){
                System.out.print(i+" ");
            }
        }
    }
}

二、数组

三、类与对象

1.类与对象

1.1圆类

问题描述

设计一个圆类(Circle),包括属性:半径;方法:构造方法、求面积方法area()、求周长方法perimeter。主方法中构造两个圆对象c1、c2、,c1半径15,c2半径30。然后分别显示两个圆的面积与周长

解题思路
题解

Circle.java文件

public class Circle {
    double r;
    public static void main(String[] args) {
        Circle c1 = new Circle();
        Circle c2 = new Circle();

        c1.r = 15;c2.r = 30;
        System.out.println("c1的面积: "+area(c1.r));
        System.out.println("c1的周长: "+perimeter(c1.r));
        System.out.println("c2的面积: "+area(c2.r));
        System.out.println("c2的周长: "+perimeter(c2.r));
    }
    public Circle(){}
    public static double area(double r){
        return Math.PI * r * r;
    }
    public static double perimeter(double r){
        return (2 * Math.PI * r);
    }
}

1.2 学生类

问题描述

设计一个学生类,包括属性:学号(No)、姓名(name)、性别(sex)、年龄(age);方法:构造方法、显示个人信息(showInFor())、显示并修改年龄的方法(modifyAge())

解题思路
题解

Circle.java文件

public class Student {
       private int No;
       private String name;
       private char sex;
       private int age;

       public void showInFor(){
           System.out.println("学号 "+No);
           System.out.println("姓名 "+No);
           System.out.println("性别 "+No);
           System.out.println("年龄 "+No);
       }

       public void setName(String name){
           this.name = name;
       }

       public String getName(){
           return name;
       }
}

2. 继承

问题描述

自行设计圆类,并在圆类的继承上派生圆柱类,注意派生类构造方法的书写。

解题思路

题解

Cylinder.java文件

public class Cylinder extends Circle{
    double h;
    public static void main(String[] args) {
        Cylinder cylinder = new Cylinder();
        cylinder.h = 4;
        cylinder.r = 2;
        v(cylinder.r, cylinder.h);
        s(cylinder.r, cylinder.h);
    }
    public static void v(double r,double h){
        System.out.println(area(r) * h);
    }
    public static void s(double r, double h){
        System.out.println(area(r)*2+perimeter(r)*h);
    }
}

3. 多态

问题描述

设计抽像图形类Shape,图形类里有求面积的抽像方法,派生矩形类、圆类等图形重写面积方法

解题思路

题解

Shape.java文件

//设计抽像图形类Shape,图形类里有求面积的抽像方法,派生矩形类、圆类等图形重写面积方法
public abstract class Shape {
    public abstract double getArea();
}
//矩形类E继承Shape类
class E extends Shape{
    double a;
    double b;
    public void area(double a,double b){
        this.a = a;
        this.b = b;
    }
    public double getArea() {
        return a*b;
    }
}
//圆类F继承Shape类
class F extends Shape{
    double r;
    public void area1(double r){
        this.r = r;
    }
    public double getArea(){
        return Math.PI*r*r;
    }
}

//测试:
class Main11 {
    public static void main(String[] args) {
        E e = new E();
        F f = new F();
        e.area(3,4);
        f.area1(3);
        System.out.println("矩形面积为:" + e.getArea());
        System.out.println("圆形面积为:" + f.getArea());
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值