1、二级 JAVA 机试-27 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题定义了一个长度为 10 的 boolean 型数组,并给数组元素赋值,要求如果数组元素下标为奇数,则数组元素值为 false,否则为 true。public class java1public static void main(Stringargs)boolean b=_;for(int i=0;i10;i+)if(_)bi=false;else_;for(int i=0;i10;i+)System.out.print(“b“+i+“=“+bi+“,“);(分
2、数:30.00)_二、简单应用题(总题数:1,分数:40.00)2.本题是一个 Applet,它的功能是在窗口上添加 1212 个标签,并且横向和纵向标签的颜色为黑白相间。import java.applet.*;import java.awt.*;import java.awt.event.*;public class java2extends AppletGridLayout grid;public void init()grid=new GridLayout(12,12);setLayout(grid);Label_=new Label1212;for(int i=0;i12;i+)(f
3、or(int j=0;j12;j+)labelij=_;if(i+j)%2=0)labelij.setBackground(Color.black);elselabelij.setBackground(Color.white);add(labelij);(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题的功能是获得系统剪贴板中的内容。窗口中有一个菜单“Edit”和一个文本域,“Edit”中有菜单项“Cut”、“Copy”和“Paste”,在文本域中输入内容,可以通过菜单进行剪切、复制和粘贴操作,如果系统剪贴板为空,又做粘贴操作的话,则设置文本域中背景颜色为红色,并显示
4、错误信息。import java.awt.*;import java.io.*;import java.awt.datatransfer.*;import java.awt.event.*;class java3 extends Frame implements ActionListener,ClipboardOwnerTextArea textArea=new TextArea();java3()super(“java3“);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.
5、exit(0););MenuBar mb=new MenuBar();Menu m=new Menu(“Edit“);setLayout(new BorderLayout();add(“Center“,textArea);m.add(“Cut“);m.add(“Copy“);m.add(“Paste“);mb.add(m);setMenuBar(this);for(int i=0;im.getItemCount();i+)m.item(i).addActionListener(this);setSize(300,300);show();public void actionPerformed(A
6、ctionEvent evt)if(“Paste“.equals(evt.getActionCommand()boolean error=true;Transferable t=getToolkit().getSystemClipboard().getContents(this);tryif(t! =nulltextArea.setForeground(Color.black);textArea.replaceRange(String)t.getTransferData(DataFlavor.stringFlavor),textArea.getSelectionStart(),textArea
7、.getSelectionEnd();error=false;catch(UnsupportedFlavorException e)catch(IOException e)if(error)textArea.setBackground(Color.red);textArea.setForeground(Color.white);textArea.repaint();textArea.setText(“ERROR:/nEither the clipboard“+“is empty or the contents is not a string.“);else if(“Copy“.equals(e
8、vt.getActionCommand()setContents();else if(“Cut“.equals(evt.getActionCommand()setContents();textArea.replaceRange(“,textAtea.getSelectionStart(),textArea.getSelectionEnd();void setContents()S=textArea.getSelectedText();StringSelection contents=new StringSelection(s);getToolkit().getSystemClipboard()
9、.setContents(contents,this);public void lostOwnership(Clipboard clipboard,Transferable contents)System.out.println(“lost ownership“);public static void main(String args)new java3();(分数:30.00)_二级 JAVA 机试-27 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题定义了一个长度为 10 的 boolean 型数组,并给数组元素赋值,要求如果数组
10、元素下标为奇数,则数组元素值为 false,否则为 true。public class java1public static void main(Stringargs)boolean b=_;for(int i=0;i10;i+)if(_)bi=false;else_;for(int i=0;i10;i+)System.out.print(“b“+i+“=“+bi+“,“);(分数:30.00)_正确答案:(第 1 处:new boolean10第 2 处:i%2!=0第 3 处:bi=true)解析:解析 第 1 处定义了一个长度为 10 的 boolean 型数组;第 2 处判断数组元素下
11、标是否为奇数。第3 处不为奇数的情况下数组元素值设为 true。二、简单应用题(总题数:1,分数:40.00)2.本题是一个 Applet,它的功能是在窗口上添加 1212 个标签,并且横向和纵向标签的颜色为黑白相间。import java.applet.*;import java.awt.*;import java.awt.event.*;public class java2extends AppletGridLayout grid;public void init()grid=new GridLayout(12,12);setLayout(grid);Label_=new Label121
12、2;for(int i=0;i12;i+)(for(int j=0;j12;j+)labelij=_;if(i+j)%2=0)labelij.setBackground(Color.black);elselabelij.setBackground(Color.white);add(labelij);(分数:40.00)_正确答案:(第 1 处:label第 2 处:new label()解析:解析 第 1 处定义了一个长度为 1212 的 Label 型数组;第 2 处为数组元素赋值。三、综合应用题(总题数:1,分数:30.00)3.本题的功能是获得系统剪贴板中的内容。窗口中有一个菜单“Edi
13、t”和一个文本域,“Edit”中有菜单项“Cut”、“Copy”和“Paste”,在文本域中输入内容,可以通过菜单进行剪切、复制和粘贴操作,如果系统剪贴板为空,又做粘贴操作的话,则设置文本域中背景颜色为红色,并显示错误信息。import java.awt.*;import java.io.*;import java.awt.datatransfer.*;import java.awt.event.*;class java3 extends Frame implements ActionListener,ClipboardOwnerTextArea textArea=new TextArea()
14、;java3()super(“java3“);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););MenuBar mb=new MenuBar();Menu m=new Menu(“Edit“);setLayout(new BorderLayout();add(“Center“,textArea);m.add(“Cut“);m.add(“Copy“);m.add(“Paste“);mb.add(m);setMenuBar(this);for(int i=0;i
15、m.getItemCount();i+)m.item(i).addActionListener(this);setSize(300,300);show();public void actionPerformed(ActionEvent evt)if(“Paste“.equals(evt.getActionCommand()boolean error=true;Transferable t=getToolkit().getSystemClipboard().getContents(this);tryif(t! =nulltextArea.setForeground(Color.black);te
16、xtArea.replaceRange(String)t.getTransferData(DataFlavor.stringFlavor),textArea.getSelectionStart(),textArea.getSelectionEnd();error=false;catch(UnsupportedFlavorException e)catch(IOException e)if(error)textArea.setBackground(Color.red);textArea.setForeground(Color.white);textArea.repaint();textArea.
17、setText(“ERROR:/nEither the clipboard“+“is empty or the contents is not a string.“);else if(“Copy“.equals(evt.getActionCommand()setContents();else if(“Cut“.equals(evt.getActionCommand()setContents();textArea.replaceRange(“,textAtea.getSelectionStart(),textArea.getSelectionEnd();void setContents()S=t
18、extArea.getSelectedText();StringSelection contents=new StringSelection(s);getToolkit().getSystemClipboard().setContents(contents,this);public void lostOwnership(Clipboard clipboard,Transferable contents)System.out.println(“lost ownership“);public static void main(String args)new java3();(分数:30.00)_正确答案:(第 1 处:setMenuBar(mb)第 2 处:m.getItem(i).addActionListener(this)第 3 处:String s=textArea.getSelectedText()解析:解析 第 1 处设定菜单栏,setMenuBar 参数应为菜单栏,此处 this 为 Frame;第 2 处获得菜单项应使用 getItem()方法。第 3 处变量 s 使用前未定义,从 getSelectedText()可以看出,数据为文本域中选择的内容,故为 String 类型。