《福州大学07-08第一学期javaA卷》由会员分享,可在线阅读,更多相关《福州大学07-08第一学期javaA卷(17页珍藏版)》请在人人文库网上搜索。
1、课程名称 Java程序设计 考试日期 考生姓名 学号 专业或类别 题号一二三四五总分累分人 签名题分3015102322100得分考生注意事项:1、本试卷共 16 页,请查看试卷中是否有缺页。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。一、 选择题 (每小题1.5分,共30分) 得分评卷人1、下列不属于java语言的特色的是( c )。A、java提供无用存储单元收集机制 B、java具有可移植性C、java支持运算符重载 D、java提供多线程机制2、以下两条语句int a=6, b=7, c; c=a+ + +b; 执行后,a、b、c三个变量的值分别为( d)。A、6,7,13。
2、 B、6,8,14C、7,8,15 D、7,8,143、以下程序段的输出结果为(a )。for ( int i=1; i=6; i+ ) if (i=2) continue;if (i=4) break;System.out.print( i+“ ”); A、1 3 B、1 2 3 4 C、1 2 3 D、1 3 4 4、在浏览器中执行applet程序时,以下哪个方法将最先被执行(a)。A、init( ) B、start( )C、destroy( ) D、stop( )福州大学20072008学年第一学期考试A卷5、下列关于Applet的说法错误的是( b )。/=A、Applet自身不能运行。
3、,必须嵌入到其它应用程序(如浏览器)中运行B、从web 服务器上下载的Applet可以读写本地磁盘文件C、在Applet对应的HTML文档中使用param标记可向该Applet传递参数D、Applet的主类要定义为java.applet.Applet类的子类6、下列关于线程的说法错误的是( d )。A、一个进程可被划分为多个线程B、JVM加载代码后就会启动一个主线程C、在GUI程序中,java使用线程AWT_EventQueue专门负责处理GUI事件D、在Java中,Thread类由Runnable类派生而来。(Runnable是接口)7、下列关于线程的说法正确的是( a )。A、对于使用同一。
4、目标对象的线程,目标对象的成员变量自然就是这些线程共享的数据单元B、继承Thread类创建线程的方法中采用了接口回调技术C、使用同一目标对象的线程共享目标类中run( )方法所定义的局部变量/=D、非主线程不能启动其它线程8、对于下面的程序哪个结论是正确的(D )。Enum Color red,blue,yellow public class A public static void main (String args ) for ( Color a: Color.values( ) )System.out.println(a+”,”);A、程序无法通过编译 B、程序可以通过编译,但无法正常运。
5、行C、程序运行结果为0,1,2D、程序运行结果为red,blue,yellow9、 InetAddress类的哪个方法可以获取本地主机的网络地址(即InetAddress对象) ( B )。A、getByName(String) B、getLocalHost( )C、getAddress( ) D、getHostAddress( )10、想要读取URL资源中的html文本,下列方法正确的是( )。A、对URL对象调用openStream( )方法,获取此URL资源上的输入流再进行读取B、对URL对象调用retrieveContent( )方法C、对URL对象调用getConnection( )。
6、方法打开到该URL资源的连接后再对该连接调用getInputStream( )方法获取此连接上的输入流进行读取D、对URL对象调用openConnection( )方法打开到该URL资源的连接后再对该连接调用openStream( )方法获取此连接上的输入流进行读取11、加载JDBC驱动的正确方法是( C )。/=A、使用类java.sql.DriverManager的getDriver方法B、使用类java.sql.DriverManager的getConnection方法C、使用类java.lang.Class的forName方法D、使用接口java.sql.Driver的connect方。
7、法12、设已建立好到某数据库的连接conn,对conn调用哪个方法返回的对象可用于执行存储过程( A)。A、prepareCall B、prepareStatementC、createStatement D、createCall13、当需要许多面板切换,而每个面板需要显示为不同布局时,可以使用(B )。A、流式布局 B、卡片布局C、盒式布局 D、网格布局14、下列说法错误的是( B )。A、final类不能派生出其它类B、基类的final方法不能被子类继承C、基类的final方法不能被子类重写D、final类中的所有方法都是final方法15、下列关于公有类中成员的访问权限说法错误的是( D 。
8、)。/=A、友好成员可以被本类或同包中的其它类访问,但不能被异包中的类访问B、公有成员可以被其它任何类访问 C、私有成员仅可被本类访问D、保护成员仅可以被本类或同包中的子类访问,不能被异包中的类访问16、以下代码段 Point p1=new Point(2,3); Point p2=new Point(4,5); p1=p2;(Point为点类)的执行结果是(C )。A、p1所指Point对象的成员更新为4,5B、以上代码段不能通过编译C、p1和p2均指向原p2所指对象,原p1所指对象将被垃圾收集器收集D、p1为null, 原p1所指对象将被垃圾收集器收集17、下列关于静态初始化器的说法错误的。
9、是( )。A、静态初始化器是在类加载到内存时由系统调用执行的B、静态初始化器可执行多次C、静态初始化器中不能出现非静态域或非静态方法D、静态初始化器不是方法,因此没有方法名、返回值和参数列表18、下列关于this关键字的说法正确的是( D )。A、可以在构造函数内部通过this关键字调用同类的另一构造函数,并且此调用语句可以位于该构造函数内部的任意位置处B、可以在构造函数内部通过this关键字调用同类的两个或两个以上的构造函数C、在类的静态方法中可通过this关键字访问本类对象D、当方法的形参和类的成员变量同名时,可以使用this关键字指明成员变量19、当使用BufferedReader类的r。
10、eadLine()方法读取文本文件时,如何判断已经读完文件中的所有数据?( A )A、当readLine()返回null时B、当程序抛出IOException异常时C、当readLine()返回false时D、当readLine()返回-1时20、若类B由类A继承而来,在A类中定义有成员方法f( )和成员变量i, 在B类中定义有同名成员f( )和i, 且A a=new B( )。则下列说法正确的是( )。A、a.i访问到的是B类中的iB、a.f( ) 访问到的是A类中的f( )C、语句 (B)a).f( );能通过编译且访问到的是B类中的f( )D、若在B类中新增成员变量j,则可使用a.j访问。
11、该成员二、 填空题(每空1分,共15分) 得分评卷人注:填空题中涉及到填写方法的空格,写出方法名即可。1、Java源文件的后缀名为 ,经编译后生成的字节码文件后缀名为 。2、每一个java应用程序都是从 方法开始执行的。3、处于运行状态的线程调用yield( )方法使自身进入 状态。4、Window型容器的默认布局为 。(填布局管理器类名)5、对复选框调用 方法可为其注册ItemEvent事件侦听器,当选中复选框触发ItemEvent事件时,由事件侦听器调用 方法进行事件处理。6、接口中的方法都默认带有关键字 和 。7、在子类构造函数中调用父类构造函数需使用 关键字,且此调用语句必须是子类构造。
12、函数的第 条语句。8、以下代码段int a=1,2,3; a3=4; 在执行时会抛出 异常。(填异常类名)9、为实现同一网页中两个Applet间的通信,可在一个Applet中通过Applet类提供的方法获取AppletContext对象后,再通过该对象调用AppletContext类的 方法获取指定名称的Applet的对象引用。10、在读写过程中为减少对磁盘的访问次数,应采用 流。三、 判断题(每小题1分,共10分)得分评卷人1、Java源文件中包含main( )方法的主类类名必须与源文件名相同。( )2、在java中直接把一个高精度的值赋给一个低精度变量不会造成编译错误,但会带来精度的损失。。
13、( )3、抽象类中不能有私有成员变量和方法。( )4、由于Java仅允许单继承,所以一个类仅可实现一个接口。( )5、将一个对象引用声明为常量,说明该引用所指向的对象不可改变。( )/6、实现事件侦听接口的类必须实现该接口中的所有方法。( )7、final方法可访问本类的非final方法和成员。( )8、Swing组件可以直接添加到Swing顶层容器中。( )/9、如果在子类中重新定义与父类成员变量同名的变量,则父类成员变量在子类对象中不占用空间。( )10、线程在同步方法中调用wait( )方法使本线程释放了该同步方法上的锁,即其它线程有机会访问该同步方法。( )四、 程序阅读题。(共23分。
14、)得分评卷人1、 public class A public static void main(String args) Scanner inScan=new Scanner(System.in);System.out.println(please input a line of text:);String s; while (inScan.hasNext( ) s=inScan.next( );if (s.equals(&) break;System.out.print(s+*); (1) 要使以上程序能够通过编译,必须引入什么包?(1分)(2)使用import语句引入上问的包后执行程序,当。
15、屏幕上出现 “please input a line of text:”后输入文本行“I am a student &”,得到的输出是什么?(4分)2、 public class A public static void main(String args) char s1=s,t,u,d,e,n,t;char s2=new char3;System.arraycopy(s1,2,s2,0,3);System.out.println(new String(s2);(1)以上程序能否通过编译?(1分)(2)若能通过编译,请写出执行结果;若不能,请修改。(4分)3、 class A implemen。
16、ts Runnable Thread student,teacher; A( ) teacher=new Thread(this); student=new Thread(this);teacher.setName(刘教授); student.setName(陈强);public void run() if (Thread.currentThread( )=student) try System.out.println(student.getName()+正在睡觉,不听课);Thread.sleep(1000*60*60);catch (InterruptedException e) Syst。
17、em.out.println(student.getName()+被老师叫醒了); System.out.println(student.getName()+开始听课); else if (Thread.currentThread( )=teacher) for (int i=1; i=3; i+) System.out.println(上课啦!);try Thread.sleep(500);catch (InterruptedException e) System.out.println(there is an interruption in teacher process!); stude。
18、nt.interrupt(); public class B public static void main(String args) A a=new A();a.student.start(); a.teacher.start();设操作系统在调度同优先级线程时,按照就绪队列中先后次序进行调度。(1) 写出在以上程序执行过程中,CPU上线程的变换情况。(即在不同时间段CPU上执行的是哪个线程)(2分)(2) 写出程序的执行结果。(4分)4、 class A private int a;static int b;protected int c;void f(int x,int y,int z)。
19、 a=x; b=y; c=z; System.out.println(this is f function in class A!);System.out.println(a=+a+ b=+b+ c=+c);static void g(int x) b=x;System.out.println(this is g function in class A!);System.out.println(b=+b); class B extends A static int b;protected int c;void f(int x,int y,int z) super.f(x,y,z);b=y+1;。
20、 c=z+1;System.out.println(this is f function in class B!);System.out.println(b=+b+ c=+c);static void g(int x) b=x;System.out.println(this is g function in class B!);System.out.println(b=+b); public class M Public static void main(String args) A aa=new B( );aa.f(1,2,3);aa.g(4);System.out.println(b=+A。
21、.b+ c=+aa.c+ b=+B.b+ c=+(B)aa).c);写出以上程序的执行结果。(7分)五、 程序补充题(共22分)得分评卷人1、要求实现一个简单的计算器,界面如下图所示。在两个可编辑的文本框中可输入两个操作数,选择一种计算类型(仅可选择一种),点击确定按钮,结果即显示在下方的不可编辑文本框中。import java.awt.*;import javax.swing.*;(1) (0.5分)class Win extends JFrame (2) (0.5分)JTextField input1,input2,result;JButton confirm; JRadioButton 。
22、sum,sub,mul,div;Win( ) JPanel p1=new JPanel();/*请填写窗口北部面板的界面设计代码,两个文本框的长度均为6*/(3)(2分)add(p1,BorderLayout.NORTH);JPanel choose=new JPanel(); choose.setBorder(BorderFactory.createTitledBorder(选择计算类型);/*请填写窗口中部面板的界面设计代码*/(4)(2分)add(choose,BorderLayout.CENTER);/*以下为窗口南部的界面设计代码*/(5) (0.5分)(6) (0.5分) add(。
23、result,BorderLayout.SOUTH); setSize(300,300);setVisible(true);validate( ); /*请填写代码段,使点击窗口的关闭按钮时应用程序退出执行*/(7)(1分)public void actionPerformed(ActionEvent ae) double a=0,b=0,c=0; /*a, b分别表示在窗口北部文本框中输入的两个操作数的值;c表示运算结果*/try a=(8) (0.5分)b=(9) (0.5分)catch (NumberFormatException nfe) System.out.println(the 。
24、input is not number!);/*请填写以下代码段,根据选择的计算类型进行计算并将结果显示在窗口南部的文本框中。若没有选择计算类型则在文本框中显示出错信息。*/(10)(2分) public class EM public static void main(String args) new Win( );根据程序功能,填补以上空缺。在横线处填一条语句或一个表达式;在空白处填代码段,代码段可包含一条或多条语句。(共10分)2、以下程序实现了Echo服务器与客户端,功能如下: 服务器能同时服务于多个客户 服务器在端口8000侦听客户请求。 服务器将客户端发来的每行文本发回客户端,直到。
25、连接终止 服务器接收到客户端发来的“.QUIT”(忽略大小写)后,返回原串并终止连接,仍可响应后续客户的请求 服务器接收到客户端发来的“.SHUTDOWN”(忽略大小写)后,返回”.QUIT”并终止连接,且不再响应后续客户的请求 客户端向服务器发送串并读取反馈回来的串,直到连接终止 如果客户端想终止连接,就向服务器发出“.QUIT”(忽略大小写) 如果客户端想使服务器停止接收客户请求,就向服务器发出“.SHUTDOWN”(忽略大小写) 如果客户端接收到反馈回来的串是“.QUIT” (忽略大小写),则终止与客户端的连接。以下是客户端程序:import java.net.*;import java。
26、.io.*;public class EchoClient public static void main(String args) /服务器的主机名由args0传入 try (1) System.out.println(Connection established);(2) (3) System.out.println(has opened the I/O byte stream on the connection to server);String line=new String();While ((4) ) System.out.print(Enter string:);line=rea。
27、dString();System.out.println(Sending string to server.);(5) System.out.println(Waiting for server response.);(6) System.out.println(Received:+line);in.close( ); out.close( ); /in为字节输入流,out为字节输出流(7) System.out.println(connection closed!);catch (UnknownHostException uhe) System.err.println(Unknown hos。
28、t:+args0);catch (IOException ioe) System.err.println(IOException:+ioe); public static String readString( ) String str=new String( );(8) try str=in.readLine(); /in为字符输入流catch (IOException e) System.out.println(Console.readString:Unknown error.);System.exit(-1);return str; 以下是服务器端程序: import java.io.*;。
29、import java.net.*;class EchoServerThread extends Thread private Socket connection; public EchoServerThread(Socket c) connection=c; (9) public void run( ) try (10) (11) System.out.println(has opened the I/O byte stream on the connection to client);String line=new String();while( (12) ) (13) System.ou。
30、t.println(Echoing: +line); if ((14) ) (15) line=.QUIT; (16) in.close( ); out.close( ); /in为字节输入流,out为字节输出流 (17) System.out.println(Connection closed.);catch (IOException ioe) System.out.println(Connection closed unexpectedly.);public class EchoServer static boolean running=true; public static void m。
31、ain(String args) try (18) System.out.println(Server started on +server.getLocalPort();while (running) (19) System.out.println(New connection moved to thread.);EchoServerThread handler=new EchoServerThread(connection); (20) System.out.println(server has closed!);catch(IOException ioe) System.err.println(Error: +ioe);(1)根据程序功能,填补以上空缺,每个空缺仅填一条语句或一个表达式。(每空0.5分,共10分)(2)当一个客户向服务器发送“.shutdown”后,服务器是否还能响应下一个客户的请求(即服务器是否能马上结束侦听状态)?简要说明你的理由。(2分)第 17 页 共 17 页。