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循环的循环体中是否合理_________?(回答是或否)
程序执行效果如下:
(1) yourGuess != realNumber
(2) yourGuess > realNumber
(3) yourGuess < realNumber
(4) 否
(5) 否