1、二级 JAVA 机试 58 及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.下面的程序是求 9999 以内的“完全数”。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如 28=124714 就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填人适当的语句。public class QuanShu public static void main(String args) for(int n=1;n9999;n+) if
2、(_)System.out.println(n); public static int divsum(int n)/该方法功能是求一个数的所有约数 int s=; for(int i=;in;i+) if(_) _ return s; (分数:30.00)_二、B2简单应用题/B(总题数:1,分数:40.00)2.下面是一个字符界面的 Java Application 程序,它接受用户输入的一个浮点数,并将它的整数部分和小数部分分别输出。请勿改动原有代码,在下画线处填人适当语句,将程序补充完整。 import java.io.*; public class test16_2 public st
3、atic void main(String args) String s; double d; int i; boolean b=false; do try System.out.println(“请输入一个浮点数:“); BufferedReader br= new BufferedReader(new lnputStreamReader(System.in); s=br.readLine(); i=s.indexOf( ); d=_.parseDouble(s); System.out.println(d+“整数部分为:“+_); if(i=-1) System.out.println(d
4、+“小数部分为:0.0“); else System.out.println(d+“小数部分为:“ +Double.parseDouble( (s.charAt(0)=-)?“-“:“) +“0.“+s.substring(i+1,s.length(); b=false; catch(NumberFormatException nfe) System.out.prinfln(“输入浮点数格式有误。/n“); b=true; catch(IOException ioe) b=false; while(b); (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一
5、个 Applet 程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。 import java.awt.*; import java.applet.*; /* applet code=“ex16_3.class“width=800 height=400 /applet */ public class ex16_3 extends Applet int x=15,50,100,160,120,190; int y=15,100,30,15,8
6、0,50 ; public void init() setBackground(Color.lightGray); public void paint(Craphics g) inty2=new int6; g.setColor(Color.red); Rectangle rect=getBounds(); Ug.drawPolygon(x,y2,6);/U for(int i=0;i6;i+) UY2i=yi+(rect.height/2);/U Ug.fillPolygon(x,y,6);/U ex16_3.html HTML HEAD TITLEex16_3/TITLE /HEAD BO
7、DY applet code=ex16_3.class“width=800 height=400 /applet /BODY /HTML(分数:30.00)_二级 JAVA 机试 58 答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.下面的程序是求 9999 以内的“完全数”。所谓完全数是指这样的自然数:它的各个约数(不包括该数自身)之和等于该数自身。如 28=124714 就是一个完全数。请在程序的每条横线处填写一个语句,使程序的功能完整。 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填人适当的语句。publ
8、ic class QuanShu public static void main(String args) for(int n=1;n9999;n+) if(_)System.out.println(n); public static int divsum(int n)/该方法功能是求一个数的所有约数 int s=; for(int i=;in;i+) if(_) _ return s; (分数:30.00)_正确答案:()解析:n=divsum(n) n%i=0 s+=i;二、B2简单应用题/B(总题数:1,分数:40.00)2.下面是一个字符界面的 Java Application 程序,
9、它接受用户输入的一个浮点数,并将它的整数部分和小数部分分别输出。请勿改动原有代码,在下画线处填人适当语句,将程序补充完整。 import java.io.*; public class test16_2 public static void main(String args) String s; double d; int i; boolean b=false; do try System.out.println(“请输入一个浮点数:“); BufferedReader br= new BufferedReader(new lnputStreamReader(System.in); s=br.
10、readLine(); i=s.indexOf( ); d=_.parseDouble(s); System.out.println(d+“整数部分为:“+_); if(i=-1) System.out.println(d+“小数部分为:0.0“); else System.out.println(d+“小数部分为:“ +Double.parseDouble( (s.charAt(0)=-)?“-“:“) +“0.“+s.substring(i+1,s.length(); b=false; catch(NumberFormatException nfe) System.out.prinfln(
11、“输入浮点数格式有误。/n“); b=true; catch(IOException ioe) b=false; while(b); (分数:40.00)_正确答案:()解析:Double (long)d三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet 程序,其功能是用一组坐标点绘制一个多边形,并通过沿坐标的垂直方向移动,把它移到窗口的下半部分,然后填充它。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。 import java.awt.*; import java.applet.*; /* applet
12、code=“ex16_3.class“width=800 height=400 /applet */ public class ex16_3 extends Applet int x=15,50,100,160,120,190; int y=15,100,30,15,80,50 ; public void init() setBackground(Color.lightGray); public void paint(Craphics g) inty2=new int6; g.setColor(Color.red); Rectangle rect=getBounds(); Ug.drawPolygon(x,y2,6);/U for(int i=0;i6;i+) UY2i=yi+(rect.height/2);/U Ug.fillPolygon(x,y,6);/U ex16_3.html HTML HEAD TITLEex16_3/TITLE /HEAD BODY applet code=ex16_3.class“width=800 height=400 /applet /BODY /HTML(分数:30.00)_正确答案:()解析:drawPolygon(x,y,6) y2i+=yi+(rect.height/2) g.fllPolygon(x,y2,6)