课程内容:流程控制、运算符(算术/赋值/比较/逻辑/位/三目)、运算符优先级
提交方式:在提交\姓名\目录下创建对应的 Java 源文件
截止时间:下次上课前
难度:⭐
知识点:if-else、逻辑运算符、算术运算符
从键盘输入一个年份(整数),判断该年份是否为闰年。
闰年规则(满足其一即可):
要求:
int year 变量并赋值为要判断的年份if-else 分支结构&& 和 ||xxxx 年是闰年 或 xxxx 年不是闰年示例输出:
2024 年是闰年
2025 年不是闰年
难度:⭐
知识点:三目运算符、if-else
定义三个整数变量 a、b、c,找出其中的最大值并输出。
要求:
if-else 实现示例输出:
三个数中最大的值是: 78
难度:⭐
知识点:位运算符
定义两个整数 int m = 27、int n = 15,计算并输出以下位运算的结果,并在注释中写出每一步的二进制运算过程。
int m = 27, n = 15;
// 1. m & n (按位与)
// 2. m | n (按位或)
// 3. m ^ n (按位异或)
// 4. ~m (按位取反)
// 5. m << 2 (左移2位)
// 6. n >> 2 (右移2位)
示例注释格式:
// 27 & 15
// 0001 1011 ← 27
// & 0000 1111 ← 15
// --------
// 0000 1011 → 11
System.out.println("27 & 15 = " + (27 & 15)); // 11
难度:⭐⭐
知识点:算术运算符(/、%)、if-else
"水仙花数"是指一个三位数,其各位数字的立方和等于该数本身。例如:153 = 1³ + 5³ + 3³。
要求:
int num = 153;(可自行修改测试其他数字)/ 和 % 分别取出个位、十位、百位示例输出:
153 是水仙花数
提示:
int num = 153;
int bai = num / 100; // 百位
int shi = num / 10 % 10; // 十位
int ge = num % 10; // 个位
难度:⭐⭐
知识点:if-else、算术运算符、Scanner(选做)
定义两个整数 a 和 b,以及一个字符变量 operator(取值为 '+'、'-'、'*'、'/'、'%'),根据运算符输出对应的运算结果。
要求:
if-else if-else 多分支判断/ 时,判断除数是否为 0,如果是则输出"除数不能为 0"% 时,同样判断除数是否为 0示例输出 1:
a = 20, b = 7, operator = '%'
20 % 7 = 6
示例输出 2:
a = 20, b = 0, operator = '/'
除数不能为 0
难度:⭐⭐
知识点:if-else if-else、逻辑运算符、三目运算符
结合课堂练习的成绩等级判定,增加以下功能:
要求:
double score = 85.5;(可自行修改测试)if-else 实现以下等级判定:| 分数范围 | 等级 | 评价语 |
|---|---|---|
| 90 ≤ score ≤ 100 | A | 优秀,继续保持! |
| 80 ≤ score < 90 | B | 良好,再接再厉! |
| 70 ≤ score < 80 | C | 中等,还需努力! |
| 60 ≤ score < 70 | D | 及格,危险边缘! |
| 0 ≤ score < 60 | E | 不及格,加油啊! |
| 其他 | 无效 | 分数错误! |
示例输出:
成绩: 85.5 分
等级: B - 良好,再接再厉!
是否及格: 是
难度:⭐⭐⭐
知识点:算术运算符、位运算符、三目运算符、综合运用
设计一个简单的 4 位数字加密系统。
加密规则:
1234)示例:
原始数字: 1234
每位+5后: 6789
取余10后: 6789
交换后: 9876
加密结果: 9876
要求:
/、%)取出每位数字加密结果 ^ 0xAA难度:⭐⭐⭐
知识点:运算符优先级、自增/自减、综合运用
请问以下代码的输出结果是什么?先手算,再用 IDE 验证。
public class IQTest {
public static void main(String[] args) {
int a = 5, b = 3, c = 2;
int result1 = a++ + ++b * c--;
System.out.println("result1 = " + result1);
System.out.println("a = " + a + ", b = " + b + ", c = " + c);
int x = 10, y = 4;
boolean flag = (x > y) && (++x > 10) || (y-- < 3);
System.out.println("flag = " + flag);
System.out.println("x = " + x + ", y = " + y);
int m = 8, n = 3;
int r = m++ - --n + ++m - n--;
System.out.println("r = " + r);
System.out.println("m = " + m + ", n = " + n);
}
}
要求:
&& 短路特性对执行结果的影响难度:⭐⭐⭐
知识点:位运算符(&、|、~、<<)、综合运用
在计算机系统中,常用位运算来实现权限控制。假设一个系统的权限定义如下:
// 权限定义(每个权限占用一个二进制位)
int READ = 1 << 0; // 0001 = 1 读权限
int WRITE = 1 << 1; // 0010 = 2 写权限
int EXECUTE = 1 << 2; // 0100 = 4 执行权限
int DELETE = 1 << 3; // 1000 = 8 删除权限
要求:
int userPerm = 0;(初始无权限)| 赋予用户读、写、执行权限:userPerm = READ | WRITE | EXECUTE;& 判断用户是否拥有某个权限(如判断是否有删除权限)& 和 ~ 取消用户的写权限示例输出:
初始权限: 0 (无权限)
赋予权限(读|写|执行): 7
是否有删除权限? false
取消写权限后: 5
最终权限: 读取=有, 写入=无, 执行=有, 删除=无
提示:
// 判断是否有写权限
boolean hasWrite = (userPerm & WRITE) == WRITE;
// 取消写权限
userPerm = userPerm & ~WRITE;
提交 文件夹下创建【以你名字命名】的文件夹,然后复制 Java 源文件。比如:每个题目一个文件,命名格式:Demo_题目编号_姓名.java
Demo_01_张三.java文件头部使用文档注释,包含:
/**
* @author 你的姓名
* @title 题目X:题目名称
* @create 2026/7/14
*/
代码整洁,有必要的注释
基础题(1~3)和进阶题(4~6)为必做
挑战题(7~9)为 选做,学有余力的同学尝试完成