1、网络程序设计 一 选择题 1 假设有如下代码: 1. public class Colors 2. public static void main(String args) 3. int n = 1; 4. System.out.println(“The Color is “ + argsn); 5. 6. 设程序已经通过编译并生成文件 Colors.class,运行以下哪一条命令会产生输出 “The Color is blue“? A. Colors red green blue yellow B. java Colors blue green red yellow C. java Colo
2、rs green blue red yellow D. java Colors.class blue green red yellow E. java Colors.class green blue red yellow 答: C 2 当编译和运行下列代码时会产生什么情况? 1. public class StrEq 2. private StrEq() 3. String s = “Bob“; 4. String s2 = new String(“Bob“); 5. if (s = s2) 6. System.out.println(“Equal“); 7. 8. else 9. Syste
3、m.out.println(“Not equal“); 10. 11. 12. public static void main(String args) 13. StrEq s = new StrEq(); 14. 15. A. 程序能通过编译并输出 “Equal“. B. 程序能通过编译并输出 “Not Equal“. C. 程序在编译时出错。 D. 程序在运行时出错。 答: B 3 对下列不完整的代码来说,哪些选项的声明语句能使程序完整并通过编译? 1. public class Declare 2. 3. public static void main(String args) 4. 5
4、. System.out.println(“The variable is “ + x); 6. 7. A. “int x;“ 放在第 2 行 B. “int x;“ 放在第 4 行 C. “int x = 5;“ 放在第 2 行 D. “int x = 5;“ 放在第 4 行 E. “static int x;“ 放在第 2 行 F. “int x = new int();“ 放在第 4 行 答: D, E 二编程题 1. 写一程序,它能接收命令行输入的 2 个整数,相加后将结果在屏幕上输出。 (注 : 输入的两个命令行参数分别对应 args0和 args1,但为 String 类 型,可用
5、Integer 类的 parseInt 方法来将它转换为整数后实现相加。例: String str1; int i; str1 = new String(“123“); i = Integer.parseInt(str1); ) 答:主要程序代码如下: public class Add2Integer public static void main(String args) if (args.length != 2) System.out.println(“参数个数不对 !“); else int i1 = Integer.parseInt(args0); int i2 = Integer.p
6、arseInt(args1); int i = i1+i2; System.out.println(“两参数之和为 : “+i); 2. 写一程序,它能接收命令行输入的若干个整数,排序后按从小到大的次序在屏幕上输出。 答:主要程序代码如下: public static void main(String args) int temp; int values; for(int n=0;n valuesj + 1) temp = valuesj; valuesj = valuesj + 1; valuesj + 1 = temp; for(int k=0; k list = new ArrayLis
7、t(); for (int i=0;iman.length;i+) Employee e = maini.subm; sum=0; for (int j=0;j3.length;j+) sum+=ei.grade; list.add(sum); int n=list.get(0); int index=0; for (int i=1;ilist.size();i+) int m=list.get(i); if(nm) n=list.get(i); index=I; return topManager.submainindex.name; 作业 2 一 . 选择题 1. 有以下代码段: try
8、throw new EOFException(); catch(IOException e) System.out.println(“IOException Caught.“); 这里, EOFException 是 IOException 的子类。假设 这段代码是在某个类中,以下拿种说法是正确的? A. 代码不能通过编译 B. 代码能够运行并显示 “IOException Caught.“ C. throw 语句将被忽略,因为没有相应的 catch 语句与它对应。 D. 因为 throw 语句与 catch 语句不匹配,程序终止。 答: B 2. 当浏览器窗口被图标化后又重新恢复原大小时会调
9、用 Applet 的什么方法?(多选) A. init() B. start() C. stop() D. destory() E. paint() 答: B, E 3. 下 列哪些类允许你删除磁盘上的一个文件 ?(多选 ) A. File B. FileInputStream C. FileOutputStream D. FileReader E. FileWriter 答: A, C 4. 通常, URL 由以下哪几个部分组成? (多选 ) A. 协议名 B. Socket C. 端口号 D. 主机名 E. 文件路径名 F. 页内参照 答: A、 C、 D、 E 二请将下列 Java Ap
10、plication 改写为 Applet。 import java.awt.*; public class ExGui2 private Frame f; private Button bn,bs,bw,be,bc; public static void main(String args) ExGui2 guiWindow2 = new ExGui2(); guiWindow2.go(); public void go() f = new Frame(“Border Layout“); bn = new Button(“B1“); bs = new Button(“B2“); be = new
11、 Button(“B3“); bw = new Button(“B4“); bc = new Button(“B5“); f.add(bn,BorderLayout.NORTH); f.add(bs,BorderLayout.SOUTH); f.add(be,BorderLayout.EAST); f.add(bw,BorderLayout.WEST); f.add(bc,BorderLayout.CENTER); f.setSize(200,200); f.setVisible(true); 答:将类继承改为 Applet,去掉 main 函数,将其改为: public void init(
12、) go(); 三编制一个具有如下界面的计算器,它能接受鼠标事件并将鼠标对应键的值显示在屏幕上。 答:主要程序代码如下: import java.awt.*; import java.awt.event.*; public class Cal implements ActionListener private Frame f; private Panel p1; private Label l1; private Button b1,b2,b3,b4,b5,b6,b7,b8; private Button b9,b10,b11,b12,b13,b14,b15,b16; public stati
13、c void main(String args) Cal mycal = new Cal(); mycal.go(); public void go() f = new Frame(“My Calculate“); l1 = new Label(“0.0“,Label.RIGHT); f.add(l1,BorderLayout.NORTH); p1 = new Panel(); p1.setLayout(new GridLayout(4,4); b1 = new Button(“7“); b1.addActionListener(this); b2 = new Button(“8“); b2.
14、addActionListener(this); b3 = new Button(“9“); b3.addActionListener(this); b4 = new Button(“+“); b4.addActionListener(this); b5 = new Button(“4“); b5.addActionListener(this); b6 = new Button(“5“); b6.addActionListener(this); b7 = new Button(“6“); b7.addActionListener(this); b8 = new Button(“-“); b8.
15、addActionListener(this); b9 = new Button(“1“); b9.addActionListener(this); b10 = new Button(“2“); b10.addActionListener(this); b11 = new Button(“3“); b11.addActionListener(this); b12 = new Button(“*“); b12.addActionListener(this); b13 = new Button(“0“); b13.addActionListener(this); b14 = new Button(
16、“.“); b14.addActionListener(this); b15 = new Button(“=“); b15.addActionListener(this); b16 = new Button(“/“); b16.addActionListener(this); p1.add(b1); p1.add(b2); p1.add(b3); p1.add(b4); p1.add(b5); p1.add(b6); p1.add(b7); p1.add(b8); p1.add(b9); p1.add(b10); p1.add(b11); p1.add(b12); p1.add(b13); p
17、1.add(b14); p1.add(b15); p1.add(b16); f.add(p1,BorderLayout.CENTER); f.addWindowListener(new MyWindowListener(); f.setSize(300,300); f.pack(); f.setVisible(true); public void actionPerformed(ActionEvent e) l1.setText(e.getActionCommand(); 四建立一对客户 /服务程序。服务程序在 8000 端口侦听,如接收到客户程序送来的口令,验证是否是合法的口令 1111,如
18、是,就返回服务器的当前时间给客户程序,否则返回 “Invalid User!“。客户程序设法连到服务程序的 8000 端口,并通过命令行给出口令,然后等待 服务程序的返回,最后将返回的内容在标准输出上显示。(可在一台机器上调试这对程序) 答:主要程序代码如下: 客户端参考程序: import .*; import java.io.*; public class PasswdClient public static void main(String args) throws IOException int c; Socket s1; PrintWriter pw; BufferedReader
19、brd; String st; s1 = new Socket(“localhost“,8000); pw = new PrintWriter(new BufferedWriter( new OutputStreamWriter( s1.getOutputStream(),true); pw.println(args0); brd = new BufferedReader( new InputStreamReader( s1.getInputStream(); st = brd.readLine(); if (st != null) System.out.println(st); else S
20、ystem.out.println(“No Data Received!“); pw.close(); brd.close(); s1.close(); 服务器端参考程序 : import .*; import java.io.*; import java.util.*; public class PasswdServer public static void main(String args) ServerSocket s = null; Socket s1; String passwd,outString; BufferedReader s1in; PrintWriter pw; try
21、s = new ServerSocket(8000); catch (IOException e) System.out.println(“Server Socket Create Error!“); while (true) try s1 = s.accept(); s1in = new BufferedReader(new InputStreamReader( s1.getInputStream(); passwd = s1in.readLine(); if (passwd != null) passwd.trim(); if (passwd.equals(“1111“) Date d = new Date(); outString = d.toString(); else outString = “Invalid User!“; pw = new PrintWriter(new BufferedWriter( new OutputStreamWriter( s1.getOutputStream(),true); pw.println(outString); pw.close(); else System.out.println(“No Data Received!“); s1in.close(); s1.close(); catch (IOException e)