没有合适的资源?快使用搜索试试~ 我知道了~
内容概要:本文档提供了25道Java编程练习题,涉及基本语法、面向对象编程(OOP)、异常处理、接口与实现、抽象类等核心知识点。题目难度循序渐进,覆盖Java语言的基础概念、条件语句(如switch和if-else)、循环结构(如for和while)、数组操作、方法封装、继承、多态等方面。每个题目都有具体的编程任务和完整的参考解答代码示例。
适合人群:适用于有一定Java编程基础知识的学习者或开发者,特别是初学者或具有工作经验在1年左右的研发人员,有助于巩固编程基础并提升面向对象编程能力。
使用场景及目标:本题集可以帮助学习者逐步掌握Java编程技能,通过理论联系实际的方式,深入理解面向对象思想,学会运用各种控制流语句解决简单问题,熟练掌握常见数据结构的操作技巧,提高代码复用性,熟悉常见异常处理方式和接口的应用,培养解决实际问题的能力。同时,也是准备相关技术面试的理想资源。
阅读建议:建议从简单的例子入手,逐步挑战复杂的项目。对于每一个习题,先独立尝试写出自己的解法,再对照提供的答案改进完善自己的思路,尤其关注不同解决方案间的优劣对比以及良好的编码习惯。

题目 01:分支——两个骰子
编写 Java 应用程序:随机生成两个骰子的点数(1-6),如果点数和大于 7 输出“运气棒”,否
则输出“运气差”。(注:Math 类的静态方法 random()可以生成 0-1 的随机小数)
【参考答案】
//Math 类的静态方法 random 可以生成 0-1 的随机小数,请据此编写一个程序随机生成两个骰
子的点数(1-6),
//如果点数和大于 7 输出“运气棒”,否则输出“运气差”。
public class Test13 {
public static void main(String[] args) {
// 模拟投掷第一个骰子
int dice1 = (int) (Math.random() * 6) + 1;
// 模拟投掷第二个骰子
int dice2 = (int) (Math.random() * 6) + 1;
// 计算两个骰子的点数和
int sum = dice1 + dice2;
// 根据点数和输出结果
if (sum > 7) {
System.out.println("运气棒,两个骰子的点数和为: " + sum);
} else {
System.out.println("运气差,两个骰子的点数和为: " + sum);
}
}
}
题目 02:分支——成绩转换
编写一个 Java 应用程序,通过键盘输入一个整型变量 score 来记录学生的 5 分制成绩,利用
switch 语句结构实现以下功能:
(1)当输入的 score 值为 5 时,程序应输出“成绩 A 等”,表示学生成绩为最高等级;
(2)若 score 的值为 3 或者 4 时,输出“成绩 B 等”,代表成绩处于中等水平;
(3)当 score 的值是 0、1 或者 2 时,输出“成绩 C 等”,这意味着成绩处于较低水平;
(4)若输入的 score 值为除 0 - 5 之外的任何其他整数,则输出“成绩错误”,因为在 5 分制下
成绩只能是 0 - 5 之间的整数。
【参考答案】
import java.util.Scanner;
public class GradeApp {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入学生的 5 分制成绩: ");
int score = scanner.nextInt();

switch (score) {
case 5:
System.out.println("成绩 A 等");
break;
case 4:
case 3:
System.out.println("成绩 B 等");
break;
case 2:
case 1:
case 0:
System.out.println("成绩 C 等");
break;
default:
System.out.println("成绩错误");
break;
}
scanner.close();
}
}
题目 03:循环——特殊数字求和(各位数字相同)
编写 Java 应用程序:计算 7 + 77+ 777 + 7777 + …的前 10 项之和。
【参考答案】
public class Test
{
public static void main(String[] args)
{
long term = 7; // 初始项
long sum = 0; // 初始化总和为 0
// 计算前 10 项之和
for (int i = 1; i <= 10; i++)
{
sum += term; // 累加当前项
term = term * 10 + 7; // 计算下一项的值
}
// 输出结果
System.out.println("前 10 项之和为: " + sum);
}
}

