0708第一学期javaA卷.docx

上传人:b****6 文档编号:9005073 上传时间:2023-02-02 格式:DOCX 页数:36 大小:35.55KB
下载 相关 举报
0708第一学期javaA卷.docx_第1页
第1页 / 共36页
0708第一学期javaA卷.docx_第2页
第2页 / 共36页
0708第一学期javaA卷.docx_第3页
第3页 / 共36页
0708第一学期javaA卷.docx_第4页
第4页 / 共36页
0708第一学期javaA卷.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

0708第一学期javaA卷.docx

《0708第一学期javaA卷.docx》由会员分享,可在线阅读,更多相关《0708第一学期javaA卷.docx(36页珍藏版)》请在冰豆网上搜索。

0708第一学期javaA卷.docx

0708第一学期javaA卷

课程名称Java程序设计考试日期2008.1.14

考生姓名学号专业或类别

一、选择题(每小题1.5分,共30分)

1、下列不属于java语言的特色的是()。

A、java提供无用存储单元收集机制B、java具有可移植性

C、java支持运算符重载D、java提供多线程机制

2、以下两条语句inta=6,b=7,c;c=a+++++b;执行后,a、b、c三个变量的值分别为()。

A、6,7,13B、6,8,14

C、7,8,15D、7,8,14

3、以下程序段的输出结果为()。

for(inti=1;i<=6;i++)

{

if(i==2)continue;

if(i==4)break;

System.out.print(i+“”);

}

A、13B、1234

C、123D、134

4、在浏览器中执行applet 程序时,以下哪个方法将最先被执行(    )。

A、init()  B、start()     

C、destroy()       D、stop()

5、下列关于Applet的说法错误的是()。

 A、Applet自身不能运行,必须嵌入到其它应用程序(如浏览器)中运行

 B、从web服务器上下载的Applet可以读写本地磁盘文件

 C、在Applet对应的HTML文档中使用param标记可向该Applet传递参数

 D、Applet的主类要定义为java.applet.Applet类的子类

6、下列关于线程的说法错误的是()。

A、一个进程可被划分为多个线程

B、JVM加载代码后就会启动一个主线程

C、在GUI程序中,java使用线程AWT_EventQueue专门负责处理GUI事件

D、在Java中,Thread类由Runnable类派生而来。

7、下列关于线程的说法正确的是()。

A、对于使用同一目标对象的线程,目标对象的成员变量自然就是这些线程共享的数据单元

B、继承Thread类创建线程的方法中采用了接口回调技术

C、使用同一目标对象的线程共享目标类中run()方法所定义的局部变量

D、非主线程不能启动其它线程

福州大学2007~2008学年第一学期考试A卷

8、对于下面的程序哪个结论是正确的()。

EnumColor{red,blue,yellow}

publicclassA{

publicstaticvoidmain(Stringargs[]){

for(Colora:

Color.values())

System.out.println(a+”,”);

}

}

A、程序无法通过编译

B、程序可以通过编译,但无法正常运行

C、程序运行结果为0,1,2

D、程序运行结果为red,blue,yellow

9、InetAddress类的哪个方法可以获取本地主机的网络地址(即InetAddress对象)()。

A、getByName(String)B、getLocalHost()

C、getAddress()D、getHostAddress()

10、想要读取URL资源中的html文本,下列方法正确的是()。

A、对URL对象调用openStream()方法,获取此URL资源上的输入流再进行读取

B、对URL对象调用retrieveContent()方法

C、对URL对象调用getConnection()方法打开到该URL资源的连接后再对该连接调用getInputStream()方法获取此连接上的输入流进行读取

D、对URL对象调用openConnection()方法打开到该URL资源的连接后再对该连接调用openStream()方法获取此连接上的输入流进行读取

11、加载JDBC驱动的正确方法是()。

A、使用类java.sql.DriverManager的getDriver方法

B、使用类java.sql.DriverManager的getConnection方法

C、使用类java.lang.Class的forName方法

D、使用接口java.sql.Driver的connect方法

12、设已建立好到某数据库的连接conn,对conn调用哪个方法返回的对象可用于执行存储过程()。

A、prepareCallB、prepareStatement

