博客
关于我
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/

    你可能感兴趣的文章
    Nodejs异步回调的处理方法总结
    查看>>
    NodeJS报错 Fatal error: ENOSPC: System limit for number of file watchers reached, watch ‘...path...‘
    查看>>
    Nodejs教程09:实现一个带接口请求的简单服务器
    查看>>
    nodejs服务端实现post请求
    查看>>
    nodejs框架,原理,组件,核心,跟npm和vue的关系
    查看>>
    Nodejs模块、自定义模块、CommonJs的概念和使用
    查看>>
    nodejs生成多层目录和生成文件的通用方法
    查看>>
    nodejs端口被占用原因及解决方案
    查看>>
    Nodejs简介以及Windows上安装Nodejs
    查看>>
    nodejs系列之express
    查看>>
    nodejs系列之Koa2
    查看>>
    Nodejs连接mysql
    查看>>
    nodejs连接mysql
    查看>>
    NodeJs连接Oracle数据库
    查看>>
    nodejs配置express服务器,运行自动打开浏览器
    查看>>
    Nodemon 深入解析与使用
    查看>>
    node不是内部命令时配置node环境变量
    查看>>
    node中fs模块之文件操作
    查看>>
    Node中同步与异步的方式读取文件
    查看>>
    Node中的Http模块和Url模块的使用
    查看>>