1、(A)二级 JAVA 笔试-3 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题的功能是获得字符串“China”的长度和最后一个字符,并将这些信息打印出来。public class java1public static void rnain(String args)_;str=“China“;int n=0;_;char c;_;System. out. println(“字符串中共有“+n+“个字符。最后一个字符是:“+c);(分数:30.00)填空项 1:_二、简单应用题(总题数:1,分数:30.00)2.本题的功能是通过鼠标确定
2、两个点,然后画两点间的直线。窗口中有一个按钮“Draw line”,单击该按钮后,它就处于按下状态,然后用鼠标在窗口中单击一下,在单击的地方就会出现一个坐标圆点,用鼠标在另外一个地方单击一下又会出现另外一个圆点,并且此时在两个坐标圆点间画出一条直线,且“Draw line”处于可用状态,再单击这个按钮就可以画另外一条直线。import java. awt. * ;import java. awt. event. * ;import javax. swing. * ;class EventQueuePanel extends JPanel implements ActionListenerEve
3、ntQueuePanel()JButton button=new JButton(“Draw line“);add(button);button. addActionListener(this);public void actionPerformed(ActionEvent evt)( Graphics g=getGraphics();_p= getClick();g. drawOval(p. x-2, p. y-2, 4, 4);Point q=getClick();g. drawOval(q. x-2, q. y-2, 4, 4);g. drawLine(p, x, p. y, q. x,
4、 q. y);g. dispose()public Point getClick()EventQueue eq=Toolkit. getDefaultToolkit(). getSystemEventQueue();while (true)tryAWTEvent evt=eq. getNextEvent();if (evt. getlD()=MouseEvent. MOUSEPRESSED)MouseEvent mevt=(MouseEvent)evt;Point p =_();Point top=getRootPane(). getLocation();p. x-=top. x;p. y-=
5、top. y;return p;catch(InterruptedException e)private int y=60;class EventQueueFrame extends JFramepublic EventQueueFrame()setTitle(“java2“);setSize(300,200);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System. exit(0););Container contentPane=getContentPane();contentPa
6、ne. add( new EventQueuePanel();public class java2public static void main(String args)Frame frame=new EventQueueFrame();frame. show();(分数:30.00)填空项 1:_三、综合应用题(总题数:1,分数:40.00)3.本题是一个 Applet,功能是用鼠标画不同颜色的图形。页面中有 5 个按钮“画红色图形”、“画绿色图形”、“画蓝色图形”、“橡皮”和“清除”,单击前三个按钮中的一个,按住鼠标左键或右键在面板中拖动,就能画出对应颜色的线条,单击“橡皮”按钮,按住鼠标
7、左键或右键在面板中拖动就能将面板中的图形擦除掉,单击“清除”按钮,就能将面板中所有的图形清除掉。import java. applet. * ;import java. awt. * ;import java. awt. event. * ;public class java3 extends Applet implements ActionListenerint x-1, y=-l, rubberNote=0, clearNote=0;Color c=new Color(255,0,0);int con=3;Button b_red, b_blue, b_green, b_clear, b_
8、quit ;public void init()addMouseMotionListener(this);b_red=new Button(“画红色图形“);b_blue=new Button(“画蓝色图形“);b_green=new Button(“画绿色图形“) ;b_quit=new Button(“橡皮“);bclear=new Button(“清除“);add(b_red);add(b_green);add(b_blue);add(b_quit);add(b_clear);b_red. addActionListener(this);b_green. addActionListene
9、r(this);b_blue. addActionListener(this);b_quit. addActionListener(this);b_clear. addActionListener(this);public void paint()if(x!=-1g. fillOval(x, y, con, con);else if(rubberNote=1else if(clearNote=1public void mouseDragged(MouseEvent e)x=(int) e. getX(); y=(int) e. getY(); repaint();public void mou
10、seMoved(MouseEvent e)public void update(Graphics g)paint(g);public void actionPerformed(Event e)if(e. getSource()=b_red)rubberNote=0; clearNote=0; c=new Color(255,0,0);else if(e. getSource()=b green)rubberNote=0; clearNote=0; c=new Color(0,255,0);else if(e. getSource()=b_blue)rubberNote=0; clearNote
11、=0; c=new Color(0,0,255);if(e. getSource()=b_quit)rubberNote=1; clearNote=0;if(e. getSource()=b_clear)clearNote=1; rubberNote=0; repaint();(分数:40.00)填空项 1:_(A)二级 JAVA 笔试-3 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题的功能是获得字符串“China”的长度和最后一个字符,并将这些信息打印出来。public class java1public static void
12、rnain(String args)_;str=“China“;int n=0;_;char c;_;System. out. println(“字符串中共有“+n+“个字符。最后一个字符是:“+c);(分数:30.00)填空项 1:_ (正确答案:第 1 处:String str第 2 处:n=str. length()第 3 处:c=str. charAt(n-1))解析:解析 第 1 处定义一个 String 字符串类型的变量 str;第 2 处将 str 字符串的长度赋给 n;第 3处用 str 的 charAt 方法获得最后一个字符并赋给 C,用 n-1 来定位最后一个字符。二、简单
13、应用题(总题数:1,分数:30.00)2.本题的功能是通过鼠标确定两个点,然后画两点间的直线。窗口中有一个按钮“Draw line”,单击该按钮后,它就处于按下状态,然后用鼠标在窗口中单击一下,在单击的地方就会出现一个坐标圆点,用鼠标在另外一个地方单击一下又会出现另外一个圆点,并且此时在两个坐标圆点间画出一条直线,且“Draw line”处于可用状态,再单击这个按钮就可以画另外一条直线。import java. awt. * ;import java. awt. event. * ;import javax. swing. * ;class EventQueuePanel extends JP
14、anel implements ActionListenerEventQueuePanel()JButton button=new JButton(“Draw line“);add(button);button. addActionListener(this);public void actionPerformed(ActionEvent evt)( Graphics g=getGraphics();_p= getClick();g. drawOval(p. x-2, p. y-2, 4, 4);Point q=getClick();g. drawOval(q. x-2, q. y-2, 4,
15、 4);g. drawLine(p, x, p. y, q. x, q. y);g. dispose()public Point getClick()EventQueue eq=Toolkit. getDefaultToolkit(). getSystemEventQueue();while (true)tryAWTEvent evt=eq. getNextEvent();if (evt. getlD()=MouseEvent. MOUSEPRESSED)MouseEvent mevt=(MouseEvent)evt;Point p =_();Point top=getRootPane().
16、getLocation();p. x-=top. x;p. y-=top. y;return p;catch(InterruptedException e)private int y=60;class EventQueueFrame extends JFramepublic EventQueueFrame()setTitle(“java2“);setSize(300,200);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System. exit(0););Container conte
17、ntPane=getContentPane();contentPane. add( new EventQueuePanel();public class java2public static void main(String args)Frame frame=new EventQueueFrame();frame. show();(分数:30.00)填空项 1:_ (正确答案:第 1 处:Point第 2 处:nevt. getPoint)解析:解析 第 1 处表示获得 Point 型的坐标给了 P;第 2 处获得鼠标单击的坐标。三、综合应用题(总题数:1,分数:40.00)3.本题是一个 A
18、pplet,功能是用鼠标画不同颜色的图形。页面中有 5 个按钮“画红色图形”、“画绿色图形”、“画蓝色图形”、“橡皮”和“清除”,单击前三个按钮中的一个,按住鼠标左键或右键在面板中拖动,就能画出对应颜色的线条,单击“橡皮”按钮,按住鼠标左键或右键在面板中拖动就能将面板中的图形擦除掉,单击“清除”按钮,就能将面板中所有的图形清除掉。import java. applet. * ;import java. awt. * ;import java. awt. event. * ;public class java3 extends Applet implements ActionListenerin
19、t x-1, y=-l, rubberNote=0, clearNote=0;Color c=new Color(255,0,0);int con=3;Button b_red, b_blue, b_green, b_clear, b_quit ;public void init()addMouseMotionListener(this);b_red=new Button(“画红色图形“);b_blue=new Button(“画蓝色图形“);b_green=new Button(“画绿色图形“) ;b_quit=new Button(“橡皮“);bclear=new Button(“清除“)
20、;add(b_red);add(b_green);add(b_blue);add(b_quit);add(b_clear);b_red. addActionListener(this);b_green. addActionListener(this);b_blue. addActionListener(this);b_quit. addActionListener(this);b_clear. addActionListener(this);public void paint()if(x!=-1g. fillOval(x, y, con, con);else if(rubberNote=1el
21、se if(clearNote=1public void mouseDragged(MouseEvent e)x=(int) e. getX(); y=(int) e. getY(); repaint();public void mouseMoved(MouseEvent e)public void update(Graphics g)paint(g);public void actionPerformed(Event e)if(e. getSource()=b_red)rubberNote=0; clearNote=0; c=new Color(255,0,0);else if(e. get
22、Source()=b green)rubberNote=0; clearNote=0; c=new Color(0,255,0);else if(e. getSource()=b_blue)rubberNote=0; clearNote=0; c=new Color(0,0,255);if(e. getSource()=b_quit)rubberNote=1; clearNote=0;if(e. getSource()=b_clear)clearNote=1; rubberNote=0; repaint();(分数:40.00)填空项 1:_ (正确答案:第 1 处:extends Applet implements ActionListener, MouseMotionListener第 2 处:public void paint(Graphics g)第 3 处:public void actionPerformed(ActionEvent e))解析:解析 第 1 处继承 Applet 实现构件动作监听接口和鼠标移动监听接口;第 2 处定义 paint 绘制图形方法以 Graphics 类对象作为参数;第 3 处 actionPerformed 方法是发生对象的操作事件时调用,以一个监听动作类的对象 e 为参数。