网络程序设计 带答案 题解

更新时间:2024-07-09 17:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、选择题 1.

Java语言是由________________发明的。 A. Microsoft公司 C. IBM公司 2.

B. Borland公司 D. SUN公司

设类While定义如下:

1. public class While { 2. public void loop() { 3. int i = 0; 4. while (1) {

5. System.out.println(\6. } 7. } 8. }

以下哪些说法是正确的? A. 类能成功通过编译。 B. 因为行1的原因编译出错。 C. 因为行4的原因编译出错。 D. 因为行5的原因编译出错。

3. 假设有一个二维数组a[10][y],问以下哪个表达式能用来表示第二维的大小y? A. a.length(); B. a.size(); C. a[0].length; D. a.length[10]; E. a[].length;

4.以下哪些接口的定义是合法的?(多选,2)

A. public interface A {int a();} B. public interface B {int a() {}} C. private interface D {} D. abstract interface E {} 答案:A,D

5.哪一种布局管理器将容器分为东西南北中五个区域? A. FlowLayout

B. BorderLayout C. GridLayout D. CardLayout

6. Java中的所有例外对应的类均是以下哪个类的子类或子孙类? A. Error

B. Exception

第1页 共24页

C. throw D. RuntimeException

7. 当浏览器窗口被图标化后又重新恢复原大小时会调用Applet的什么方法?(多选,2)

A. init() B. start() C. stop() D. destory() E. paint()

8. 下列哪个类允许你删除磁盘上的一个文件?

A. File

B. FileInputStream C. FileOutputStream D. FileReader E. FileWriter

9. 以下哪个类中有一个名为accept()的方法?

A. Socket B. ServerSocket C. URL

D. URLConnection

10. 以下哪些说法是正确的?(多选,2)

A. Connection、Statement和ResultSet均是java.sql包中的接口 B. 可以用Statement对象的executeQuery()方法来更新数据库

C. 执行查询操作后,如结果中某列的SQL类型为数字型(如NUMBER),则必须使用ResultSet的

getInt()方法来获得该列对应的值。

D.类型4的JDBC driver比较适合于使用后台数据库的Applet。

1. Java字节码文件的后缀为________。 A. obj C. java

B. exe

D. class

2. Java Application中,以下哪个或哪些main()方法的声明是合法的? A. public static void main()

B. public static void main(String[] strs) C. public static void main(String args) D. static public int main(String[] args) E. static void main(String[] args) F. 均不正确

3. 关于Java的构造方法,下列说法中正确的有:

(1) 通常构造方法由Java自动调用,不需由程序来显式地调用。 (2) 构造方法一定与类同名。

(3) 通过方法重载, 构造方法可以有不同的参数和类型。

(4) 构造方法不必指出返回类型,其缺省的返回类型是对象类型本身。

第2页 共24页

A. 1、3 B. 2 C. 2、3 D. 全部正确 4. 下列程序段执行后,在标准输出上显示的内容为: String b1 = new String(“Hello!”); String b2 = new String(“Hello!”); if (b1 == b2)

if (b1.equals(b2))

System.out.println(“a”); else

System.out.println(“b”);

else

if (b1.equals(b2))

System.out.println(“c”); else

System.out.println(“d”);

A. a

B. b

C. c

D. d

5. 关于类变量和类方法,下列说法正确的有:

(1) 在生成实例前类方法体内不能访问实例变量,也不能使用this关键字。 (2) System.out即为一个类变量。

(3) 在没有生成实例的情况下也能使用类方法。 (4) 必须通过类名来存取该类中的类变量。

A. 2对 B. 2、3对 C. 1、2和3对 D. 全对 6. 下列程序的输出应该是什么?

public class MyProgram {

public static void main(String args[]) { } }

A. 程序能通过编译,但运行出错。

B. 因为没有对应的catch语句,程序不能通过编译。 C. Hello world

D. Hello world(回车)Finally executing.

7. 下列哪个组件有一个addActionListener()方法,能响应事件ActionEvent? A. java.awt.Frame B. java.awt.Panel

第3页 共24页

try {

System.out.println(“Hello world ”); throw new Exception();

}

System.out.println(“Finally executing.”);

finally {

}

C. java.awt.Button D. java.awt.Label 8. 有下述代码段:

1. import java.io.*;

2. public class ReadEmployee {

3. public static void main(String[] args) { 4. File employee = new File(\

5. FileInputStream in = new FileInputStream(employee); 6. } 7. }

当编译和运行上述代码时会产生什么情况? A. 类能通过编译,但运行出错。 B. 类不能通过编译。

C. 类能正常运行,并生成名为test.txt的文件。 D. 类能正常运行,但并不生成任何文件。 E. 上述均不对。

9. 通常,套接字Socket中包含了以下哪些要素?(多选)

A. 主机IP地址 B. 端口号 C. 客户程序 D. 服务程序

E. ServerSocket类和Socket类

10. 以下哪一类JDBC driver不需要安装客户端软件,特别适合于通过网络使用

后台数据库的Applet? A. 类型1 B. 类型2 C. 类型3 D. 1. 2.

编译Applet源程序文件后,它所产生的字节码文件的扩展名为: A. java

B. class

C. html

D. exe

类型4

设a为布尔型变量,合法的赋值是_________。

B. a=t D. a=true

A. a=\ C. a=True 3.

下列类的定义中缺少对变量x的声明,使用哪些选项对应的声明语句能使类通过编译?(多选,2) 1. public class Declare {

第4页 共24页

2. _______________

3. public static void main(String [] args) { 4. _______________

5. System.out.println(\6. } 7. }

A. \插入行 2 B. \插入行 4 C. \插入行 2 D. \插入行 4 E. \插入行 2 F. \插入行 4 4.

关于类变量和类方法,下列说法正确的有:

(5) 类方法体内生成实例前不能访问实例变量,也不能使用this关键字。 (6) System.out即为一个类变量。

(7) 类方法可在任何地方使用而不必顾及其实例是否存在。 (8) 必须使用类名后跟点操作符来存取该类中的类变量。 A. 2对 B. 2、3对 C. 1、2和3对 D. 全对 答案:C 5.

将类的成员的访问权限设置为默认的,则该成员能被: A. 同一包中的类访问 B. 其他包中的类访问 C. 所有的类访问 D. 所有类的子类访问 6.

对下列程序,以下哪种说法是正确的?

class MyException throws NullPointerException { public static void main(String[] args) {

} }

A. 程序不能通过编译

B. 程序能够运行,但会产生一个NullPointerException. C. 程序能正常运行并显示String is. 7.

对BorderLayout布局管理器来说,以下哪些是合法的位置区域?(多选,4) A. NORTH B. SOUTH C. TOP D. EAST

第5页 共24页

String s = null;

System.out.println(\

2.

在Applet面板上显示initializing... starting...

在标准输出上显示(使用appletviewer对应所在的dos窗口) initializing… starting... stopping…

preparing for unloading...

3.

完成划线部分。

使用JDK自带的appletviewer来运行这个applet,其在applet面板上显示的内容是什么?从applet启动到关闭,其在标准输出(appletviewer对应的dos窗口)上的输出是什么?

import java.applet.Applet;

import java.awt.*;

public class Simple extends Applet; {

StringBuffer buffer; public void init() {

buffer = new StringBuffer(); addItem(“initializing... “); }

public void start() { addItem(“starting... “); }

public void stop() { addItem(“stopping... “); }

public void destroy() {

addItem(“preparing for unloading...”); }

void addItem(String newWord) { System.out.println(newWord); buffer.append(newWord); repaint(); }

public void paint(Graphics g) {

g.drawRect(0, 0, getSize().width - 1, getSize().height - 1); g.drawString(buffer.toString(), 5, 15); } }

五.下列类ReverseString的功能是从命令行接受一个字符串,将字符串的各字符颠倒后在标准输出上输出。如命令行输入为“abcd”,输出为“dcba” 。请写出类中缺少的reverseIt()方法。(10分)

第16页 共24页

class ReverseString {

// 方法reverseIt();

public static void main(String[] args) {

System.out.println(\

} }

参考程序: class ReverseString {

public static String reverseIt(String source) { int len = source.length();

StringBuffer dest = new StringBuffer(len); for (int i = len - 1; i >= 0; i--) { dest.append(source.charAt(i)); }

return dest.toString(); }

public static void main(String[] args) {

System.out.println(\ } }

六. 写一程序,读入命令行第一个参数指定的文本文件,将其所有字符转换为大写后写入第二个参数指定的文件中。(15分) 参考程序: import java.io.*; public class FileCopy {

public static void main(String args[]) throws IOException{ if (args.length != 2) {

System.out.println(\

}

BufferedReader sfl=new BufferedReader(new FileReader(args[0])); }

第17页 共24页

PrintWriter dfl = new PrintWriter(new FileWriter(args[1])); String c;

while ((c=sfl.readLine()) != null)

sfl.close(); dfl.close();

dfl.println(c.toUpperCase());

return;

}

------------------------------------------------------章节分割线------------------------------------------------------------ .阅读下列程序,并回答问题:(10分)

1. SuperClass中的成员变量a是类变量还是实例变量?其中的SuperClass方法又是什么方法? }

public class SubClass extends SuperClass { } 参考答案:

1. a为实例变量,SuperClass方法是构造方法(4分) 2. 输出:(6分) hello aaa

四.阅读下列程序,并回答问题:(15分)

4. 5.

init(), start(), stop(), destory() 四个方法各在什么阶段被执行?

如使用JDK自带的appletviewer来运行这个applet,运行后在applet面板上首先看到的内容是什么?此时标准输出上显示什么内容?将applet画面最小化后又恢复到原来的大小,applet面板上显示的内容又有什么变化? 6.

import java.applet.Applet; import _______________

public class LifeCycle __________ { int initCount = 0; int startCount = 0; int stopCount = 0; int destroyCount = 0;

StringBuffer buffer = new StringBuffer(); public void init() { ++initCount;

System.out.println(\addItem(\

第18页 共24页

完成划线部分。 String a = \

public static void main(String args[]) { }

SubClass bar = new SubClass(); System.out.println(bar.a); 2.程序的输出是什么? String a = \SuperClass() { }

System.out.println(a);

class SuperClass {

}

public void start() { ++startCount;

System.out.println(\addItem(\}

public void stop() { ++stopCount;

System.out.println(\addItem(\}

public void destroy() { ++destroyCount;

System.out.println(\addItem(\}

void addItem(String newWord) { buffer.append(newWord); repaint(); }

public void paint(Graphics g) {

g.drawRect(0, 0, getSize().width - 1, getSize().height - 1); g.drawString(buffer.toString(), 5, 15); } }

参考答案:(4分)

1.

init():在Applet被第一次载入或重新载入时运行。

start():在Applet可见时运行。窗口从最小化恢复为原大小时也会运行。 stop():在Applet不可见时运行。如用户转向其他网页或窗口最小化时均会执行。 destory():在关闭浏览器,Applet消亡时被执行。 2.

小应用程序各个阶段的输出:(7分) 在Applet面板上显示init():1,start():1,

在标准输出上显示(使用appletviewer对应所在的dos窗口) init():1 start():1

窗口最小化后又恢复为原来大小,applet面板上显示: init():1,start():1,stop():1,start():2, 3.

划线部分: (4分) import java.awt.*; extends Applet;

五.下列程序的目的是实现文本文件的拷贝。其中源文件名由第一个命令行参数给出,目的文件名由第二个命令行参数给出。请完成方法copyfiles(),使程序完整。(10分)

第19页 共24页

import java.io.*; public class CopyFile {

//method copyfiles

//…………………….

public static void main(String[] args) throws Exception {

if (args.length >= 1)

copyfiles(args[0],args[1]); else

System.err.println(\ SouceFileName DestFileName\ } }

参考程序:

public static void copyfiles(String sfl,String dfl) throws IOException {

FileReader in = new FileReader(sfl); FileWriter out = new FileWriter(dfl); int c;

while ((c = in.read()) != -1) out.write(c); in.close(); out.close(); }

六.以下是一个使用Socket进行通信的服务程序,仔细阅读该程序,完成下列要求:(15分)

3. 将服务程序划线部分中的XXX用正确的名词替代(共4处),然后解释用标号指定的斜体字语句

的功能(共3条),最后说出该服务程序完成的功能。(9分)

4. 编写一客户程序,能与服务程序通信并将服务程序发来的信息在标准输出上显示。(设客户程序

与服务程序在同一主机上运行,主机名为localhost)(6分)

服务程序: import java.net.*; import java.io.*;

public class SimpleServer {

public static void main(String args[]) {

ServerSocket s = null; Socket s1;

String sendString = “Welcome to visit me!”; OutputStream s1out; DataOutputStream dos;

第20页 共24页

try {

s = new ServerSocket (5432); -----(1) } catch ( IOException e) {} while (true) {

try {

s1 = s.accept(); ------(2) s1out = s1.getOutputStream(); dos = new DataOutputStream(s1out); dos.writeUTF(sendString); -----(3) s1out.close(); s1.close();

} catch (IOException e) {} }

} }

(2)(3分)语句1的功能为构造ServerSocket对象,使服务程序在指定的5432端口侦听。

语句2的功能为调用accept()方法,该方法等待客户端来的连接请求然后返回一个新的Socket与之建立连接。

语句3调用writeUTF()方法将要发送的字符串转换为与机器平台无关的UTF-8格式然后在网上传输。 (3)(2分)程序功能:

服务程序首先构造ServerSocket对象,并在指定的5432端口侦听,当有客户端的连接请求来时先建立连接,然后向客户方发送字符串“Welcome to visit me!”。 b) 参考程序(6分) import java.net.*; import java.io.*;

public class SimpleClient {

public static void main(String args[]) throws IOException { }

第21页 共24页

int c; Socket s1; InputStream s1In; DataInputStream dis;

s1 = new Socket(localhost,5432); s1In = s1.getInputStream(); dis = new DataInputStream(s1In); String st = new String(dis.readUTF()); System.out.println(st); s1In.close(); s1.close()

}

------------------------------------------------------章节分割线------------------------------------------------------------ 1. 有以下程序段:(9分)

11.import java.awt.*; 12.import java.awt.event.*;

13.class X extends Frame implements MouseListener { 14. public X() {

15. this.addMouseListener(this); 16. this.setSize(300,300); 17. this.setVisible(true); 18. } 9.

public void mouseClicked(MouseEvent e) { 10. System.out.println(\11. }

12. public static void main(String[] args) { 13. 14. } 15.}

问:程序能否通过编译并运行?如能,说明程序的功能,如不能,说明原因并修改程序使之能够运行。 参考答案:

程序不能通过编译,因为一个类如要实施某个接口,就要实现该接口中的所有方法,类X并未实现MouseListener的所有方法,所以编译出错。(3分) 修改如下:(6分) import java.awt.*; import java.awt.event.*; class X extends Frame { public X() { }

public static void main(String[] args) { new X(); } }

2.若tryThis()方法抛出NullPointerException例外,则下面一段代码产生的输出是什么?(6分) try{

第22页 共24页

this.addMouseListener( new MouseAdapter() {

public void mouseClicked(MouseEvent e) { System.out.println(\ } });

this.setSize(300,300); this.setVisible(true);

new X();

System.out.println(\tryThis(); return;

} catch(IOException x1) { System.out.println(\} catch(Exception x2) {

System.out.println(\} finally {

System.out.println(\}

参考答案: 程序输出: before Exception exception2 finally

四.下面程序实现对自然数1到10的求和计算,编译时程序出错,请说出错原因并改正。(10分) public class Add_Sum {

public static void main(String args[]) { } }

参考答案:

变量i定义在for循环中,其作用域仅限于for循环,因此在用System.out.println语句输出时会报错。(3分) 修改如下:(7分) public class Add_Sum {

public static void main(String args[]) { } }

五.仔细阅读下列程序,完成以下要求:(10分)

5. 完成划线部分中的XXX(共4处),使程序完整。(8分) 6. 说出下列程序的功能。(2分) 服务程序:

import XXX ; ----(1) import XXX; ----(2) 第23页 共24页

int sum = 0; int i = 0;

for (i=1;i<=10;i++)

sum = sum+i;

System.out.println(\int sum = 0;

for (int i=1;i<=10;i++)

sum = sum+i;

System.out.println(\

public class URLReader {

public static void main(String[] args) throws Exception { }

参考答案:

1. 划线部分(8分)

import java.net.*; -- (1) import java.io.*;; -- (2) openStream() -- (3) readLine() -- (4) 2.功能:(2分)

程序读入华东师范大学网站首页的内容(HTML形式),并在标准输出上显示。

六.编程,从键盘上读入一行,并将其中的小写字符转换为大写字符后在屏幕上回显。上述操作循环执行,直至输入空行,程序结束。(15分) 参考程序: import java.io.*; public class Echo {

public static void main(String[] args) { BufferedReader in = new BufferedReader(

new InputStreamReader(System.in)); String s; try {

while((s = in.readLine()).length() != 0) System.out.println(s.toUpperCase()); } catch(IOException e) { e.printStackTrace(); } } }

URL ecnu = new URL(\/该URL对应华东师范大学网站首页 BufferedReader in = new BufferedReader(

new InputStreamReader( ecnu. XXX )); ----(3)

String inputLine;

while ((inputLine = in. XXX ) != null) ----(4) System.out.println(inputLine); in.close();

}

第24页 共24页

本文来源:https://www.bwwdw.com/article/hb2.html

Top