1、二级 JAVA机试 51及答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.“角谷猜想”指出将一个自然数按以下的规则进行运算:若数为偶数,则除以 2;若为奇数乘 3加 1。将得到的数按该规则重复运算,最终可得 1。请在下面程序得每条横线处填写一和语句,使程序的功能完整。(如:输入 34,则输出结果为 34 17 52 26 13 40 20 10 5 16 8 4 2 1) 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填人适当的语句。 import java.io.*; class JiaoGu public s
2、tatic void main(String args) System.out.print(“/n请输入一个数“); try BufferedReader br=new BufferedReader(new lnputStreamReader(System.in); String s=“ “; try s=br.readline(); catch (IOExceptine) _ while(a! =1) System.out.print(“ “+a);if(a%2=1) _ else a=a/2; System.out.println(“ “+a); _ (分数:30.00)_二、B2简单应用
3、题/B(总题数:1,分数:40.00)2.请完成下列 Java程序:计算下列级数之和,直到该项之绝对值小于 0.001为止。 S=1/1! -1/2! +1/3! -1/4! + 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。 程序运行结果如下: i=1 s=1.0 i=2 s=0.5 i=3 s=0.6666666666666666 i=4 s=0.625 i=5 s=0.6333333333333333 i=6 s=0.6319444444444444 public class exl3_2 public static void main(Stfing
4、args) double s=0.0,sign=-1.0,t,f=1.0; for(int i=1;i+) f=f*i; _; t=sign/f; if(_) break; s=s+t; System.out.prinfln(“i=“+i+“s=“+s); (分数:40.00)_三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增
5、行或删行。 import java.awt.*; import java.applet.*; import java.1ang*; public class exl3_3 extends Applet private TextField tf; private Button btn; public void init() tf=new TextField(25); add(tf); btn=new Bunon(“统计“); add(btn); resize(250,200); pubhc void paint(Graphics g) Stling str=tf.genText(); shon
6、cnt=new shon65536; int i; int n = 50; for(i=0;i65536;i+) cati=0; for(i=0;istr.length();i+) Ucnti+;/U for(i=0;i65536;i+)/对数组 Cnt进行初始化 if(Ucnti=0/U) Ug.drawString(i+“出现“+cnti+“次“,50,n);/U n+=20; public boolean action(Eyent e,Object o) if(o=“统计“) repaint(); return true; else return false; ex13_3.html H
7、TML HEAD TITLEex13_3/TITLE /HEAD BODY applet code=“ex13_3.class“width=800 height=400 /applet /BODY /HTML(分数:30.00)_二级 JAVA机试 51答案解析(总分:100.00,做题时间:90 分钟)一、B1基本操作题/B(总题数:1,分数:30.00)1.“角谷猜想”指出将一个自然数按以下的规则进行运算:若数为偶数,则除以 2;若为奇数乘 3加 1。将得到的数按该规则重复运算,最终可得 1。请在下面程序得每条横线处填写一和语句,使程序的功能完整。(如:输入 34,则输出结果为 34 17
8、 52 26 13 40 20 10 5 16 8 4 2 1) 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填人适当的语句。 import java.io.*; class JiaoGu public static void main(String args) System.out.print(“/n请输入一个数“); try BufferedReader br=new BufferedReader(new lnputStreamReader(System.in); String s=“ “; try s=br.readline(); catch (IOExceptin
9、e) _ while(a! =1) System.out.print(“ “+a);if(a%2=1) _ else a=a/2; System.out.println(“ “+a); _ (分数:30.00)_正确答案:()解析:int a=Integef.parseInt(s); a=a*3+1; catch(Exception e)二、B2简单应用题/B(总题数:1,分数:40.00)2.请完成下列 Java程序:计算下列级数之和,直到该项之绝对值小于 0.001为止。 S=1/1! -1/2! +1/3! -1/4! + 注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线
10、处填入适当的语句。 程序运行结果如下: i=1 s=1.0 i=2 s=0.5 i=3 s=0.6666666666666666 i=4 s=0.625 i=5 s=0.6333333333333333 i=6 s=0.6319444444444444 public class exl3_2 public static void main(Stfing args) double s=0.0,sign=-1.0,t,f=1.0; for(int i=1;i+) f=f*i; _; t=sign/f; if(_) break; s=s+t; System.out.prinfln(“i=“+i+“s
11、=“+s); (分数:40.00)_正确答案:()解析:sign=-sign Math.abs(t)0.001三、B3综合应用题/B(总题数:1,分数:30.00)3.下面是一个 Applet程序,其功能是统计输入字符串中的每个字符在该串中出现的次数。要求,窗口中有一个文本框作为输入,一个按钮,点击则进行统计,统计结果以图形方式输出。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 import java.awt.*; import java.applet.*; import java.1ang*; public class exl3_3
12、 extends Applet private TextField tf; private Button btn; public void init() tf=new TextField(25); add(tf); btn=new Bunon(“统计“); add(btn); resize(250,200); pubhc void paint(Graphics g) Stling str=tf.genText(); shon cnt=new shon65536; int i; int n = 50; for(i=0;i65536;i+) cati=0; for(i=0;istr.length(
13、);i+) Ucnti+;/U for(i=0;i65536;i+)/对数组 Cnt进行初始化 if(Ucnti=0/U) Ug.drawString(i+“出现“+cnti+“次“,50,n);/U n+=20; public boolean action(Eyent e,Object o) if(o=“统计“) repaint(); return true; else return false; ex13_3.html HTML HEAD TITLEex13_3/TITLE /HEAD BODY applet code=“ex13_3.class“width=800 height=400 /applet /BODY /HTML(分数:30.00)_正确答案:()解析:cntstr.charAt(i)+ cnti0 g.drawString(char)i+“出现“+cnti+“次“,50,n)