1、二级 JAVA 机试-104 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题将数组 arrA 中的元素按逆序存储在另外一个相同长度的数组 arrB 中。public class java1public static void main(Stringargs)intarrA=1,3,8,4,2,6,9,0,7;intarrB=_;int i=0;int j=_;for(i=0;iarrA.length;i+)arrBj=arrAi;_;System.out.println(“arrA:“+“arrB:“);for(i=0;iarrA.
2、length;i+)System.out.println(arrAi+“+arrBi);(分数:30.00)_二、简单应用题(总题数:1,分数:40.00)2.本题中,主窗口有一个按钮、一个文本域和一个复选按钮,初始时窗口的大小是不能调整的,选中复选按钮后,窗口大小就可以进行调整,如果撤销复选按钮的选择,则窗口的大小又不能调整,单击按钮可以关闭程序。import java.awt.*;import java.awt.event.*;class MyFrame extends FrameCheckbox box;TextArea text;Button button;MyFrame(String
3、 s)super(s);box=new Checkbox(“设置窗口是否可调整大小“);text=new TextArea(12,12);button=new Button(“关闭窗口“);button.addActionListener(this);box.addhemListener(this);setBounds(100,100,200,300);setVisible(true);add(text,BorderLayout.CENTER);add(box,BorderLayout.SOUTH);add(button,BorderLayout.NORTH);_;validate();pub
4、lic void itemStateChanged(ItemEvent e)if(box.getState()=true)setResizable(true);elsesetResizable(false);public void actionPerformed(ActionEvent e)dispose();class java2public static void main(String args)(new MyFrame(“java2“);(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题的功能是对列表项的操作,包括删除、添加和反选。窗口中有两个列表框和 5 个
5、按钮,按钮标签代表着移除列表项的方向,“”代表只移除选中的列表项,“”代表移除所有的列表项,“!”代表反向选择列表项。import jav a.awt.*;import java.awt.event.*;class java3 extends Frame implements ActionListenerList ItList=new List(ITEMS,true);List rtList=new List(0,true);java3()super(“java3“);addWindowListener(new WindowAdapter()public void windowClosing(
6、WindowEvent e)System.exit(0););GridBagLayout gbl=new GridBagLayout();setLayout(gbl);add(ItList,0,0,1,5,1.0,1.0);add(rtList,2,0,1,5,1.0,1.0);ItList.addActionListener(this);ItList.addItemListener(this);rtList.addActionListener(this);rtList.addItemListener(this);Button b;add(b=new Button(“),1,0,1,1,0,1
7、.0); b.addActionListener(this);add(b=new Button(“),1,1,1,1,0,1.0);b.addActionListener(this);add(b=new Button(“),1,2,1,1,0,1.0);b.addActionListener(this);add(b=new Button(“),1,3,1,1,0,1.0);b.addActionListener(this);add(b=Flew Button(“!“),1,4,1,1,0,1.0);b.addActionListener(this);for(int i=0;iITEMS;i+)
8、ltList.add(“item“+i);pack();show();void add(Component comp,int x,int y,int w,int h,double weightx,double weighty)GridBagLayout gbl=(GridBagLayout)getLayout();GridBagConstraints c=new GridBagConstraints(); c.fill=GridBagConstraints.BOTH;c.gridx=x;c.gridy=y;c.gridwidth=w;c.gridheight=h;c.weightx=weigh
9、tx;c.weighty=weighty;add(comp);gbl.setConstraints(comp,c);void reverseSelections(List 1)for(int i=0;i1.length();i+)if(l.isIndexSelected(i)l.deselect(i);elsel.select(i);void deselectAll(List 1)for(int i=0;i1.getItemCount();itt)l.deselect(i);void replaceItem(List 1,String item)for(int i=0;i1.getItemCo
10、unt();i+t)if(1.getItem(i).equals(item)l.replaceItem(item +“*“,i);void move(List l1,List 12,boolean all)if(all)for(int i=0;il1.getItemCount();i+)l2.add(l1.getItem(i);l1.removeAll();elseStringitems=l1.getSelectedItems();intitemIndexes=l1.getSelectedIndexes();deselectAll(l2);for(int i=0;iitems.length;i
11、+)l2.add(itemsi);l2.select(l2.getItemCount()=1);if(i=0)l2.makeVisible(l2.getItemCount()=1);for(int i=itemIndexes.length-1;i=0;i-)l1.remove(itemIndexesi);public void actionPerformed(ActionEvent evt)String arg=evt.getActionCommand();if(“.equals(arg)move(ltList,rtList,false);else if(“.equals(arg)move(l
12、tList,rtList,true);else if(“.equals(arg)move(rtList,ltList,false);else if(“.equals(arg)move(rtList,ltList,true);else if(“!“.equals(arg)if(ltList.getSelectedItems().length0)reverseSelections(ltList);else if(rtList.getSelectedItems().length0)reverseSelections(rtList);elseObject target=evt.getSource();
13、if(target=rtList | target=ItList)replaceItem(List)target,arg);public void itemStatedChanged(ItemEvent ent)List target=(List)evt.getSource();if(target=ltList)deselectAll(rtList);else if(target=rtList)deselectAll(ltList);public static void main(Stringargs)new java3();(分数:30.00)_二级 JAVA 机试-104 答案解析(总分:
14、100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题将数组 arrA 中的元素按逆序存储在另外一个相同长度的数组 arrB 中。public class java1public static void main(Stringargs)intarrA=1,3,8,4,2,6,9,0,7;intarrB=_;int i=0;int j=_;for(i=0;iarrA.length;i+)arrBj=arrAi;_;System.out.println(“arrA:“+“arrB:“);for(i=0;iarrA.length;i+)System.out.pri
15、ntln(arrAi+“+arrBi);(分数:30.00)_正确答案:(第 1 处:new intarrA.length第 2 处:arrA.length-1第 3 处:j-或 j=j-1 或 j-=1)解析:解析 第 1 处将 arrB 的长度设定成与 arrA 相同;第 2 处因为是逆序存储,从后面的 arrBj=arrAi;可以看出,j 的初值应使 arrBj指向数组末尾。第 3 处 for 循环使用。二、简单应用题(总题数:1,分数:40.00)2.本题中,主窗口有一个按钮、一个文本域和一个复选按钮,初始时窗口的大小是不能调整的,选中复选按钮后,窗口大小就可以进行调整,如果撤销复选按
16、钮的选择,则窗口的大小又不能调整,单击按钮可以关闭程序。import java.awt.*;import java.awt.event.*;class MyFrame extends FrameCheckbox box;TextArea text;Button button;MyFrame(String s)super(s);box=new Checkbox(“设置窗口是否可调整大小“);text=new TextArea(12,12);button=new Button(“关闭窗口“);button.addActionListener(this);box.addhemListener(thi
17、s);setBounds(100,100,200,300);setVisible(true);add(text,BorderLayout.CENTER);add(box,BorderLayout.SOUTH);add(button,BorderLayout.NORTH);_;validate();public void itemStateChanged(ItemEvent e)if(box.getState()=true)setResizable(true);elsesetResizable(false);public void actionPerformed(ActionEvent e)di
18、spose();class java2public static void main(String args)(new MyFrame(“java2“);(分数:40.00)_正确答案:(第 1 处:implements ItemListener,ActionListener第 2 处:setResizable(false)解析:解析 第 1 处从后面的 button.addActionListener(this);box.addItemListener(this);可以看出 MyFrame 需要 ItemListener 和 ActionListener 接口;第 2 处设置初始时窗口的大小
19、是不能调整的。三、综合应用题(总题数:1,分数:30.00)3.本题的功能是对列表项的操作,包括删除、添加和反选。窗口中有两个列表框和 5 个按钮,按钮标签代表着移除列表项的方向,“”代表只移除选中的列表项,“”代表移除所有的列表项,“!”代表反向选择列表项。import jav a.awt.*;import java.awt.event.*;class java3 extends Frame implements ActionListenerList ItList=new List(ITEMS,true);List rtList=new List(0,true);java3()super(“
20、java3“);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););GridBagLayout gbl=new GridBagLayout();setLayout(gbl);add(ItList,0,0,1,5,1.0,1.0);add(rtList,2,0,1,5,1.0,1.0);ItList.addActionListener(this);ItList.addItemListener(this);rtList.addActionListener(this
21、);rtList.addItemListener(this);Button b;add(b=new Button(“),1,0,1,1,0,1.0); b.addActionListener(this);add(b=new Button(“),1,1,1,1,0,1.0);b.addActionListener(this);add(b=new Button(“),1,2,1,1,0,1.0);b.addActionListener(this);add(b=new Button(“),1,3,1,1,0,1.0);b.addActionListener(this);add(b=Flew Butt
22、on(“!“),1,4,1,1,0,1.0);b.addActionListener(this);for(int i=0;iITEMS;i+)ltList.add(“item“+i);pack();show();void add(Component comp,int x,int y,int w,int h,double weightx,double weighty)GridBagLayout gbl=(GridBagLayout)getLayout();GridBagConstraints c=new GridBagConstraints(); c.fill=GridBagConstraint
23、s.BOTH;c.gridx=x;c.gridy=y;c.gridwidth=w;c.gridheight=h;c.weightx=weightx;c.weighty=weighty;add(comp);gbl.setConstraints(comp,c);void reverseSelections(List 1)for(int i=0;i1.length();i+)if(l.isIndexSelected(i)l.deselect(i);elsel.select(i);void deselectAll(List 1)for(int i=0;i1.getItemCount();itt)l.d
24、eselect(i);void replaceItem(List 1,String item)for(int i=0;i1.getItemCount();i+t)if(1.getItem(i).equals(item)l.replaceItem(item +“*“,i);void move(List l1,List 12,boolean all)if(all)for(int i=0;il1.getItemCount();i+)l2.add(l1.getItem(i);l1.removeAll();elseStringitems=l1.getSelectedItems();intitemInde
25、xes=l1.getSelectedIndexes();deselectAll(l2);for(int i=0;iitems.length;i+)l2.add(itemsi);l2.select(l2.getItemCount()=1);if(i=0)l2.makeVisible(l2.getItemCount()=1);for(int i=itemIndexes.length-1;i=0;i-)l1.remove(itemIndexesi);public void actionPerformed(ActionEvent evt)String arg=evt.getActionCommand(
26、);if(“.equals(arg)move(ltList,rtList,false);else if(“.equals(arg)move(ltList,rtList,true);else if(“.equals(arg)move(rtList,ltList,false);else if(“.equals(arg)move(rtList,ltList,true);else if(“!“.equals(arg)if(ltList.getSelectedItems().length0)reverseSelections(ltList);else if(rtList.getSelectedItems
27、().length0)reverseSelections(rtList);elseObject target=evt.getSource();if(target=rtList | target=ItList)replaceItem(List)target,arg);public void itemStatedChanged(ItemEvent ent)List target=(List)evt.getSource();if(target=ltList)deselectAll(rtList);else if(target=rtList)deselectAll(ltList);public sta
28、tic void main(Stringargs)new java3();(分数:30.00)_正确答案:(第 1 处:extends Frame implements ActionListener,ItemListener第 2 处:for(int i=0;il.getItemCount();i+)第 3 处:public void ItemStateChanged(ItemEvent evt)解析:解析 第 1 处类可以实现多个接口,接口之间用“,”隔开;第 2 处 reverseSelections 方法实现的是反选,遍历列表获得列表元素数应使用的是 getItemCount()方法;第 3 处 Java 是大小写敏感的。