JAVA程序设计实验二

1. (填空题)

数组的引用与元素

编写一个Java应用程序,该程序在命令行窗口输出数组的引用以及元素的值。请把【代码1】,【代码2】【代码3】和【代码4】的语句补充完整。(注意:该程序在JDK中执行)

程序模板如下:

public class InputArray {

   public static void main (String args[ ]) {

      int [] a = {100,200,300};

      【代码1】_____________// 输出数组a的长度       

      【代码2】_____________// 输出数组a的引用

      int b[][]= {{1}, {1,1},{1,2,1}, {1,3,3,1},{1,4,6,4,1}};

      【代码3】_____________// 输出二维数组b的一维数组的个数

      System.out.println(b[4][2]);

      【代码4】_____________//将数组a的引用赋给b[4]

      System.out.println(b[4][2]);

   }

}

回答以下问题:

(1)在程序的【代码4】之后增加语句“a[3]=200;”,编译是否有错_____________?(回答是或者否)运行是否有错_____________?(回答是或者否)

(1) System.out.println(a.length);

(2) System.out.println(a);

(3) System.out.println(b.length);

(4) b[4]=a;

(5) 否

(6) 是

2. (填空题)

遍历与复制数组

提示:

(1)Arrays类中有一个方法public static String toString(int[] a),可以得到参数指定的一维数组a的如下格式的字符串表示:[a[0],a[1],...a[a.length-1]]。

(2)Arrays类中有一个方法public static double[] copyOf(double[] original,int newLength)可以把参数original指定的数组中从索引0开始的newLength个元素复制到一个新数组中,并返回这个新数组,且该新数组的长度为newLength。

(3)Arrays类中有一个方法public static double[] copyOfRange(double[] original,int from,int to)可以把参数original指定的数组中从索引from至to-1的元素复制到一个新数组中,并返回这个新数组。

编写一个Java应用程序,输出数组a的全部元素,并将数组a的全部或部分元素复制到其他数组中,然后改变其他数组的元素的值,再输数组a的全部元素。请把【代码1】,【代码2】【代码3】和【代码4】的语句补充完整。(注意:该程序在eclipse中执行)

程序模板如下:

import java.util.Arrays;

public class CopyArray {

   public static void main (String args[ ]) {

      int [] a = {1,2,3,4,500,600,700,800};

      int [] b,c,d;

      System.out.println(Arrays.toString(a));

      b = Arrays.copyOf(a,a.length);

      System.out.println(Arrays.toString(b)); 

      c =【代码1】___________//Arrays调用copyOf方法复制数组a的前4个元素 

      System.out.println(【代码2】___________); //Arrays调用toString方法返回数组c元素值的字符串

      d = 【代码3】___________//Arrays调用copyOfRange方法复制数组a的后4个元素

      System.out.println(Arrays.toString(d));

      【代码4】___________  //将-100赋给数组c的最后一个元素

      d[d.length-1] = -200;

      System.out.println(Arrays.toString(a));

   }

}

回答以下问题:

(1)在程序的【代码4】之后增加语句:

int []tom1=Arrays.copyOf(c,6);

System.out.println(Arrays.toString(tom1));

输出结果是什么___________?

(2)在程序的最后一个语句之后增加语句:

int []tom2=Arrays.copyOfRange(d,1,8);

System.out.println(Arrays.toString(tom2));

输出结果是什么___________?

(1) Arrays.copyOf(a,4);

(2) Arrays.toString(c)

(3) Arrays.copyOfRange(a,4,a.length);

(4) c[c.length-1] = -100;

(5) [1, 2, 3, -100, 0, 0]

(6) [600, 700, -200, 0, 0, 0, 0]

3. (填空题)

 回文数

编写一个Java应用程序,用户从键盘输入一个1~99999之间的数,程序将判断这个数是几位数,并判断这个数是否是回文数。请把【代码1】至【代码10】的语句补充完整。(注意:该程序在eclipse中执行)

提示:

(1)如数字:56321,为了计算出千位上的数字6,先计算56321%10000,得到6321,然后6321/1000 ,得到6。

程序模板如下:

