1、国家二级( JAVA)机试模拟试卷 112及答案与解析 一、基本操作题( 30分) 1 下列程序中,要求按照从小到大的顺序输出 1到 100之间所有能被 7整除的数字,请将下列程序补充完整。 注意:请勿改动 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 public class Example1_3 public static void main(String argv) int i = 1; _ if(_) System.out.print(i + “,“); _ while(i 100); System.out.println(); 二、简单应用题( 40分) 2 以下程
2、序中,使用适当的布局管理器,在 Frame框的 “North”位置添加一句提示信息,在 “South”位置添加一个单行文本框,在这个文本框中输入的内容将会显示在“Center”位置。运行结果如下图所示。 注意:请勿改动 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 import java.awt.*; import java.awt.event.*; public class Example2_6 extends Frame public static void main(String argv) Example2_6 frame = new Example2_6(“Exam
3、ple2_6“); frame, init (); frame.setSize(300, 300); frame, show (); public Example2_6(String name) super (name); addWindowListener (new WindowAdapter () public void windowClosing(WindowEvent e) _; ); public void init() setLayout (new _); Label labelTitle = new Label(“在文本框中输入字符串,可以在Frame 中间显示 “); Labe
4、l showTextLabel = new Label(); TextField textField = new TextField(“请在这里输入字符串 “); textField.addActionListener (new AddStringListener(showTextLabel, textField) ); add(“North“, labelTitte); add(“Center“, showTextLabel); add(“South“, textField); class AddStringListener implements ActionListener Label l
5、abel; TextField textField; public AddStringListener(Label label, TextField textField) this. label = label; this.textField = textField; public void actionPerformed(ActionEvent e) label, setText (textField. getText (); 三、综合应用题( 30分) 3 下面是一个 Apple(程序,其功能是播放动画。要求根据给出的 3幅图片设计 1个动画。请改正程序中的错误 (有下划线的语句 ),使程
6、序能输出正确的结果。 注意:不改动程序的结构,不得增行或删行。 程序运行结果如下: import java.awt.*; import java.applet.*; import java.awt.image.*; /* applet code=“ex24_3.class“ width=800 height=400 /applet */ public class ex24_3 extends Applet implements Runnable Image images=new Image4; Image image; int IMG onClick=over(this) title=放大 N
7、umber=3; int currentImage=0; Thread thisThread; public void init() for (int x=0;x IMG onClick=over(this) title=放大 Number;x+) imagesx= getImage(getCodeBase(),“IMG onClick=over(this) title=放大 “+x+“.gif“); image=images0; public void paint(Graphics g) g.drawImage(image0,0,0,null); public void update(Gra
8、phics g) paint(g); public void start() thisThread = new Thread(this); thisThread.start(); public void stop() thisThread.stop(); thisThread=null; public void run() while(true) currentImage+; currentImage=IMG onClick=over(this) title=放大 Number; image=imagesIMG onClick=over(this) title=放大 Number; repai
9、nt(); try thisThread.sleep(100); catch (Exception e) ex24_3, html HTML HEAD TITLE ex24_3 /TITLE /HEAD BODY applet code=“ex24_3.class“ width=800 height=400 /applet /BODY /HTML 国家二级( JAVA)机试模拟试卷 112答案与解析 一、基本操作题( 30分) 1 【正确答案】 do i%7 0 i+;或者 i i+1;或者 i+ 1; 【试题解析】 本题考查知识点:表达式语句、条件语句、循环语句。 解题思路:本题主要考查 J
10、ava编程的流程控制。 Java语言中的流程控制主要是通过循环、分支和跳转三种语句来实现的。在解这类题型的时候,首先要分清楚题中要考查的语句类型,比如本题考查了考生对 do-while循环的掌 握情况;然后,再根据对应的类型,看题中的语句结构是否完整。题中变量 i从 1循环增加到99,每一个数字模 7,如果余数为 0就认为这是一个可以被 7整除的数。 本题中, do-while循环缺少了 “do”这个循环开始语句,因此第一个空需要填写“do”以使循环体完整;最后也是最重要的,循环一定要保证能够正常结束,许多编程经验丰富的人也会因为一时大意而写出死循环来,这样的错误一定要避免。 第二个空就是使
11、i值顺序增加,直到 i=100时程序退出循环。 本题中还考查了考生对条件分支语句的掌握,即 if语句。在解条 件分支语句的题的时候,首先要找出需要满足的条件是什么,需要通过分支语句分流的条件是什么。比如题中要球能被 7整除,所谓整除就是余数为 0,这样我们就知道,分支条件就是余数值是否为 0,则第二个空应该填写 “i%7 0”。 二、简单应用题( 40分) 2 【正确答案】 System exit(0) BorderLayout()或者带参数的 BorderLayout(int, int)也正确 【试题解析】 本题考查知识点: AWT库的使用、布局管理器的使用。 解题思路:程序使用 “labe
12、lTitle”来显示提示信息,使用 “textField”来获取用户的输入,最后将用户输入的结果通过 “showTextLabel”显示出来。 Frame的关闭按钮的处理方式与 JFrame的方式不相同, Frame必须手动实现退出按钮的事件处理机制,否则单击关闭按钮程序不会做出响应。 本题的第一个空就是对退出按钮的事件响应内容。 BorderLayout布局管理器将容器分为五个区域: North、 South、 East、 West和Center。可以指定构件放在那个区域,但是每个区域只能放置一个构件。第二个空即是为 Frame设置 BorderLayout类型的布局管理器。 三、综合应用题
13、( 30分) 3 【正确答案】 g.drawImage(image, 0, 0, null) currentImage =IMG onClick=over(this) title=放大 Number image=imagescurrentImage 【试题解析】 本题主要考查 Applet图形绘制和多线程相结合制作动画的综合应用。解题关键是熟悉 Applet生命周期,熟悉线程的编程模式,熟悉 Graphics类的基本绘图方法 和图像处理方法等。本题中,第 1处,应该是绘制当前的 1幅图片, image对象定义的就是这一幅图像;第 2处,将 currentImage对 imgNumber取模并把结果返回给 currentImage,作为当前图像的索引值;第 3处,将由currentImage索引的图像数组中的对象的值赋给 image对象,用于显示。