1、二级 JAVA机试-1 及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)请完善程序(程序文件名:Java_1.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。题目要求请完善程序,并进行调试,程序运行结果为:aa=512bb=-167ff=593.94dd=5.938839067268372源程序:import java.io.*;public class Java_1 public static void main(String args) char a=p:byte b1=6;in
2、t i=400;long b=345L;float f=98.99f;double d=4.7788;U (1) /U aa=a+i;long bb=b-aa;U (2) /U if=b1*f;double dd=ff/aa+d;System.out.println(“aa=“+aa);System.out.println(“bb=“+bb);System.out.println(“ff=“+ff);System.out.println(“dd=“+dd);(分数:30.00)(1).(分数:15.00)填空项 1:_填空项 1:_二、B2简单应用题/B(总题数:1,分数:40.00)请完善程
3、序(程序文件名:Java_2.java),并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。题目要求本题功能是创建一个二维整型数组,并将其元素输出。运行结果为:1 1 1 12 2 2 23 3 3 34 4 4 4源程序:public class Java_2 public static void main(String args) int aMatrix=1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4;int i=0;/循环变量int j=0;/循环变量for(i=0;iU (1) /U;i+) for(j=0;jaMatrixi.l
4、ength;j+)System.out.print(U (2) /U+“ “);System.out.println();(分数:40.00)(1).(分数:20.00)填空项 1:_填空项 1:_三、B3综合应用题/B(总题数:1,分数:30.00)请完善程序(程序文件名:Java_3.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。题目要求该程序的功能是求以命令行参数指定的整数的阶乘。完成程序并运行,所得结果为:5的阶乘是 120.0源程序:/程序的功能是求以命令行参数指定的整数的阶乘。public class Java_3 public
5、 static void main(String args) String num;if(args.length0)Bum=U (1) /U;else num=“5“:int input=Integer.parseInt(U (2) /U);double result=factorial(input);System.out.println(input+“的阶乘是“+result);public static double factorial(int x) if(x0)return 0.0;double fact=1.0:while(x1) fact U(3) /U * x;x=x-1;retu
6、rn fact;(分数:30.00)(1).(分数:10.00)填空项 1:_填空项 1:_填空项 1:_二级 JAVA机试-1 答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)请完善程序(程序文件名:Java_1.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。题目要求请完善程序,并进行调试,程序运行结果为:aa=512bb=-167ff=593.94dd=5.938839067268372源程序:import java.io.*;public class Java_1 public
7、 static void main(String args) char a=p:byte b1=6;int i=400;long b=345L;float f=98.99f;double d=4.7788;U (1) /U aa=a+i;long bb=b-aa;U (2) /U if=b1*f;double dd=ff/aa+d;System.out.println(“aa=“+aa);System.out.println(“bb=“+bb);System.out.println(“ff=“+ff);System.out.println(“dd=“+dd);(分数:30.00)(1).(分数
8、:15.00)填空项 1:_ (正确答案:int)解析:解析 表达式等号右边的变量 a为 char型,而 i为 int型,所以结果为 int型,因此等号左边的变量 aa为 int型。填空项 1:_ (正确答案:float)解析:解析 表达式等号右边的变量 b1为 byte型,而 f为 float型,所以结果为 float型,因此等号左边的变量 ff为 float型。 程序解析 本程序主要考查变量的类型以及不同类型的变量运算后的类型。对二元运算,如果操作数全为整型,那么只要其中有一个为 long型,则表达式结果也为 long型;其他情况下,即使两个操作数全是 byte型或 short型,表达式结
9、果也为 int型;如果操作数为浮点型,那么只要其中有一个为 double型,表达式结果就是 double型;只有两个操作数全是 float型或其中一个是float型而另外一个是整型时,表达式结果才是 float型。二、B2简单应用题/B(总题数:1,分数:40.00)请完善程序(程序文件名:Java_2.java),并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已有的语句内容。题目要求本题功能是创建一个二维整型数组,并将其元素输出。运行结果为:1 1 1 12 2 2 23 3 3 34 4 4 4源程序:public class Java_2 public sta
10、tic void main(String args) int aMatrix=1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4;int i=0;/循环变量int j=0;/循环变量for(i=0;iU (1) /U;i+) for(j=0;jaMatrixi.length;j+)System.out.print(U (2) /U+“ “);System.out.println();(分数:40.00)(1).(分数:20.00)填空项 1:_ (正确答案:aMatrix.length)解析:解析 循环变量 i是控制行的循环,所以为 aMatrix.length。填空项 1:_ (
11、正确答案:aMatrixij)解析:解析 此条语句为输出语句,输出当前元素,因此为 aMatrixij。 程序解析 本程序主要考查数组的长度 length,即数组元素的个数。对于二维数组,可视为数组元素,又可视为数组。本程序中的数组即是一个 4个元素的数组,而每个元素又是一个含有 4个整型元素的数组。对于本题的二维数组,也可理解为 aMatrix.length即为行数,aMatrixi.length 即为 i行的列数。三、B3综合应用题/B(总题数:1,分数:30.00)请完善程序(程序文件名:Java_3.java)并进行调试。请在下画线处填入正确内容,然后删除下画线。请勿删除注释行和其他已
12、有的语句内容。题目要求该程序的功能是求以命令行参数指定的整数的阶乘。完成程序并运行,所得结果为:5的阶乘是 120.0源程序:/程序的功能是求以命令行参数指定的整数的阶乘。public class Java_3 public static void main(String args) String num;if(args.length0)Bum=U (1) /U;else num=“5“:int input=Integer.parseInt(U (2) /U);double result=factorial(input);System.out.println(input+“的阶乘是“+resu
13、lt);public static double factorial(int x) if(x0)return 0.0;double fact=1.0:while(x1) fact U(3) /U * x;x=x-1;return fact;(分数:30.00)(1).(分数:10.00)填空项 1:_ (正确答案:args0)解析:解析 Java 中命令行参数均为字符串类型,且第一个参数为 args0,第二个参数为 args1,以此类推。填空项 1:_ (正确答案:num)解析:解析 由于获取的参数为字符串类型,要经过转换,将其转换为整型。填空项 1:_ (正确答案:=fact)解析:解析 利用循环求阶乘,当 x1 依次相乘累积赋予 fact,所以为 fact=fact*x;,x 递减直到 1为止。 程序解析 程序首先从命令行获取参数,然后通过方法调用求阶乘。方法中用了循环以实现求阶乘的算法。