import java.util.Scanner;

public class Number {

   public static void main(String args[]) {

      int number=0,d5,d4,d3,d2,d1;

      Scanner reader = new Scanner(System.in);

      System.out.println("输入一个1至99999之间的数");

      number = reader.nextInt();

      if(【代码1】__________) //判断number在1至99999之间的条件

      {        【代码2】__________   //计算number的最高位(万位)d5

               【代码3】__________   //计算number的千位d4

               【代码4】 __________  //计算number的百位d3

                d2=number%100/10;

                d1=number%10;

                if(【代码5】__________)  //判断number是5位数的条件

                {  System.out.println(number+"是5位数");

                   if(【代码6】__________) //判断number是回文数的条件

                   {   System.out.println(number+"是回文数");

                   }

                   else

                   {   System.out.println(number+"不是回文数");

                   }

                }

                else if(【代码7】__________)  //判断number是4位数的条件

                {  System.out.println(number+"是4位数");

                   if(【代码8】__________) //判断number是回文数的条件码

                   {  System.out.println(number+"是回文数");

                   }

                  else

                   {  System.out.println(number+"不是回文数");

                   }

                }

                else if(【代码9】__________)  //判断number是3位数的条件

                {  System.out.println(number+"是3位数");

                   if(【代码10】__________) //判断number是回文数的条件

                   {  System.out.println(number+"是回文数");

                   }

                  else

                   {  System.out.println(number+"不是回文数");

                   }

                }

                else if(d2!=0)

                {  System.out.println(number+"是2位数");

                   if(d1==d2)

                   {  System.out.println(number+"是回文数");

                   }

                  else

                   {  System.out.println(number+"不是回文数");

                   }

                }

                else if(d1!=0)

                {  System.out.println(number+"是1位数");

                   System.out.println(number+"是回文数");

                }

            }

      else 

      {  System.out.printf("\n%d不在1至99999之间",number);

      }

   }

}

回答以下问题:

(1)程序运行时,输入2332,得到什么结果__________?

(2)程序运行时,输入654321,得到什么结果__________?

(3)程序运行时,输入33321,得到什么结果__________?

(1) number>=1&&number<=99999

(2) d5=number/10000;

(3) d4=number%10000/1000;

(4) d3=number%1000/100;

(5) d5!=0

(6) d5==d1&&d4==d2

(7) d4!=0

(8) d4==d1&&d3==d2

(9) d3!=0

(10) d3==d1

(11) 2332是4位数2332是回文数

(12) 654321不在1至99999之间

(13) 33321是5位数33321不是回文数

4. (填空题)

循环

编写一个Java应用程序,实现猜数字游戏。请把【代码1】,【代码2】和【代码3】的语句补充完整。(注意:该程序在eclipse中执行)

程序模板如下:

import java.util.Scanner;

import java.util.Random;

public class GuessNumber {

   public static void main (String args[]) {

      Scanner reader = new Scanner(System.in);

      Random random = new Random();

      System.out.println("给你一个1至100之间的整数,请猜测这个数");

      int realNumber = random.nextInt(100)+1; //random.nextInt(100)是[0,100)中的随机整数

      int yourGuess = 0;

      System.out.print("输入您的猜测:");  

      yourGuess = reader.nextInt();

      while(【代码1】_________) //循环条件

      {

         if(【代码2】_________)   //猜大了的条件代码

         {

             System.out.print("猜大了,再输入你的猜测:");

             yourGuess = reader.nextInt();

         }

         else if(【代码3】_________) //猜小了的条件代码

         {

             System.out.print("猜小了,再输入你的猜测:");

             yourGuess = reader.nextInt();

         }

      }

      System.out.println("猜对了!");

   }

}

回答以下问题:

(1)用yourGuess>realNumber 替换【代码1】是否可以_________?(回答是或否)

(2)System.out.println("猜对了!");要放在while循环之后.放在while循环的循环体中是否合理_________?(回答是或否)

程序执行效果如下:

捕获.JPG

(1) yourGuess != realNumber

(2) yourGuess > realNumber

(3) yourGuess < realNumber

(4) 否

(5) 否

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值