javaSE期末练习题

news2025/2/24 9:33:13

文章目录

  • 前言
  • 一、程序控制
    • 1.顺序结构
      • 问题描述
      • 解题思路
      • 题解
    • 2.选择结构
      • 2.1 题1
        • 问题描述
        • 解题思路
        • 题解
      • 2.1 题2
        • 问题描述
        • 解题思路
        • 题解
    • 3.循环结构
      • 3.1 阶乘的求取
        • 问题描述
        • 解题思路
        • 题解
      • 3.2 水仙花数
        • 问题描述
        • 解题思路
        • 题解
  • 二、数组
  • 三、类与对象
    • 1.类与对象
      • 1.1圆类
        • 问题描述
        • 解题思路
        • 题解
      • 1.2 学生类
        • 问题描述
        • 解题思路
        • 题解
    • 2. 继承
      • 问题描述
      • 解题思路
      • 题解
    • 3. 多态
      • 问题描述
      • 解题思路
      • 题解


前言


一、程序控制

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());
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1886810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ES】--Elasticsearch的Nested类型介绍

目录 一、问题现象二、普通数组类型1、为什么普通数组类型匹配不准?三、nested类型四、nested类型查询操作1、只根据nested对象内部数组条件查询2、只根据nested对象外部条件查询3、根据nested对象内部及外部条件查询4、向nested对象数组追加新数据5、删除nested对象数组某一个…

【QT】常用控件|widget|QPushButton|RadioButton|核心属性

目录 ​编辑 概念 信号与槽机制 控件的多样性和定制性 核心属性 enabled geometry ​编辑 windowTiltle windowIcon toolTip styleSheet PushButton RadioButton 概念 QT 控件是构成图形用户界面&#xff08;GUI&#xff09;的基础组件&#xff0c;它们是实现与…

第十四届蓝桥杯省赛C++B组E题【接龙数列】题解(AC)

需求分析 题目要求最少删掉多少个数后&#xff0c;使得数列变为接龙数列。 相当于题目要求求出数组中的最长接龙子序列。 题目分析 对于一个数能不能放到接龙数列中&#xff0c;只关系到这个数的第一位和最后一位&#xff0c;所以我们可以先对数组进行预处理&#xff0c;将…

VMware创建新虚拟机教程(保姆级别)

&#x1f4e2; 续上一篇 最新超详细VMware虚拟机安装完整教程-CSDN博客 &#xff0c;本章将详细讲解VMware创建虚拟机。 一、创建新的虚拟机 点击【创建新的虚拟机】&#xff01; 点击【自定义&#xff08;高级&#xff09;】> 下一步&#xff01; > 默认下一步&#x…

[hive] posexplode生成从去年一月一号,到本月的月时间表

生成从去年一月一号&#xff0c;到本月的月时间表 posexplode用法&#xff1a; lateral view 表别名 as 序号列名,数组中的元素的名 1、生成序列 SELECT time_stamp_fist_day_of_last_year,--去年第一天的时间戳numfrom(SELECTsplit(repeat_o,,) o_array,time_stamp_fist_da…

【2024德国签证】去德国读博士需要申请什么签证?

德国留学签证面签的经过及注意事项 ✨&#xff01;希望我的经验可以帮助大家顺利通过签证&#xff0c;顺利开启德国留学之旅 。记得带上足够的现金和材料哦 &#xff01; 一、选择适合自己的签证类型 在选择签证类型时&#xff0c;一定要根据自己的实际情况来选择合适的签证种…

vmware虚拟机安装openEuler

一、openEuler简介 openEuler是一款开源操作系统。当前openEuler内核源于Linux&#xff0c;支持鲲鹏及其它多种处理器&#xff0c;能够充分释放计算芯片的潜能&#xff0c;是由全球开源贡献者构建的高效、稳定、安全的开源操作系统&#xff0c;适用于数据库、大数据、云计算、…

ESP32CAM物联网教学01

ESP32CAM物联网教学01 拍照 视频 这么小的一个开发板都带上摄像头了&#xff0c;能拍照&#xff1f;能视频吗&#xff1f;现在就跟着我做起来。 初识ESP32CAM 我们到淘宝搜索“ESP32Cam”&#xff0c;就能买到这样一块开发板。 ESP32Cam是双核处理器&#xff0c;提供WIFI和…

监控平台zabbix介绍与部署

