第一关:无输入输出给定图案
本关任务:
输出一个由*
组成的实心等腰三角形,如图 1 所示。
图 1
代码如下
/**
* 任务:输出实心等腰三角形。
* 类名为:OutputTriangle
*/
public class OutputTriangle {
public static void main(String[] args) {
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4 - i - 1; j++) {
System.out.print(" ");
}
for (int k = 0; k < 2 * i + 1; k++) {
System.out.print("*");
}
System.out.println();
}
}
}
第二关:无输入求多边形的面积
本关任务:
计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长 4 厘米,等腰三角形底边为正方形的一条边,其到对角顶点的高为 2.6 厘米。
输出格式:
该多边形的面积为 xxxxx 为多边形的面积。
代码如下:
/**
* 任务:计算一个由正方形和等腰三角形组成的多边形的面积,其中正方形边长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 = square_length*square_length;
// 第2步:计算等腰三角形面积,赋值给变量area_triangle
double area_triangle = triangle_h*square_length/2;
// 第3步:计算多边形面积,即正方形面积和等腰三角形面积,赋值给变量area_total
double area_total = area_square+area_triangle;
// 第4步:打印输出多边形面积,即使用不换行输出语句输出变量area_total的值 输出格式:该多边形的面积为 xxx 其中xxx 为多边形的面积
System.out.print("该多边形的面积为 "+ area_total);
/********** End **********/
}
}
第三关:无输入求平抛小球与抛出点之间的距离
任务描述
物体以一定的初速度水平方向抛出,如果物体仅受重力作用,这样的运动叫做平抛运动。平抛运动可看作水平方向的匀速直线运动以及竖直方向的自由落体运动的合运动。如图 1 所示。
图 1
假设v0表示水平抛出的初速度,t表示水平抛出后,小球飞行的时间,g表示重力加速度。
平抛运动经过 t 秒的水平位移s计算公式为: s=v0t
垂直方向位移h的计算公式为: h=2gt2
那么经过t秒后,小球与抛出点距离d的计算公式为: d=s2+h2
本关任务:
一小球以 10 米/秒的水平速度平抛,重力加速度取 9.8 米/秒2,在忽略空气阻力的情况下,求经过时间 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 = g*t*t/2;
// 第三步:计算小球与原点的距离,并赋值给d,Math.sqrt()表示的是对括号里的值求平方根
double d = Math.sqrt(s*s+h*h);
// 第四步:打印出小球与原点的距离d 输出格式:小球所在位置与抛出点之间的距离为 xxx 米。 其中 xxx 为求出的距离
System.out.println("小球所在位置与抛出点之间的距离为 "+d+" 米。");
/********** End **********/
}
}
第四关:无输入格式化输出求星期几
本关任务:
2017 年 1 月 1 日是星期天,求 10 天后是星期几。
代码如下:
/**
* 任务: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 = 7+10;
// 第三步:求天数除以一周的天数的余数,这个余数就是10天后为周几的值了
int week = sum%7;
// 第四步:格式化输出这个值 如果结果是1,那么输出格式为:10天后是星期 1。
System.out.println("10天后是星期 "+week+"。");
/********** End **********/
}
}
第五关:有输入格式化输出平抛小球与抛出点之间的距离
本关任务:
一小球以 v0 米/秒的水平速度平抛,重力加速度取 9.8 米/秒2,在忽略空气阻力的情况下,求经过时间 t 秒后,小球所在位置与抛出点之间的距离 (假设小球距地面足够高),输出结果四舍五入后保留两位小数。
代码如下:
/**
* 任务:一小球以 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 input = new Scanner(System.in);
// 第二步:获取键盘第一次输入的值,将其命名为V0,用于表示水平初速度
double v0 = input.nextDouble();
// 第三步:获取键盘第二次输入的值,将其命名为t,用于表示小球飞行的时间
int t = input.nextInt();
// 第四步:计算水平距离,并赋值给s
double s = v0*t;
// 第五步:计算垂直距离,并赋值给h
double h = g*t*t/2;
// 第六步:计算小球与原点的距离,并赋值给d,Math.sqrt()可以用来对括号里的值求平方根
double d = Math.sqrt(s*s+h*h);
// 第七步:打印出小球与原点的距离d,最后结果四舍五入后保留两位小数
System.out.printf("%.2f",d);
/********** End **********/
}
}
第六关:数学函数之求两数最大者
本关任务:
获取键盘两次输入的值,输入两者中的最大数。
代码如下:
/**
* 任务:获取键盘两次输入的值,输出两者中的最大数。
* 类名为:CompareMax
*/
import java.util.Scanner;
public class CompareMax {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:获取键盘第一次输入的值
double number1 = input.nextDouble();
// 第二步:获取键盘第二次输入的值
double number2 = input.nextDouble();
// 第三步:比较两数大小
double max = Math.max(number1,number2);
// 第四步:不换行输出最大的那个值
System.out.print(max);
/********** End **********/
}
}
第七关:数学函数之根据三角形三边长求面积
本关任务:
根据从键盘输入的三角形的三个边长,求出三角形的面积,忽略三边长度不能组成一个三角形的情况,最后结果保留两位小数。
任意三角形面积公式-海伦公式
已知三角形三边a、b、c,则
p=21(a+b+c)
S三角形=p(p−a)(p−b)(p−c)
代码如下:
/**
* 任务:根据从键盘输入的三角形的三个边长,求出三角形的面积。
* 类名为:TriangleArea
*/
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:获取键盘三次输入的值
double a = input.nextDouble();
double b = input.nextDouble();
double c = input.nextDouble();
double p = (a+b+c)/2;
// 第二步:根据三角形面积公式求取三角形面积
double s = Math.sqrt(p*(p-a)*(p-b)*(p-c));
// 第三步:格式化输出三角形的面积
System.out.printf("三角形的面积为:%.2f",s);
/********** End **********/
}
}
第八关:数学函数之三角函数
本关任务:
从键盘输入的值分别为三角形的 a、b 两条边长和两边夹角 C 的角度,求出该三角形的面积,请对最终结果保留两位小数。
三角形面积公式
S=21absinC
代码如下:
/**
* 任务:从键盘输入的值分别为三角形的 a、b 两条边长和两边夹角 C 的角度,求出该三角形的面积,请对最终结果保留两位小数。
* 类名为:TriangleArea
*/
import java.util.Scanner;
public class TriangleArea {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:获取键盘第一次输入的值
double a = input.nextDouble();
// 第二步:获取键盘第二次输入的值
double b = input.nextDouble();
// 第三步:获取键盘第三次输入的值
double c = input.nextDouble();
// 第四步:求sinC的值
double C = Math.toRadians(c);
double sinC = Math.sin(C);
// 第五步:根据三角形面积公式求取三角形面积,此处用0.5代替1/2
double s = a*b*sinC*0.5;
// 第六步:不换行输出三角形的面积
System.out.printf("%.2f",s);
/********** End **********/
}
}
第九关:基本数据类型转换
本关任务:
变量 a 是一个 double 型的变量,请将其强转为 int 型,变量 b 是一个 short 型的变量,请将其转换为 double 型。
输出格式:
先换行输出变量 a 转换后的结果,再不换行输出 b 转换后的结果。
代码如下:
/**
* 任务:变量 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 input = new Scanner(System.in);
// double型变量a
double a = input.nextDouble();
// short型变量b
short b = input.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 **********/
}
}
第十关:银行复利计息收益计算
本关任务:
假定一个用户初始时向一个储蓄帐户中存了 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 **********/
// 第一步:创建一个名为 BankRate 的公开类
public class BankRate{
// 第二步:在这个类中定义主方法
public static void main(String[] agrs) {
// 第三步:在主方法中计算第六个月后总资金为多少
int money = 1000;
double bankRate = money*Math.pow((1+0.001875), 6);
// 第四步:格式化输出六个月后账户的总金额,结果保留两位小数
System.out.printf("%.2f",bankRate);
}
/********** End **********/
}
第十一关:温度换算
本关任务:
编写一个程序,依次将摄氏温度为 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 **********/
// 第一步:创建一个名为 Temperature 的公开类
public class Temperature{
// 第二步:在这个类中定义主方法
public static void main(String[] agrs) {
// 第三步:在主方法中依次计算摄氏温度为 1°、2°、3°、4°、5° 所对应的华氏温度的值,四舍五入后保留两位小数,最后格式化输出华氏温度的值,例子:摄氏温度为1时,华氏温度为xx。
for(int i=1;i<6;i++) {
double fahrenheit = (9.0*i/5.0)+32; //在Java中,如果两个操作数都是整数,那么除法操作将执行整数除法,结果也将是一个整数。要获得浮点数结果,你需要确保至少有一个操作数是浮点数。
System.out.printf("摄氏温度为%d时,华氏温度为%.2f。\n",i,fahrenheit);
}
}
/********** End **********/
}
第十二关:金融投资收益计算
本关任务:
编写程序,读入投资额、年利率和投资年限,利用下面公式计算投资的未来价值: 未来价值=投资额×(1+月利率)12∗年数 。
例如,如果输入投资额 1000、年利率 0.0325 和投资年限 1 年,则程序输出投资的未来价值为 1032.98 。
代码如下:
/**
* 任务:编写程序,读入投资额、年利率和投资年限,利用题目所给公式计算投资的未来价值
* 类名为:Finance
*/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 第一步:导入Scanner类
import java.util.Scanner;
// 第二步:创建一个名为 Finance 的公开类
public class Finance{
// 第三步:定义主方法
public static void main(String[] agrs) {
// 第四步:在主方法中,根据题目给出的计算投资的未来价值公式来计算未来价值
Scanner input = new Scanner(System.in);
double money = input.nextDouble();
double rate = input.nextDouble();
int year = input.nextInt();
double value=money*Math.pow((1+(rate/12)),12*year);
// 第五步:格式化输出未来价值,结果保留两位小数
System.out.printf("%.2f",value);
}
}
/********** End **********/