C、createStatementD、createCall

13、当需要许多面板切换,而每个面板需要显示为不同布局时,可以使用()。

A、流式布局B、卡片布局

C、盒式布局D、网格布局

14、下列说法错误的是()。

A、final类不能派生出其它类

B、基类的final方法不能被子类继承

C、基类的final方法不能被子类重写

D、final类中的所有方法都是final方法

15、下列关于公有类中成员的访问权限说法错误的是()。

A、友好成员可以被本类或同包中的其它类访问,但不能被异包中的类访问

B、公有成员可以被其它任何类访问

C、私有成员仅可被本类访问

D、保护成员仅可以被本类或同包中的子类访问,不能被异包中的类访问

16、以下代码段Pointp1=newPoint(2,3);Pointp2=newPoint(4,5);p1=p2;

(Point为点类)的执行结果是()。

A、p1所指Point对象的成员更新为4,5

B、以上代码段不能通过编译

C、p1和p2均指向原p2所指对象,原p1所指对象将被垃圾收集器收集

D、p1为null,原p1所指对象将被垃圾收集器收集

17、下列关于静态初始化器的说法错误的是()。

A、静态初始化器是在类加载到内存时由系统调用执行的

B、静态初始化器可执行多次

C、静态初始化器中不能出现非静态域或非静态方法

D、静态初始化器不是方法,因此没有方法名、返回值和参数列表

18、下列关于this关键字的说法正确的是()。

A、可以在构造函数内部通过this关键字调用同类的另一构造函数,并且此调用语句可以位于该构造函数内部的任意位置处

B、可以在构造函数内部通过this关键字调用同类的两个或两个以上的构造函数

C、在类的静态方法中可通过this关键字访问本类对象

D、当方法的形参和类的成员变量同名时,可以使用this关键字指明成员变量

19、当使用BufferedReader类的readLine()方法读取文本文件时,如何判断已经读完文件中的所有数据?

()

A、当readLine()返回null时

B、当程序抛出IOException异常时

C、当readLine()返回false时

D、当readLine()返回-1时

20、若类B由类A继承而来,在A类中定义有成员方法f()和成员变量i,在B类中定义有同名成员f()和i,且Aa=newB()。

则下列说法正确的是()。

A、a.i访问到的是B类中的i

B、a.f()访问到的是A类中的f()

C、语句((B)a).f();能通过编译且访问到的是B类中的f()

D、若在B类中新增成员变量j,则可使用a.j访问该成员

 

二、填空题(每空1分,共15分)

注:

填空题中涉及到填写方法的空格,写出方法名即可。

1、Java源文件的后缀名为,经编译后生成的字节码文件后缀名为。

2、每一个java应用程序都是从方法开始执行的。

3、处于运行状态的线程调用yield()方法使自身进入状态。

4、Window型容器的默认布局为。

(填布局管理器类名)

5、对复选框调用方法可为其注册ItemEvent事件侦听器,当选中复选框

触发ItemEvent事件时,由事件侦听器调用方法进行事件处理。

6、接口中的方法都默认带有关键字和。

7、在子类构造函数中调用父类构造函数需使用关键字,且此调用语句必须是

子类构造函数的第条语句。

8、以下代码段inta[]={1,2,3};a[3]=4;在执行时会抛出异常。

(填异常类名)

9、为实现同一网页中两个Applet间的通信,可在一个Applet中通过Applet类提供的

方法获取AppletContext对象后,再通过该对象调用AppletContext类的方法获取指定名称的Applet的对象引用。

10、在读写过程中为减少对磁盘的访问次数,应采用流。

三、判断题(每小题1分,共10分)

1、Java源文件中包含main()方法的主类类名必须与源文件名相同。

()

2、在java中直接把一个高精度的值赋给一个低精度变量不会造成编译错误,但会带来精度的损失。

()

3、抽象类中不能有私有成员变量和方法。

()

4、由于Java仅允许单继承,所以一个类仅可实现一个接口。

()

5、将一个对象引用声明为常量,说明该引用所指向的对象不可改变。

()

6、实现事件侦听接口的类必须实现该接口中的所有方法。

()

7、final方法可访问本类的非final方法和成员。