目录 1.为什么要做监控 2.zabbix是什么&#xff1f; 3.zabbix 监控原理 4.Zabbix 6.0 新特性 5.Zabbix 6.0 功能组件 6.部署zabbix 6.1 部署 Nginx PHP 环境并测试 6.2 部署数据库 6.3 向数据库导入 zabbix 数据 6.4 编译安装 zabbix Server 服务端 6.5 修改 zabbix…

真的假不了,假的真不了

大家好&#xff0c;我是瑶琴呀&#xff0c;拥有一头黑长直秀发的女程序员。 最近&#xff0c;17岁的中专生姜萍参加阿里巴巴 2024 年的全球数学竞赛&#xff0c;取得了 12 名的好成绩&#xff0c;一时间在网上沸腾不止。 从最开始的“数学天才”&#xff0c;到被质疑&#xff…

QT5 static_cast实现显示类型转换

QT5 static_cast实现显示类型转换&#xff0c;解决信号重载情况

[22] Opencv_CUDA应用之 使用背景相减法进行对象跟踪

Opencv_CUDA应用之 使用背景相减法进行对象跟踪 背景相减法是在一系列视频帧中将前景对象从背景中分离出来的过程&#xff0c;它广泛应用于对象检测和跟踪应用中去除背景 背景相减法分四步进行&#xff1a;图像预处理 -> 背景建模 -> 检测前景 -> 数据验证 预处理去除…

Sentinel实现区分来源

要区分来源就要写代码实现RequestOriginParser接口 &#xff0c;注意是要实现com.alibaba.csp.sentinel.adapter.servlet.callback.RequestOriginParser 接口&#xff0c;别搞错接口了。 MyRequestOriginParser.java package com.codex.terry.sentinel.origin;import com.ali…

JS数据处理(冒泡寻找对象里面有个Key相同的值并处理相关数据)

1.需要处理成的数据格式 [{ mpptNumber: 1, list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvEnableStatus: 0,pvSerialNumber: 2,}] }, { mpptNumber: 2, list:[{checked: false,pvEnableStatus: 0,pvSerialNumber: 1,},{checked: false,pvE…

力扣hot100-普通数组

文章目录 题目&#xff1a;最大子数组和方法1 动态规划方法2 题目&#xff1a;合并区间题解 题目&#xff1a;最大子数组和 原题链接&#xff1a;最大子数组和 方法1 动态规划 public class T53 {//动态规划public static int maxSubArray(int[] nums) {if (nums.length 0…

有哪些Python书籍是程序员强烈推荐?

有一本升级版的经典Python项目编程书一定要推荐一下。 Python极客项目编程&#xff08;第2版&#xff09; 第一版累计销售19万册&#xff0c;豆瓣评分8.4。每个项目都按照【讲解原理-分析需求-代码精讲-知识小结-扩展练习-完整代码】的方式进行讲解&#xff0c;并提供可下载运…

[21] Opencv_CUDA应用之使用Haar级联的对象检测

Opencv_CUDA应用之使用Haar级联的对象检测 Haar级联使用矩形特征来检测对象,它使用不同大小的矩形来计算不同的线和边缘特征。矩形包含一些黑色和白色区域,如下图所示,它们在图像的不同位置居中 类Haar特征检测算法的思想是计算矩形内白色像素和黑色像素之间的差异这个方法的…

c++将一个复杂的结构体_保存成二进制文件并读取

在 C 中&#xff0c;可以将复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它。为了实现这一点&#xff0c;你可以使用文件流库 <fstream>。以下是一个示例&#xff0c;展示如何将一个复杂的结构体保存到二进制文件中&#xff0c;并从二进制文件中读取它…

无序中的秩序:为何看似混乱的工作方式可能更高效;刚刚!研究表明:混乱可能更有利于创造力;注意!你的过度整理可能正在浪费时间

当面对循规蹈矩&#xff0c;还是自由独立的选择题时&#xff0c;你应当选择自由独立。因为这样&#xff0c;你不但更省力&#xff0c;更省心&#xff0c;而且效率更高&#xff0c;生活更好。 在日常生活和工作中,经常会遇到两种截然不同的人: • 一种是事无巨细,将一切都安排得…

【Python】成功解决TypeError: ‘float‘ object cannot be interpreted as an integer

【Python】成功解决TypeError: ‘float’ object cannot be interpreted as an integer 下滑即可查看博客内容 &#x1f308; 欢迎莅临我的个人主页 &#x1f448;这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地&#xff01;&#x1f387; &#x1f393; 博主…