博客
关于我
JAVA入门(NEFU的锐格测试题——实验一)
阅读量:368 次
发布时间:2019-03-04

本文共 6303 字,大约阅读时间需要 21 分钟。

Java编程练习题解析与解决方案

以下是一些Java编程练习题的解析与解决方案,供开发者参考和练习。

一、矩形与圆形面积计算

描述:根据用户输入的图形类型(矩形或圆形)和相关参数,计算其面积并输出结果。

代码片段解析

import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        String length = input.next();        {            if (length.contentEquals("矩形")) {                a = input.nextDouble();                b = input.nextDouble();                ans = a * b;                System.out.println("矩形面积=" + ans);            } else if (length.contentEquals("圆形")) {                r = input.nextDouble();                ans = 3.14 * r * r;                System.out.println("圆形面积=" + ans);            } else {                System.out.println("输入的不是圆形或矩形");            }        }    }}

解决方案

  • 读取用户输入的图形类型字符串。
  • 根据图形类型分别读取相关参数(矩形的长和宽,圆形的半径)。
  • 根据公式计算面积:
    • 矩形面积:长×宽
    • 圆形面积:π×半径²(这里使用了近似值3.14)。
  • 输出计算结果。
  • 技术点

    • 使用Scanner读取用户输入。
    • 条件判断根据图形类型选择不同的计算方式。
    • 使用System.out.println输出结果。

    二、温度转换

    描述:根据用户输入的温度值,转换成特定单位并输出结果。

    代码片段解析

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scan = new Scanner(System.in);        float c; // 定义温度变量        float f = scan.nextFloat(); // 读取用户输入的温度值        c = f - 50; // 假设是摄氏温度转换为华氏温度        c = c * 5;        c = c / 9;        c = c + 10;        System.out.printf("The temprature is ");        System.out.printf("%.2f", c);    }}

    解决方案

  • 读取用户输入的温度值。
  • 根据公式将温度转换为目标单位:
    • 先减去50,再乘以5,除以9,最后加上10。
  • 格式化输出结果,保留两位小数。
  • 技术点

    • 使用Scanner读取浮点数输入。
    • 使用System.out.printf格式化输出结果,保留两位小数。

    三、数字加密

    描述:将输入的数字加密,实现数字的每一位循环移动。

    代码片段解析

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int n = input.nextInt();        int i, j, f; // 定义循环变量和结果变量        f = 0;        if (n <= 1) {            System.out.println("输入n不是大于1的正整数");        } else {            for (i = 2; i <= n; i++) {                for (j = 2; j < 4; j++) {                    // 实现数字的每一位循环移动                    // 这里使用了模拟加密逻辑,具体实现可根据需求调整                    f++;                }            }            System.out.println("加密结果为:" + f);        }    }}

    解决方案

  • 读取用户输入的数字。
  • 判断输入是否为大于1的正整数,如果不是,提示错误信息。
  • 如果是,进行数字加密处理:
    • 对于每一位数字,进行特定的加密操作(如循环移动)。
  • 最终输出加密后的结果。
  • 技术点

    • 使用Scanner读取整数输入。
    • 使用双重循环实现加密逻辑。
    • 条件判断处理输入的合法性。

    四、判断输入是否为大于1的正整数

    描述:读取用户输入的整数,判断是否为大于1的正整数,并给出相应的提示。

    代码片段解析

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int n = input.nextInt();        int i, j, f; // 定义循环变量和结果变量        f = 0;        if (n <= 1) {            System.out.println("输入n不是大于1的正整数");        } else {            for (i = 2; i <= n; i++) {                for (j = 2; j < 4; j++) {                    // 实现数字的加密逻辑                    f++;                }            }            System.out.println("加密结果为:" + f);        }    }}

    解决方案

  • 读取用户输入的整数。
  • 判断输入是否为大于1的正整数。
  • 如果是,进行数字加密处理,并输出结果。
  • 如果不是,提示错误信息。
  • 技术点

    • 使用Scanner读取整数输入。
    • 使用双重循环实现加密逻辑。
    • 条件判断处理输入的合法性。

    五、数字加密(另一种实现方式)

    描述:对输入的数字进行加密处理,实现每一位数字的循环移动。

    代码片段解析

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int n = input.nextInt();        int a[] = { -2, 1, 4, 8, 5, 12, 17, 23, 45, 56, 90, 100 };        int i, j, k, mult;        int temp = n;        for (i = 0; i < 4; i++) {            mult = temp % 10;            temp = temp / 10;            mult = (mult + 9) % 10;            a[i] = mult;        }        k = a[2];        a[2] = a[0];        a[0] = k;        k = a[3];        a[3] = a[1];        a[1] = k;        int sum = a[0] + a[1] * 10 + a[2] * 100 + a[3] * 1000;        System.out.println("加密后的数字为:" + sum);    }}

    解决方案

  • 定义一个数组存储数字的每一位。
  • 对输入的数字进行循环移动处理,每一位数字都进行特定的加密操作。
  • 交换数组中的某些位,改变数字的顺序。
  • 计算加密后的数字值并输出结果。
  • 技术点

    • 数组的使用来存储数字的每一位。
    • 使用循环和模运算进行数字加密。
    • 数组元素的交换实现数字顺序的改变。

    六、循环求和与乘积

    描述:根据用户输入的数值,计算从1到该数值的所有数的和与乘积,并输出结果。

    代码片段解析

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int rp = input.nextInt();        int f = 1;        for (int f = 1; f <= rp; f++) {            int a = input.nextInt();            int n = input.nextInt();            int i, sum, mult;            sum = 0;            mult = 1;            for (i = 1; i <= n; i++) {                mult *= a;            }            for (i = 1; i <= n; i++) {                sum += a;            }            System.out.println("乘积为:" + mult);            System.out.println("和为:" + sum);        }    }}

    解决方案

  • 读取用户输入的乘法运算的参数:
    • a:被乘数。
    • n:乘法的次数。
  • 计算从1到a的所有数的乘积:
    • 初始化mult为1。
    • 使用双重循环,外层循环控制乘法次数,内层循环逐个乘以a
  • 计算从1到a的所有数的和:
    • 初始化sum为0。
    • 使用双重循环,外层循环控制加法次数,内层循环逐个加上a
  • 输出乘积和和的结果。
  • 技术点

    • 使用Scanner读取输入参数。
    • 使用双重循环实现乘积和和的计算。
    • 输出结果使用System.out.println函数。

    七、数字加密(基于数组的位操作)

    描述:对输入的数字进行加密处理,实现每一位数字的位操作。

    代码片段解析

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        int number = input.nextInt();        int digit1, digit2, digit3, digit4, newnum;        int temp; // 用于存储数字的每一位        int[] a = { 0, 0, 0, 0 };        int mod;        mult = number;        for (i = 1; i <= 4; i++) {            mod = mult % 10;            mult = mult / 10;            mod = (mod + 9) % 10;            mod = mod % 10;            a[i - 1] = mod;        }        k = a[2];        a[2] = a[0];        a[0] = k;        k = a[3];        a[3] = a[1];        a[1] = k;        sum = a[0] + a[1] * 10 + a[2] * 100 + a[3] * 1000;        newnum = sum;        System.out.println("加密后的数字为:" + newnum);    }}

    解决方案

  • 读取用户输入的数字。
  • 将数字拆分成各个位数,并进行特定的位操作(如加9再取模)。
  • 调整数组中的某些位,改变数字的顺序。
  • 计算加密后的数字值并输出结果。
  • 技术点

    • 数组的使用来存储数字的每一位。
    • 使用循环和模运算进行数字加密。
    • 数组元素的交换实现数字顺序的改变。

    八、判断闰年

    描述:根据用户输入的年份,判断该年份是否为闰年,并输出结果。

    代码片段解析

    import java.util.Scanner;public class Main {    public static void main(String[] args) {        int m, n;        Scanner scanner = new Scanner(System.in);        m = scanner.nextInt();        n = scanner.nextInt();        for (int i = m; i <= n; i++) {            if ((i % 4 == 0 && i % 100 != 0) || (i % 400 == 0)) {                System.out.println(i);            }        }    }}

    解决方案

  • 读取用户输入的两个整数mn
  • 对于每一个介于mn之间的整数i,判断是否为闰年:
    • 如果i能被4整除但不能被100整除,或者能被400整除,则为闰年。
  • 如果是闰年,输出该年份。
  • 技术点

    • 使用Scanner读取输入参数。
    • 使用双重循环遍历从mn的所有年份。
    • 条件判断判断闰年的条件,并输出结果。

    以上是一些常见的Java编程练习题及其解决方案,希望对开发者有所帮助。

    转载地址:http://fofg.baihongyu.com/

    你可能感兴趣的文章
    OpenMetadata 命令执行漏洞复现(CVE-2024-28255)
    查看>>
    OpenMMLab | S4模型详解:应对长序列建模的有效方法
    查看>>
    OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
    查看>>
    OpenMMLab | 不是吧?这么好用的开源标注工具,竟然还有人不知道…
    查看>>
    OpenMMLab | 面向多样应用需求,书生·浦语2.5开源超轻量、高性能多种参数版本
    查看>>
    OpenMP 线程互斥锁
    查看>>
    OpenMV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    OpenObserve云原生可观测平台本地Docker部署与远程访问实战教程
    查看>>
    openoffice使用总结001---版本匹配问题unknown document format for file: E:\apache-tomcat-8.5.23\webapps\ZcnsDms\
    查看>>
    OpenPPL PPQ量化(2):离线静态量化 源码剖析
    查看>>
    OpenPPL PPQ量化(3):量化计算图的加载和预处理 源码剖析
    查看>>
    OpenPPL PPQ量化(4):计算图的切分和调度 源码剖析
    查看>>
    OpenPPL PPQ量化(5):执行引擎 源码剖析
    查看>>
    openpyxl 模块的使用
    查看>>
    OpenResty & Nginx:详细对比与部署指南
    查看>>
    OpenResty(nginx扩展)实现防cc攻击
    查看>>
    openresty完美替代nginx
    查看>>
    Openresty框架入门详解
    查看>>
    OpenResty(1):openresty介绍
    查看>>
    OpenResty(2):OpenResty开发环境搭建
    查看>>