第1关:学习-Java顺序结构之无输入输出给定图案
任务描述
本关任务:输出一个由组成的实心等腰三角形,如图 1 所示。*
相关知识
为了完成本关任务,你需要掌握:
1,Java 程序基本结构;
2,Java 关键字;
3,注释的使用;
4,显示器输出;
5,Java 控制结构;
6,字符串常量的定义;
7,ASCII 码和 Unicode 字符集。
/**
* 任务:输出实心等腰三角形。
* 类名为:OutputTriangle
*/
public class OutputTriangle {
public static void main(String[] args) {
// 请在下面的 Begin-End 处,按照所给的代码注释完成相应代码的编写
/********** Begin **********/
// 使用空格和*,向控制台输出一个高为4,底为7的等腰三角形,最后一个输出采用不换行输出
System.out.println(" *");
System.out.println(" ***");
System.out.println(" *****");
System.out.print("*******");
/********** End **********/
}
}
第2关:学习-Java顺序结构之无输入求多边形的面积
任务描述
本关任务:计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长 4 厘米,等腰三角形底边为正方形的一条边,其到对角顶点的高为 2.6 厘米。
输出格式:该多边形的面积为 xxx
xxx 为多边形的面积
相关知识
为了完成本关任务,你需要掌握:
1,标识符的命名规则;
2,变量和常量的定义;
3,整型、浮点型变量和常量的定义与使用;
4,算术表达式及其优先级;
5,使用并置符号‘+’合并多个字符串常量。
/**
* 任务:计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长4厘米,等腰三角形底边为正方形的一条边,其到对角顶点的高为2.6厘米。
* 类名为:PolygonalArea
*/
public class PolygonalArea {
public static void main(String[] args) {
int square_length = 4; // 声明int型变量square_length用于表示正方形边长,并赋值 4
double triangle_h = 2.6; // 声明double型变量triangle_h用于表示三角形底边上的高,并赋值 2.6
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第1步:计算正方形面积,赋值给变量area_square
int area_square;
area_square=square_length*square_length;
// 第2步:计算等腰三角形面积,赋值给变量area_triangle
double area_triangle;
area_triangle=(triangle_h*square_length)/2;
// 第3步:计算多边形面积,即正方形面积和等腰三角形面积,赋值给变量area_total
double area_total;
area_total=area_square+area_triangle;
// 第4步:打印输出多边形面积,即使用不换行输出语句输出变量area_total的值 输出格式:该多边形的面积为 xxx 其中xxx 为多边形的面积
System.out.print("该多边形的面积为 "+area_total);
/********** End **********/
}
}
第3关:练习-Java顺序结构之无输入求平抛小球与抛出点之间的距离
任务描述
物体以一定的初速度水平方向抛出,如果物体仅受重力作用,这样的运动叫做平抛运动。平抛运动可看作水平方向的匀速直线运动以及竖直方向的自由落体运动的合运动。如图 1 所示。
假设v0表示水平抛出的初速度,t表示水平抛出后,小球飞行的时间,g表示重力加速度。
平抛运动经过 t 秒的水平位移s计算公式为:
垂直方向位移h的计算公式为:
那么经过t秒后,小球与抛出点距离d的计算公式为:
本关任务:一小球以 10 米/秒的水平速度平抛,重力加速度取 9.8 ,在忽略空气阻力的情况下,求经过时间 3 秒后,小球所在位置与抛出点之间的距离 (假设小球距地面足够高)。
输出格式:小球所在位置与抛出点之间的距离为 xxx 米。
其中 xxx 为求出的距离。
/**
* 任务:一小球以 10米/秒 的水平速度平抛,重力加速度取9.8米/秒2,
* 在忽略空气阻力的情况下,求经过时间 3 秒后,
* 小球所在位置与抛出点之间的距离 (假设小球距地面足够高)。
* 类名为:Distance
*/
public class Distance {
public static void main(String[] args) {
double g = 9.8; // 声明浮点型变量 g,用于表示重力加速度
int v0 = 10; // 声明整型变量 v0, 用于表示水平初速度
int t = 3; // 声明整型变量 t, 用于表示小球飞行的时间
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:计算水平距离,并赋值给s
int S=v0*t;
// 第二步:计算垂直距离,并赋值给h
double H=((Math.pow(t, 2))*g)/2;
// 第三步:计算小球与原点的距离,并赋值给d,Math.sqrt()表示的是对括号里的值求平方根
double d=Math.sqrt((S*S)+(H*H));
// 第四步:打印出小球与原点的距离d 输出格式:小球所在位置与抛出点之间的距离为 xxx 米。 其中 xxx 为求出的距离
System.out.print("小球所在位置与抛出点之间的距离为 "+d+" 米。");
/********** End **********/
}
}
第4关:学习-Java顺序结构之无输入求星期几
任务描述
本关任务:2017 年 1 月 1 日是星期天,求 10 天后是星期几。
相关知识
1,为了完成本关任务,你需要掌握:
2,% 运算符及其优先级;
3,格式化输出整型、浮点型数据。
/**
* 任务:2017 年 1 月 1 日是星期天,求 10 天后是星期几。
* 类名为:Week
*/
public class Week {
public static void main(String[] args) {
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:声明 int 型变量 pre,值为一周的总天数
int pre=7;
// 第二步:声明 int 型变量 sum,值为几天后加上周几(2017 年 1 月 1 日是周几)的值
int sum=10+7;
// 第三步:求天数除以一周的天数的余数,这个余数就是10天后为周几的值了
int day=sum%pre;
// 第四步:格式化输出这个值 如果结果是1,那么输出格式为:10天后是星期 1。
System.out.print("10天后是星期 "+day+"。");
/********** End **********/
}
}
第5关 学习-Java顺序结构之有输入格式化输出平抛小球与抛出点之间的距离
任务描述
本关任务:一小球以 v0米/秒的水平速度平抛,重力加速度取 9.8,在忽略空气阻力的情况下,求经过时间 t 秒后,小球所在位置与抛出点之间的距离 (假设小球距地面足够高),输出结果四舍五入后保留两位小数。
相关知识
为了完成本关任务,你需要掌握:
1,Scanner 类 reader 对象;
2,输入整型和浮点型数据。
/**
* 任务:一小球以 v0 米/秒 的水平速度平抛,重力加速度取9.8米/秒2,
* 在忽略空气阻力的情况下,求经过时间 t 秒后,
* 小球所在位置与抛出点之间的距离 (假设小球距地面足够高)。
* 类名为:Distance
*/
import java.util.Scanner;
public class Distance {
public static void main(String[] args) {
double g = 9.8; // 声明浮点型变量 g,用于表示重力加速度
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:创建一个Scanner的实例对象,命名为reader
Scanner reader=new Scanner(System.in);
// 第二步:获取键盘第一次输入的值,将其命名为V0,用于表示水平初速度
double v0=reader.nextDouble();
// 第三步:获取键盘第二次输入的值,将其命名为t,用于表示小球飞行的时间
double t=reader.nextDouble();
// 第四步:计算水平距离,并赋值给s
double s=v0*t;
// 第五步:计算垂直距离,并赋值给h
double h=((Math.pow(t, 2))*g)/2;
// 第六步:计算小球与原点的距离,并赋值给d,Math.sqrt()可以用来对括号里的值求平方根
double d=Math.sqrt((s*s)+(h*h));
// 第七步:打印出小球与原点的距离d,最后结果四舍五入后保留两位小数
System.out.printf("%.2f",d);
/********** End **********/
}
}
第6关:学习-Java顺序结构之数学函数之求两数最大者
任务描述
本关任务:获取键盘两次输入的值,输入两者中的最大数。
相关知识
Java 的 Math 类中提供了的方法可以很方便的实现本关任务。
/**
* 任务:获取键盘两次输入的值,输出两者中的最大数。
* 类名为:CompareMax
*/
import java.util.Scanner;
public class CompareMax {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:获取键盘第一次输入的值
double x=reader.nextDouble();
// 第二步:获取键盘第二次输入的值
double y=reader.nextDouble();
// 第三步:比较两数大小
double Max=Math.max(x, y);
// 第四步:不换行输出最大的那个值
System.out.print(Max);
/********** End **********/
}
}
第7关 练习-Java顺序结构之数学函数之根据三角形三边长求面积
任务描述
本关任务:根据从键盘输入的三角形的三个边长,求出三角形的面积,忽略三边长度不能组成一个三角形的情况,最后结果保留两位小数。
任意三角形面积公式-海伦公式
已知三角形三边a、b、c,则
/**
* 任务:根据从键盘输入的三角形的三个边长,求出三角形的面积。
* 类名为:TriangleArea
*/
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:获取键盘三次输入的值
double a=reader.nextDouble();
double b=reader.nextDouble();
double c=reader.nextDouble();
// 第二步:根据三角形面积公式求取三角形面积
double p=(a+b+c)/2;
double area=Math.sqrt(p*(p-a)*(p-b)*(p-c));
// 第三步:格式化输出三角形的面积
System.out.printf("三角形的面积为:%.2f", area);
/********** End **********/
}
}
第8关:练习-Java顺序结构之数学函数之三角函数
任务描述
本关任务:从键盘输入的值分别为三角形的 a、b 两条边长和两边夹角 C 的角度,求出该三角形的面积,请对最终结果保留两位小数。
三角形面积公式
/**
* 任务:从键盘输入的值分别为三角形的 a、b 两条边长和两边夹角 C 的角度,求出该三角形的面积,请对最终结果保留两位小数。
* 类名为:TriangleArea
*/
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:获取键盘第一次输入的值
double a=reader.nextDouble();
// 第二步:获取键盘第二次输入的值
double b=reader.nextDouble();
// 第三步:获取键盘第三次输入的值
double C=reader.nextDouble();
// 第四步:求sinC的值
double radians=Math.toRadians(C);//角度转为弧度
double sinC=Math.sin(radians);
// 第五步:根据三角形面积公式求取三角形面积,此处用0.5代替1/2
double area=(a*b*sinC)/2.0;
// 第六步:不换行输出三角形的面积
System.out.printf("%.2f",area);
/********** End **********/
}
}
第9关:学习-Java顺序结构之字符变换之大小写字母转换
任务描述
本关任务:将键盘输入的大写字母转化为小写字母。
相关知识
为了完成本关任务,你需要掌握:
1,字符型变量和常量;
2,字符型数据的加减运算;
3,字符型数据的输入/输出。
/**
* 任务:将键盘输入的字符转化为小写字母。
* 类名为:LowerCase
*/
import java.util.Scanner;
public class LowerCase {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:获取键盘输入的值
String ch=reader.next();
// 第二步:将获取到的大写字母转化为小写字母
char CH=ch.charAt(0);
CH=(char)(CH+32);
// 第三步:不换行输出转化后的小写字母
System.out.print(CH);
/********** End **********/
}
}
第10关:学习-Java顺序结构之基本数据类型转换
任务描述
本关任务:变量 a 是一个 double 型的变量,请将其强转为 int 型,变量 b 是一个 short 型的变量,请将其转换为 double 型。
输出格式:先换行输出变量 a 转换后的结果,再不换行输出 b 转换后的结果。
相关知识
为了完成本关任务,你需要掌握:Java 中基本数据类型的转换
/**
* 任务:变量 a 是一个 double 型的变量,请将其强转为 int 型,
* 变量 b 是一个 short 型的变量,请将其转换为 double 型。
* 输出格式:先换行输出变量 a 转换后的结果,再不换行输出 b 转换后的结果。
* 类名为:Transform
*/
import java.util.Scanner;
public class Transform {
public static void main(String[] args) {
//创建一个Scanner的实例对象,命名为reader
Scanner reader = new Scanner(System.in);
// double型变量a
double a = reader.nextDouble();
// short型变量b
short b = reader.nextShort();
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:将double型变量a强转为int型
int A=(int)a;
// 第二步:将short型变量b转换为double型
double B=(double)b;
// 第三步:换行输出变量a转换后的结果
System.out.println(A);
// 第四步:不换行输出变量b转换后的结果
System.out.print(B);
/********** End **********/
}
}
第11关 练习-Java顺序结构综合练习一之银行复利计息收益计算
任务描述
本关任务:假定一个用户初始时向一个储蓄帐户中存了 1000 元人民币,年利率为 2.25%。那么月利率为 0.0225/12=0.001875。第一个月后,账户金额变为 1000(1+0.001875)=1001.875,第二个月后,账户金额变为 (1001.875) (1+0.001875)=1003.75351563,依次类推。编写一个程序,四输出 6 个月后的账户金额,最后结果舍五入后保留两位小数。
/**
* 任务:假定一个用户每月向一个储蓄帐户中存 1000 元人民币,年利率为 2.25%。那么月利率为 0.0225/12=0.001875。
* 编写一个程序,输出 6 个月后的账户金额。
* 类名为:BankRate
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
import java.util.Scanner;
// 第一步:创建一个名为 BankRate 的公开类
//第二步:在这个类中定义主方法
public class BankRate {
public static void main(String[] args) {
// 第三步:在主方法中计算第六个月后总资金为多少
double sum = Math.pow((1+0.001875),6);
// 第四步:格式化输出六个月后账户的总金额,结果保留两位小数
System.out.printf("%.2f",sum*1000);
}
}
/********** End **********/
第12关:练习- Java顺序结构综合练习二之温度换算
任务描述
本关任务:编写一个程序,依次将摄氏温度为 1°、2°、3°、4°、5° 转化为对应的华氏温度,将该值四舍五入保留两位小数后格式化输出, 摄氏温度和华氏温度转换公式如下:
华氏温度 = ( 9/5 ) × 摄氏温度 + 32。
输出格式例子:摄氏温度为20时,华氏温度为68.00。
/**
* 任务:编写一个程序,依次将摄氏温度为 1°、2°、3°、4°、5° 所对应的华氏温度的值四舍五入后保留两位小数输出, 摄氏温度和华氏温度转换公式如下:
* fahrenheit(华氏温度) = ( 9/5 ) × celsius(摄氏温度) + 32。
* 类名为:Temperature
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
import java.util.Scanner;
// 第一步:创建一个名为 Temperature 的公开类
// 第二步:在这个类中定义主方法
public class Temperature {
public static void main(String[] args) {
// 第三步:在主方法中依次计算摄氏温度为 1°、2°、3°、4°、5° 所对应的华氏温度的值,四舍五入后保留两位小数,最后格式化输出华氏温度的值,例子:摄氏温度为1时,华氏温度为xx。
int a[]= {1,2,3,4,5};
for(int i=0;i<5;i++) {
double s = 9/5.0*a[i] + 32;
System.out.print("摄氏温度为" + a[i] +"时,");
System.out.printf("华氏温度为%.2f。\n",s);
}
}
}
/********** End **********/
第13关:练习- Java顺序结构综合练习三之金融投资收益计算
任务描述
本关任务:编写程序,读入投资额、年利率和投资年限,利用下面公式计算投资的未来价值:
例如,如果输入投资额 1000、年利率 0.0325 和投资年限 1 年,则程序输出投资的未来价值为 1032.98 。
/**
* 任务:编写程序,读入投资额、年利率和投资年限,利用题目所给公式计算投资的未来价值
* 类名为:Finance
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:导入Scanner类
import java.util.Scanner;
// 第二步:创建一个名为 Finance 的公开类
// 第三步:定义主方法
public class Finance {
public static void main(String[] args) {
// 第四步:在主方法中,根据题目给出的计算投资的未来价值公式来计算未来价值
Scanner reader = new Scanner(System.in);
double money = reader.nextDouble();
double rate = reader.nextDouble();
int year = reader.nextInt();
double value = money*(Math.pow((1+(rate/12)),year*12)) ;
// 第五步:格式化输出未来价值,结果保留两位小数
System.out.printf("%.2f", value);
}
}
/********** End **********/