()

8、Swing组件可以直接添加到Swing顶层容器中。

()

9、如果在子类中重新定义与父类成员变量同名的变量,则父类成员变量在子类对象中不占用空间。

()

10、线程在同步方法中调用wait()方法使本线程释放了该同步方法上的锁,即其它线程有机会访问该同步方法。

()

四、程序阅读题。

(共23分)

1、publicclassA{

publicstaticvoidmain(String[]args){

ScannerinScan=newScanner(System.in);

System.out.println("pleaseinputalineoftext:

");

Strings;

while(inScan.hasNext()){

s=inScan.next();

if(s.equals("&")break;

System.out.print(s+"*");

}

}

}

(1)要使以上程序能够通过编译,必须引入什么包?

(1分)

 

(2)使用import语句引入上问的包后执行程序,当屏幕上出现“pleaseinputalineoftext:

”后输入文本行“Iamastudent&”,得到的输出是什么?

(4分)

 

2、publicclassA{

publicstaticvoidmain(String[]args){

char[]s1={'s','t','u','d','e','n','t'};

char[]s2=newchar[3];

System.arraycopy(s1,2,s2,0,3);

System.out.println(newString(s2));

}

}

(1)以上程序能否通过编译?

(1分)

 

(2)若能通过编译,请写出执行结果;若不能,请修改。

(4分)

 

3、classAimplementsRunnable{

Threadstudent,teacher;

A(){

teacher=newThread(this);student=newThread(this);

teacher.setName("刘教授");student.setName("陈强");

}

publicvoidrun(){

if(Thread.currentThread()==student){

try{

System.out.println(student.getName()+"正在睡觉,不听课");

Thread.sleep(1000*60*60);

}

catch(InterruptedExceptione){

System.out.println(student.getName()+"被老师叫醒了");

}

System.out.println(student.getName()+"开始听课");

}

elseif(Thread.currentThread()==teacher){

for(inti=1;i<=3;i++){

System.out.println("上课啦!

");

try{

Thread.sleep(500);

}

catch(InterruptedExceptione){

System.out.println("thereisaninterruptioninteacherprocess!

");

}

}

student.interrupt();

}

}

}

publicclassB{

publicstaticvoidmain(String[]args){

Aa=newA();

a.student.start();

a.teacher.start();

}

}

设操作系统在调度同优先级线程时,按照就绪队列中先后次序进行调度。

(1)写出在以上程序执行过程中,CPU上线程的变换情况。

(即在不同时间段CPU上执行的是哪个线程)(2分)

 

(2)写出程序的执行结果。

(4分)

 

4、classA{

privateinta;

staticintb;

protectedintc;

voidf(intx,inty,intz){

a=x;b=y;c=z;

System.out.println("thisisffunctioninclassA!

");

System.out.println("a="+a+"b="+b+"c="+c);

}

staticvoidg(intx){

b=x;

System.out.println("thisisgfunctioninclassA!

");

System.out.println("b="+b);

}

}

classBextendsA{

staticintb;

protectedintc;

voidf(intx,inty,intz){

super.f(x,y,z);

b=y+1 ;c=z+1 ;

System.out.println("thisisffunctioninclassB!

");

System.out.println("b="+b+"c="+c);

}

staticvoidg(intx){

b=x;

System.out.println("thisisgfunctioninclassB!

");

System.out.println("b="+b);

}

}

publicclassM{

Publicstaticvoidmain(String[]args){

Aaa=newB();

aa.f(1,2,3);

aa.g(4);

System.out.println("b="+A.b+"c="+aa.c+

"b="+B.b+"c="+((B)aa).c);

}

}

写出以上程序的执行结果。

(7分)

 

五、程序补充题(共22分)

 

1、要求实现一个简单的计算器,界面如下图所示。

在两个可编辑的文本框中可输入两个操作数,选择一种计算类型(仅可选择一种),点击确定按钮,结果即显示在下方的不可编辑文本框中。

 

importjava.awt.*;

importjavax.swing.*;

(1)(0.5分)

classWinextendsJFrame

(2)(0.5分){

JTextFieldinput1,input2,result;

JButtonconfirm;

JRadioButtonsum,sub,mul,div;

Win(){

JPanelp1=newJPanel();

/*请填写窗口北部面板的界面设计代码,两个文本框的长度均为6*/

(3)(2分)

 

add(p1,BorderLayout.NORTH);

JPanelchoose=newJPanel();

choose.setBorder(BorderFactory.createTitledBorder("选择计算类型"));

/*请填写窗口中部面板的界面设计代码*/

(4)(2分)

 

add(choose,BorderLayout.CENTER);

/*以下为窗口南部的界面设计代码*/

(5)(0.5分)

(6)(0.5分)

add(result,BorderLayout.SOUTH);

setSize(300,300);

setVisible(true);

validate();

/*请填写代码段,使点击窗口的关闭按钮时应用程序退出执行*/

(7)(1分)

 

}

publicvoidactionPerformed(ActionEventae){

doublea=0,b=0,c=0;/*a,b分别表示在窗口北部文本框中输入的两个操作数的值;

c表示运算结果*/

try{

a=(8)(0.5分)

b=(9)(0.5分)

}

catch(NumberFormatExceptionnfe){

System.out.println("theinputisnotnumber!

");

}

/*请填写以下代码段,根据选择的计算类型进行计算并将结果显示在窗口南部的

文本框中。

若没有选择计算类型则在文本框中显示出错信息。

*/

(10)(2分)

 

}

}

publicclassEM{

publicstaticvoidmain(String[]args){

newWin();

}

}

根据程序功能,填补以上空缺。

在横线处填一条语句或一个表达式;在空白处填代码段,代码段可包含一条或多条语句。

(共10分)

 

2、以下程序实现了Echo服务器与客户端,功能如下:

1服务器能同时服务于多个客户

2服务器在端口8000侦听客户请求。

3服务器将客户端发来的每行文本发回客户端,直到连接终止

4服务器接收到客户端发来的“.QUIT”(忽略大小写)后,返回原串并终止连接,仍可响应后续客户的请求

5服务器接收到客户端发来的“.SHUTDOWN”(忽略大小写)后,返回”.QUIT”并终止连接,且不再响应后续客户的请求

6客户端向服务器发送串并读取反馈回来的串,直到连接终止

7如果客户端想终止连接,就向服务器发出“.QUIT”(忽略大小写)

8如果客户端想使服务器停止接收客户请求,就向服务器发出“.SHUTDOWN”(忽略大小写)

9如果客户端接收到反馈回来的串是“.QUIT”(忽略大小写),则终止与客户端的连接。

以下是客户端程序:

import.*;

importjava.io.*;

publicclassEchoClient{

publicstaticvoidmain(String[]args){//服务器的主机名由args[0]传入

try{

(1)

System.out.println("Connectionestablished");

(2)

(3)

System.out.println("hasopenedtheI/Obytestreamontheconnectiontoserver");

Stringline=newString("");

While((4)){

System.out.print("Enterstring:

");

line=readString();

System.out.println("Sendingstringtoserver...");

(5)

System.out.println("Waitingforserverresponse...");

(6)

System.out.println("Received:

"+line);

}

in.close();out.close();//in为字节输入流,out为字节输出流

(7)

System.out.println("connectionclosed!

");

}

catch(UnknownHostExceptionuhe){

System.err.println("Unknownhost:

"+args[0]);

}

catch(IOExceptionioe){

System.err.println("IOException:

"+ioe);

}

}

publicstaticStringreadString(){

Stringstr=newString();

(8)

try{

str=in.readLine();//in为字符输入流

}

catch(IOExceptione){

System.out.println("Console.readString:

Unknownerror...");

System.exit(-1);

}

returnstr;

}

}

以下是服务器端程序:

importjava.io.*;

import.*;

classEchoServerThreadextendsThread{

privateSocketconnection;

publicEchoServerThread(Socketc){

connection=c;

(9)

}

 

publicvoidrun(){

try{

(10)

(11)

System.out.println("hasopenedtheI/Obytestreamontheconnectiontoclient");

Stringline=newString("");

while((12)){

(13)

System.out.println("Echoing:

"+line);

if((14)){

(15)

line=".QUIT";

}

(16)

}

in.c

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1