题目 04:分支+循环——不能被 3 整除的数
编写 Java 应用程序:使用循环结构输出 100-150 之间不能被 3 整除的数,并且每行输出 5 个。
【参考答案】
public class Test14 {
public static void main(String[] args) {
int count = 0; // 计数器,用于控制每行输出的数字数量
for (int i = 100; i <= 150; i++) {
if (i % 3 != 0) { // 如果 i 不能被 3 整除
System.out.print(i + " "); // 输出 i
count++; // 计数器加 1
// 如果已经输出了 5 个数,则换行并重置计数器
if (count % 5 == 0) {
System.out.println();
}
}
}
// 如果最后一行不足 5 个数,也需要换行以保证格式统一
if (count % 5 != 0) {
System.out.println();
}
}
}
题目 05:一维数组——找到大于 10 的偶数
编 写 Java 应 用 程 序 : 使 用 for 循 环 语 句 , 输 出 如 下 数 组 中 所 有 大 于 10 的 偶 数 :
a[]={19,2,5,7,5,34,98,21,56}。
【参考答案】
public class Test24
{
public static void main(String[] args)
{
int[] a = {19, 2, 5, 7, 5, 34, 98, 21, 56};
System.out.println("大于 10 的偶数:");
for (int num : a)
{
if (num > 10 && num % 2 == 0)
{
System.out.print(num + " ");
}
}

}
}
题目 06:二维数组——找出极值
编写 Java 应用程序:用双层循环结构,找出如下二维数组 a[][]={{3,2,6},{6,8,2,10},{5}, {12,3,23}}
中最大的元素和最小的元素,。
【参考答案】
public class Test22 {
public static void main(String[] args) {
int[][] a = {{3, 2, 6}, {6, 8, 2, 10}, {5}, {12, 3, 23}};
int max =a[0][0];
int min = a[0][0];
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) {
int currentElement = a[i][j];
if (currentElement > max) {
max = currentElement;
}
if (currentElement < min) {
min = currentElement;
}
}
}
System.out.println("最大的元素是: " + max);
System.out.println("最小的元素是: " + min);
}
}
题目 07:分支——字符串长度
编写 Java 应用程序:用户输入一个字符串(通过 Scanner 对象的 nextLine 方法实现)。如果字
符串的长度小于 5,输出“短字符串”;如果字符串的长度大于等于 5 且小于 10,输出“中等
长度字符串”;如果字符串的长度大于等于 10,输出“长字符串”。
【参考答案】
import java.util.Scanner;
public class StringLengthClassification {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
int length = str.length();

if (length < 5) {
System.out.println("短字符串");
} else if (length < 10) {
System.out.println("中等长度字符串");
} else {
System.out.println("长字符串");
}
}
}
题目 08:几何——圆形
设计一个 Java 应用程序,包含两个类:圆形类(Circle)和主测试类(Test)。具体要求
如下:
(1)圆形类(Circle)的设计要求:
属性:半径(radius):类型为 double;圆周率(pi):类型为 double,定义为静态常量。
方法:double getCircumference()返回圆的周长;double getArea()返回圆的面积。
构造方法:接受半径作为参数,为半径属性进行初始化。
(2)主测试类(Test)的设计要求:在该类的 main 方法中创建一个圆形类(Circle)的
对象。测试该圆形对象的属性和方法,包括调用 getCircumference()和 getArea()方法,
并显示结果。
【参考答案】
// 圆形类 Circle
public class Circle {
private double radius; // 半径
private static final double pi = 3.14159; // 圆周率
// 构造方法
public Circle(double radius) {
this.radius = radius;
}
// 计算周长的方法
public double getCircumference() {
return 2 * pi * radius;
}
// 计算面积的方法
public double getArea() {
return pi * radius * radius;
}
}
// 主测试类 Test
public class Test {
public static void main(String[] args) {
// 创建 Circle 类的对象
剩余27页未读,继续阅读
资源推荐
资源评论
128 浏览量


118 浏览量


133 浏览量
2023-03-14 上传


103 浏览量

147 浏览量
2022-05-24 上传
191 浏览量
2023-04-20 上传

152 浏览量

152 浏览量
110 浏览量
资源评论


长安城没有风
- 粉丝: 804
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2015年电子商务农业协会微信推广方案.doc
- 计算机技术与科学在未来的具体发展趋势.docx
- iPhone4游戏软件安装方法.doc
- 跨平台的安全运维建设实践-青藤云安全.pdf
- 浅析计算机信息处理技术在办公自动化中的应用.docx
- 计算机网络技术在计生药具档案管理中的价值分析.docx
- 公路工程项目管理模式探讨.docx
- 区块链+保险会是什么样子?有哪些项目?.docx
- VBACCESS数据库应用课程研究设计贸易公司管理信息系统【总报告】.doc
- VMware-vSphere虚拟化实施手册及故障案例.docx
- 现代消防通信新技术.doc
- 信息化环境下小学英语写作教学策略探究.docx
- 网络课程视频资源制作的形式美学思考.docx
- 会计信息化下内部控制审计探究.docx
- 网络计划技术在工程管理中的应用.docx
- Flash制作方法.ppt
安全验证
文档复制为VIP权益,开通VIP直接复制
