明解Java第二章练习题答案

发布时间 2023-10-31 10:23:44作者: silly_fox

练习2-1

请对代码清单2-6的2处进行修改,将带有小数部分的实数值赋给x和y,查看结果如何?
答案:编译器会报错,因为小数的默认类型double是比int更大的类型。如果给double类型的变量赋值整数,则编译器不会报错。

练习2-2

请编写一段程序,对三个int型变量进行赋值,并计算合计值和平均值。

    public static void main(String[] args) {

        int x,y,z;
        int sum,average;  //合计值和平均值

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入三个整数的值");
        x = sc.nextInt();
        y = sc.nextInt();
        z = sc.nextInt();

        sum = x+y+z;
        average = sum/3;

        System.out.println("合计值:"+sum+" 平均值:"+average);

    }

练习2-3

请编写一段程序,如图所示,直接重复并显示通过键盘输入的整数值

        Scanner sc = new Scanner(System.in);
        System.out.println("整数值:");
        int x = sc.nextInt();
        System.out.println("输入的是:"+x);

练习2-4

请编写一段程序,如同所示,对通过键盘输入的整数值进行加10和减10的运算,并输出结果值。

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("整数值:");
        int x = sc.nextInt();
        System.out.println("加上10后的值是:"+(x+10));
        System.out.println("减去10后的值是:"+(x-10));

    }

练习2-5

请编写一段程序,读入两个实数值,求它们的和与平均值并显示结果

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("x的值:");
        double x = sc.nextDouble();
        System.out.print("y的值:");
        double y = sc.nextDouble();
        System.out.println("合计值是:"+(x+y));
        System.out.println("平均值是:"+(x+y)/2);

    }

练习2-6

请编写一段程序,读入三角形的底和高,并显示其面积。

    public static void main(String[] args) {

        System.out.println("求三角形的面积");
        Scanner sc = new Scanner(System.in);
        System.out.print("底:");
        double x = sc.nextDouble();
        System.out.print("高:");
        double y = sc.nextDouble();
        System.out.println("面积是:"+x*y/2);

    }

练习2-7

请编写如下所示程序

  • 随机生成并显示一位数的正整数(1~9的值)
  • 随机生成并显示一位数的负整数(-9 ~ -1的值)
  • 随机生成并显示两位数的正整数(10~99的值)
    public  static void rand(){
        Random rand = new Random();  //创建对象
        int lucky = 1 + rand.nextInt(8);  //生成1~9的正整数
        System.out.println(lucky);

        lucky = -rand.nextInt(8) - 1;  //生成-9 ~ -1的值
        System.out.println(lucky);

        lucky = 10 + rand.nextInt(90);  //生成10~99
        System.out.println(lucky);
    }

练习2-8

请编写一段程序,读入通过键盘输入的整数值,然后随机生成并显示其+,-5范围内的整数值

  • 生成-5 ~ 5 = 生成(0~10)-5 的随机整数
        Scanner sc = new Scanner(System.in);   //创建键盘输入对象
        Random rand = new Random();  //创建随机数对象
        System.out.print("整数值:");
        int num = sc.nextInt();              //输入整数值
        int lucky = rand.nextInt(11) - 5;  //生成-5~5的正随机数
        int result = num + lucky;
        System.out.println("生成了该值+-5范围内的随机数是:"+result);

练习2-9

  • 随机生成并显示大于等于0.0小于1.0的实数值
  • 随机生成并显示大于等于0.0小于10.0的实数值
  • 随机生成并显示大于等于-1.0小于1.0的实数值
    public static void rand3(){
        Random rand = new Random();
        double lucky1 = rand.nextDouble();
        System.out.println("随机生成大于等于0.0小于1.0的实数值:" + lucky1);
        double lucky2 = rand.nextDouble() + 9.0;
        System.out.println("随机生成大于等于0.0小于10.0的实数值:" + lucky2);
        double lucky3 = rand.nextDouble()*2.0 - 1 ;
        System.out.println("随机生成大于等于-1.0小于1.0的实数值:" + lucky3);
    }

练习2-10

请编写一段程序,如同所示,通过键盘分别读入姓名的姓和名,并打招呼

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.printf("姓:");
        String first_name = sc.nextLine();
        System.out.printf("名:");
        String last_name = sc.nextLine();
        System.out.println("你好"+first_name+last_name+"先生。");

    }

第一章
第二章
第三章
第四章
第五章
第六章
第七章
第八章
第九章
第十章
第十一章
第十二章
第十三章
第十四章
第十五章
第十六章