1.1. 训练考核知识点
if语句;
for循环语句;
1.2. 训练描述
使用for循环,求出1-100之间的奇数之和.
1.3. 操作步骤描述
1.定义一个变量,用来记录奇数的累加和;
2.for循环得到1到100之间的每个数字;
3.在for循环里面,判断这个数字是否为奇数;
4.如果为奇数,就与变量累加;
5.for循环结束后,打印累加和;
public class Test01 {
public static void main(String[] args) {
int ji = 0;
int sum = 0;
for (int i = 1; i <= 100; i++) {
ji = i % 2 ==0?0:i;
sum+=ji;
}
System.out.println("1-100之间的奇数之和:"+sum);
}
}
2.1. 训练考核知识点
选择结构;
循环结构;
2.2. 训练描述
求出1到100之间的既是3的倍数又是5倍数的数字之和.
2.3. 操作步骤描述
1.定义一个变量,记录累加求和
2.循环遍历1到100之间的每个数字
3.再循环中判断该数是否为既是3的倍数又是5倍数
4.如果满足条件对该数进行累加求和
6.循环结束后打印求和的变量
public class Test02 {
public static void main(String[] args) {
int j = 0;
int sum = 0;
for (int i = 1; i <= 100; i++) {
j = (i % 3 ==0 & i %5 ==0)?i:0;
sum+=j;
System.out.println(j);
}
System.out.println("1-100之间的奇数之和:"+sum);
}
}
3.1. 训练考核知识点
选择结构;
循环结构;
3.2. 训练描述
从键盘上录入一个大于100的三位数,求出100到该数字之间满足如下要求的数字之和:
1.数字的个位数不为7;
2.数字的十位数不为5;
3.数字的百位数不为3;
在这里插入代码片
3.3. 操作步骤描述
1.从键盘上录入一个三位数;
2.定义一个变量,用来记录满足条件的数字累加之和;
3.使用for循环获取100到该数字之间的所有数字;
4.得到当前拿到的这个数的个位数,十位数,百位数;
5.判断个位数不为7,十位数不为5,百位数不为3;
6.如果满足条件就累加;
7.循环结束后打印累加之和;
public class Test03 {
public static void main(String[] args) {
int j = 0;
int sum = 0;
java.util.Scanner input = new java.util.Scanner(System.in);
System.out.println("从键盘上录入一个大于100的三位数");
int a = input.nextInt();
int bai = a/100;
int shi = a%100/10;
int ge = a%100%10;
for (int i = 100; i < a; i++) {
j = ge!=7 & shi!=5 & bai!=3 ?i :0;
sum += j;
}
System.out.println("100到该数字之间满足要求的数字之和:"+sum);
}
}
4.1. 训练考核知识点
switch语句;
循环结构;
4.2. 训练描述
请按如下要求编写程序,打印菜单:
1.从键盘上录入一个1到5的数字;
2.当数字为1时打印菜单"新建";
当数字为2时打印菜单"打开文件";
当数字为3时打印菜单"保存";
当数字为4时打印菜单"刷新";
当数字为5时打印菜单"退出",并退出程序;
此行代码可以终止java程序运行: System.exit(0);
4.3. 操作步骤描述
1.从键盘上录入一个三位数;
2.使用switch语句判断录入的数字为哪个菜单编号,并打印对应的菜单名称;
3.使用while循环,重复执行1,2两个步骤;
public class Test04 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
while (true) {
System.out.println("从键盘上录入一个1到5的数字:");
int j = input.nextInt();
switch (j) {
case 1:
System.out.println("新建");
break;
case 2:
System.out.println("打开文件");
break;
case 3:
System.out.println("保存");
break;
case 4:
System.out.println("刷新");
break;
case 5:
System.out.println("退出");
System.exit(0);
default:
System.out.println("输入错误");
break;
}
}
}
}
5.1. 训练考核知识点
循环结构;
算数运算符;
5.2. 训练描述
请按如下要求编写程序,打印菜单:
2个一行打印水仙花数(中间用空格隔开),最后打印水仙花输的总个数
5.3. 操作步骤描述
A:定义统计变量,初始化值是0
B:获取三位数,用for循环实现
C:获取每个位上的数据
D:判断数据是否是水仙花数
如果是,就统计变量++
打印该水仙花数(不换行,数字后面加空格)
判断总数量是否是2的倍数
如果是就打印换行
E:输出统计变量
//水仙花数是指一个 n 位数(n≥3 ),
//它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)
public class Test05 {
public static void main(String[] args) {
int sum = 0;
for (int i = 100; i <= 999; i++) {
int bai = i/100;
int shi = i%100/10;
int ge = i%100%10;
int j = ge*ge*ge +shi*shi*shi + bai*bai*bai;
if (i == j) {
System.out.print(i+" ");
sum++;
if (sum%2 ==0){
System.out.println();
}
}
}
System.out.println("水仙花输的总个数:"+sum);
}
}
6.1. 训练考核知识点
循环结构;
6.2. 训练描述
猜数字小游戏
系统产生一个1-100之间的随机数,请猜出这个数据是多少?
6.3. 操作步骤描述
A:系统产生一个1-100之间的随机数
Random r = new Random();
int number = r.nextInt(100)+1;
B:键盘录入我们要猜的数据
C:比较这两个数据,看我们猜的是否正确
如果大了,提示:你猜的数据大了
如果小了,提示:你猜的数据小了
如果相等,提示:恭喜你,猜中了
D:为了实现多次猜数据,我们就要加入循环,而我们又不知道猜多少次能中。怎么办呢?
死循环:while(true) {…}
for(; {…}
public class Test06 {
public static void main(String[] args) {
java.util.Scanner input = new java.util.Scanner(System.in);
java.util.Random r = new java.util.Random();
int i = r.nextInt(100)+1;
System.out.println(i);
System.out.println("請輸入一个1-100之间的随机数");
wc :while(true){
int a = input.nextInt();
if(a == i){
System.out.println("恭喜答对了");
break wc;
}else if(a<i){
System.out.println("答错了,你猜的数据小了,请重新输入");
}else if(a>i){
System.out.println("答错了,你猜的数据大了,请重新输入");
}
}
}
}
1.1. 训练描述
分析以下需求,并用代码实现:
1.珠穆朗玛峰高度为8848米,有一张足够大的纸,厚度为0.0001米。
2.请问,我折叠多少次,可以折成珠穆朗玛峰的高度。
public class TZ01 {
public static void main(String[] args) {
double high = 0.001;
int i=0;
while(high<=8488) {
high +=high;
i++;
}
System.out.println("我折叠"+i+"次,可以折成超过珠穆朗玛峰的高度"+",高度:"+high);
}
}
2.1. 训练描述
按要求打印数字
2.2. 操作步骤描述
1.打印1到100之内的整数,但数字中包含9的要跳过
2.每行输出5个满足条件的数,之间用空格分隔
3.如:1 2 3 4 5
public class TZ02 {
public static void main(String[] args) {
int sum=0;
for (int i = 1; i <= 100; i++) {
sum++;
int ge = i%10;
int shi = i/10;
if(ge==9 || shi==9){
continue;
}else{
if(sum%5==0){
System.out.println();
}
System.out.print(i+" ");
}
}
}
}
3.1. 训练描述
按要求打印数字
3.2. 操作步骤描述
1.按照从大到小的顺序输出四位数中的个位+百位=十位+千位(3553,2332,1166,8228,3773)的数字及个数
2.每行输出5个满足条件的数,之间用空格分隔
3.如:9999 9988 9977 9966 9955
public class TZ03 {
public static void main(String[] args) {
int sum=0;
for(int i = 9999; i >= 1000; i--) {
int ge = i%10;
int shi = i%1000%100/10;
int bai = i%1000/100;
int qian = i/1000;
int a = (ge+bai);
int b = (shi +qian);
if(a == b){
sum++;
if(sum%5==0){
System.out.println();
}else{
System.out.print(i+" ");
}
}
}
}
}
4.1. 训练描述
循环录入某学生的5门课程的成绩并计算平均分。如果某分数录入为负,则停止录入并提示录入错误。
4.2. 操作步骤描述
1.创建键盘录入对象
2.定义int类型的变量sum(总分)和avg(平均分),两个变量的初始值位0,String类型的变量name,表示学员姓名
3.定义boolean类型的变量flag(表示该学生的5门成绩是否正确录入,如果有一个为负值,则负值为true,表示录入错误),初始值为false
4.利用for循环,录入5个成绩
(1)判断当前的成绩如果小于0,flag赋值为true,终止for循环
(2)否则,如果当前录入的成绩>=0,累加求和
5.打印结果
(1)如果flag为true,打印录入错误
(2)否则如果flag为false,打印总分和平均分
public class TZ04 {
public static void main(String[] args) {
int avg = 0;
int sum = 0;
java.util.Scanner input = new java.util.Scanner(System.in);
for (int i = 1; i <=5; i++) {
System.out.println("从键盘上录入学生的第"+i+"门课程的成绩:");
int a = input.nextInt();
if(a<0){
System.out.println("分数录入为负,停止录入");
System.exit(0);
}else{
sum += a;
}
}
avg = sum/5;
System.out.println("总分:"+sum+"和平均分"+avg);
}
}