Java程序设计A卷答案
一、选择题 (每小题1.5分,共30分)
1、C 2、D 3、A 4、A 5、B 6、D 7、A 8、D 9、B 10、A 11、C 12、A 13、B 14、B 15、D 16、C 17、B 18、D 19、A 20、C
二、填空题(每空1分,共15分)
1、 .java .class
2、 main 3、 就绪
4、 边界布局或BorderLayout布局 5、 addItemListener itemStateChanged 6、 public abstract 7、 super 一
8、 ArrayIndexOutOfBoundsException 9、 getAppletContext getApplet 10、 缓冲
三、判断题(每小题1分,共10分)
1、√ 2、× 3、√ 4、× 5、× 6、√ 7、√ 8、× 9、× 10、√
四、程序阅读题。(共23分) 1、(1)java.util (1分) (2)I*am*a*student* (4分)
评分标准:每小题按标注分数,答对得相应分数,答错扣掉相应分数。
1
路漫漫其修远兮,吾将上下而求索 -
2、(1)能 (1分)
(2)执行结果为ude (4分)
评分标准:第一小题答对得1分,写出正确的执行结果得4分。若第一小题答错该题不得分。
3、(1)主线程studentteacherstudent (2分) (2)执行结果为:(4分)
陈强正在睡觉,不听课 上课啦! 上课啦! 上课啦!
陈强被老师叫醒了 陈强开始听课
评分标准:正确写出线程在CPU上的变换情况得2分,正确写出执行结果得4分(写对第一条语句得1分,写对第二、三、四条语句得1分,写对第四条语句得1分,写对第五条语句得1分)。 4、执行结果为:(7分)
this is f function in class A! a=1 b=2 c=3
this is f function in class B! b=3 c=4
this is g function in class A! b=4
b=4 c=3 b=3 c=4
评分标准:正确写出执行结果的一行得1分。
五、程序补充题(共22分)
1、(1) import java.awt.event.*; (0.5分) (2) implements ActionListener (0.5分) (3) input1=new JTextField (6) ; (共2分) input2=new JtextField (6) ; confirm=new JButton(“确定”);
2
路漫漫其修远兮,吾将上下而求索 -
confirm.addActionListener(this); p1.add(input1);
p1.add(input2); p1.add(confirm);
评分规则:前三条语句1分,后四条语句1分。 sum=new JRadioButton (“加法”); (共2分) sub=new JRadioButton (“减法”); mul=new JRadioButton (“乘法”); div=new JRadioButton (“除法”);
choose.setLayout(new GridLayout(4,1));
choose.add (sum); choose.add (sub); choose.add (mul);
choose.add (div);
ButtonGroup bg=new ButtonGroup ( ); bg.add(sum);
bg.add(sub); bg.add(mul); bg.add(div);
评分规则:前9条语句1分,后5条语句1分。 (5) result=new JTextField( ); (0.5分) (6) result.setEditable ( false ); (0.5分) (7) addWindowListener (new WindowAdapter( ) {
public void windowClosing ( WindowEvent e ) { System.exit(0); }
};
或 setDefaultCloseOperation ( JFrame.EXIT_ON_CLOSE );
(共1分)
(8) a=Double.parseDouble( input1.getText( ).trim( )); (0.5分) (9) b=Double.parseDouble( input2.getText( ).trim( )); (0.5分) (10) Boolean error=false; if (sum.isSelected( )) c=a+b; else if (sub.isSelected( )) c=a-b; else if (mul.isSelected( )) c=a*b; else if (div.isSelected( )) c=a/b; else error=true;
if ( error ) result.setText(“has not chosen the compute type!”); else result.setText(String.valueOf (c ));
3
(4)
路漫漫其修远兮,吾将上下而求索 -
(共2分)
评分规则:前2条语句1分,后1条语句1分。 总评分标准:按以上标注计分。 2、(1)
(1) Socket connection=new Socket (args[0],8000);
(其中Socket连接的名称可取其它合法标识符)
(2) DataInputStream in=new DataInputStream (connection.getInputStream()); (可使用缓冲流)
(3) DataOutputStream out=new DataOutputStream (connection.getOutputStream()); (可使用缓冲流)
(4) !line.toUpperCase( ).equals(“.QUIT”) 或 !line.equalsIgnoreCase(“.QUIT”) (5) out.writeUTF(line); (6) line=in.readUTF( ); (7) connection.close( );
(8) BufferedReader in=new BufferedReader(new InputStreamReader(System.in)); (9) start( );
(10) DataInputStream in=new DataInputStream (connection.getInputStream()); (11) DataOutputStream out=new DataOutputStream (connection.getOutputStream()); (12) !line.toUpperCase( ).equals(“.QUIT”) 或 !line.equalsIgnoreCase(“.QUIT”) (13) line=in.readUTF( );
(14) line.toUpperCase( ).equals(“.SHUTDOWN”) 或 line.equalsIgnoreCase(“.SHUTDOWN”) (15) EchoServer.running=false; (16) out.writeUTF(line); (17) connection.close( ); (18) ServerSocket server=new ServerSocket(8000); (其中ServerSocket对象名可取其它合法标识符)
4
路漫漫其修远兮,吾将上下而求索 -
(19) Socket connection=server.accept( ); (20) server.close( ); 评分标准:每填对一空得0.5分。
(2)不能。(0.5分)服务器端的主线程一旦侦听到有客户请求,与该客户建立连接后就创建并启动一个线程专门负责与该客户的交互工作,而主线程马上执行下一次while循环进入侦听状态。若该客户向服务器发送“.shutdown”,将服务器主线程的running变量设置为false。而主线程当前正处于侦听状态,因此能接受下一个客户的请求。但再下一个客户发出请求,主线程已不能响应,因为它已退出while循环,结束了侦听状态。(1.5分)
评分标准:答对服务器不能响应下一个客户的请求得0.5分,正确清晰地说明理由得1.5分。
5
因篇幅问题不能全部显示,请点此查看更多更全内容