Java面向对象程序设计广东工业大学试题答案1.docx

上传人:b****6 文档编号:7080202 上传时间:2023-01-17 格式:DOCX 页数:13 大小:52.65KB
下载 相关 举报
Java面向对象程序设计广东工业大学试题答案1.docx_第1页
第1页 / 共13页
Java面向对象程序设计广东工业大学试题答案1.docx_第2页
第2页 / 共13页
Java面向对象程序设计广东工业大学试题答案1.docx_第3页
第3页 / 共13页
Java面向对象程序设计广东工业大学试题答案1.docx_第4页
第4页 / 共13页
Java面向对象程序设计广东工业大学试题答案1.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Java面向对象程序设计广东工业大学试题答案1.docx

《Java面向对象程序设计广东工业大学试题答案1.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计广东工业大学试题答案1.docx(13页珍藏版)》请在冰豆网上搜索。

Java面向对象程序设计广东工业大学试题答案1.docx

Java面向对象程序设计广东工业大学试题答案1

广东工业大学考试试卷(B)

课程名称:

面向对象程序设计A试卷满分100分

考试时间:

2009年6月16日(第18周星期二)

题号

总分

评卷得分

评卷签名

复核得分

复核签名

一.单项选择题(每题2分,共15题,共30分)。

1、编译JavaApplication源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为()。

A..javaB..classC..htmlD..exe

2、设x=1,y=2,z=3,则表达式y+=z--/++x的值是()。

y=2+3/(1+1)(除法,取整型,商的小数点后面舍去)

A.3B.3.5C.4D.5

3、在JavaApplet程序用户自定义的Applet子类中,一般需要重载父类的()方法来完成一些画图操作。

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

4、不允许作为类及类成员的访问控制符的是()。

A.publicB.privateC.staticD.protected

5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()。

A.staticvoidmethod()B.publicvoidmethod()

C.finalvoidmethod()D.abstractvoidmethod()

6、关于被私有访问控制符private修饰的成员变量,以下说法正确的是()。

A.可以被三种类所引用:

该类自身、与它在同一个包中的其他类、在其他包中的该类的子类

B.可以被两种类访问和引用:

该类本身、该类的所有子类

C.只能被该类自身所访问和修改

D.只能被同一个包中的类访问

 

7、下列关于修饰符混用的说法,错误的是()。

A、abstract不能与final并列修饰同一个类B、abstract类中不可以有private的成员

C、abstract方法必须在abstract类中D、static方法中能处理非static的属性

8、关于以下application的说明,正确的是()。

1.classStaticStuff

2.{

3.staticintx=10;

4.static{x+=5;}

5.publicstaticvoidmain(Stringargs[])

6.{

7.System.out.println(“x=”+x);

8.}

9.static{x/=3;}

10.}

A、4行与9行不能通过编译,因为缺少方法名和返回类型

B、9行不能通过编译,因为只能有一个静态初始化器

C、编译通过,执行结果为:

x=5

D、编译通过,执行结果为:

x=3

9、以下选项中循环结构合法的是()

A、while(inti<7)

{i++;

System.out.println(“iis“+i);

}

B、intj=3;

while(j)

{System.out.println(“jis“+j);

}

C、intj=0;

for(intk=0;j+k!

=10;j++,k++)!

=的意思是不等于

{System.out.println(“jis“+j+“kis”+k);

}

D、intj=0;

do{

System.out.println(“jis“+j++);

if(j==3){continueloop;}

}while(j<10);

10、类Test1定义如下:

1.publicclassTest1{

2.publicfloataMethod(floata,floatb){}

3.

4.}

将以下哪种方法插入行3是不合法的()。

A、publicfloataMethod(floata,floatb,floatc){}

B、publicfloataMethod(floatc,floatd){}

C、publicintaMethod(inta,intb){}

D、privatefloataMethod(inta,intb,intc){}

11、以下说法哪项是正确的()

1.classMyListener

2.extendsMouseAdapterimplementsMouseListener{

3.publicvoidmouseEntered(MouseEventmev)

4.{System.out.println("Mouseentered.");}

5.}

A、以上代码可通过编译

B、不能通过编译,因为没有实现MouseListener接口中的所有方法

C、不能通过编译,因为类头定义不能分行

D、能通过编译,若组件用该类作为Mouse的监听者并且接收了mouse-exited事件,则在执行过程中会抛出异常

12、以下代码段执行后的输出结果为()。

intx=3;inty=10;

System.out.println(y%x);求余数

A、0B、1C、2D、3

13.下列不是InputStream子类的是____。

A、文件输入流FileInputStreamB、对象输入流ObjectInputStream

C、字符输入流CharInputStreamD、压缩文件输入流ZipInputStream

1414.下列方法中可以用来创建一个新线程的是____。

方法1:

创建Thread子类并重新设计(重载)

其run()方法

方法2:

实现Runnable接口的类,实现run()

方法

A、实现java.lang.Runnable接口并重写start()方法

B、实现java.lang.Runnable接口并重写run()方法

C、继承java.lang.Thread类并重写run()方法

D、实现java.lang.Thread类并实现start()方法

15.在Java中,用package语句说明一个包时,该包的层次结构必须是____。

A、与文件的结构相同B、与文件目录的层次相同

C、与文件类型相同D、与文件大小相同

二.填空题(共4题,共8+8+8+5×6=54分)。

1、importjava.io.*;

publicclassReverse

{publicstaticvoidmain(Stringargs[])

{inti,n=10;

inta[]=newint[10];(整型数组a,宽度为10个数)

for(i=0;i

try{

(缓冲区读取)BufferedReaderbr=newBufferedReader(

newInputStreamReader(System.in));

a[i]=Integer.parseInt(br.readLine());//输入一个整数

}catch(IOExceptione){};(输入输出异常)

for(i=n-1;i>=0;i――)

System.out.print(a[i]+"");

System.out.println();

}

}

以上这段程序的功能是

(1)。

(8分)

2、importjava.io.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

{ABs=newAB("Hello!

","IloveJAVA.");

System.out.println(s.toString());

}

}

classAB{

Strings1;Strings2;

AB(Stringstr1,Stringstr2)

{s1=str1;s2=str2;}

publicStringtoString()

{returns1+s2;}

}

以上这段程序的运行结果是

(2)。

(8分)

3、importjava.io.*;

publicclassabc

{

publicstaticvoidmain(Stringargs[])

{System.out.println("a="+a+"\nb="+b);}

}

classSubClassextendsSuperClass

{intc;

SubClass(intaa,intbb,intcc)

{super(aa,bb);

c=cc;

}

}

classSubSubClassextendsSubClass

{inta;

SubSubClass(intaa,intbb,intcc)

{super(aa,bb,cc);

a=aa+bb+cc;

}

voidshow()

{System.out.println("a="+a+"\nb="+b+"\nc="+c);}

}

以上这段程序的运行结果是(3)。

(8分)

4、SaleExample.java:

模拟5个人排队买票。

售票员只有1张5元的钱,电影票5元钱一张。

假设5个人的名字和排队顺序是:

赵、钱、孙、李、周。

赵拿1张20元的人民币买2张票,钱拿1张20元的人民币买1张票,孙拿1张10元的人民币买1张票,李拿1张10元的人民币买2张票,周拿1张5元的人民币买1张票。

要求售票员按如下规则找赎:

A)20元买2张票,找零:

1张10元,不许找零:

2张5元;B)20元买1张票,找零:

1张10元,1张5元,不许找零:

3张5元;C)10元买1张票,找零:

1张5元。

(请填写【代码1-5】,每空6分,共30分)

classTicketSeller//负责卖票的类

{

intfiveNumber=1,tenNumber=0,twentyNumber=0;

publicsynchronizedvoidsellTicket(intreceiveMoney,intbuyNumber){

if(receiveMoney==5){

fiveNumber=fiveNumber+1;

System.out.printf("\n%s给我5元钱,这是您的1张入场卷",Thread.currentThread().getName());

}

elseif(receiveMoney==10&&buyNumber==2){

tenNumber=tenNumber+1;

System.out.printf("\n%s给我10元钱,这是您的2张入场卷",Thread.currentThread().getName());

}

elseif(receiveMoney==10&&buyNumber==1){

while(fiveNumber<1)//给出线程需等待的条件

{try{System.out.printf("\n%30s靠边等",Thread.currentThread().getName());

wait();//线程进入等待状态

System.out.printf("\n%30s结束等待\n",Thread.currentThread().getName());

}

catch(InterruptedExceptione){}

}

fiveNumber=fiveNumber-1;

tenNumber=tenNumber+1;

System.out.printf("\n%s给我10元钱,找您5元,这是您的1张入场卷",

Thread.currentThread().getName());

}

elseif(receiveMoney==20&&buyNumber==1){

while(【代码1】)//给出线程需等待的条件

{try{System.out.printf("\n%30s靠边等",Thread.currentThread().getName());

【代码2】//线程进入等待状态

System.out.printf("\n%30s结束等待",Thread.currentThread().getName());

}

catch(InterruptedExceptione){}

}

fiveNumber=fiveNumber1;

tenNumber=tenNumber1;

twentyNumber=twentyNumber+1;

System.out.printf("\n%s给20元钱,找您一张5元和一张10元,这是您的1张入场卷",

Thread.currentThread().getName());

}

elseif(receiveMoney==20&&buyNumber==2){

while(【代码3】)//给出线程需等待的条件

{try{System.out.printf("\n%30s靠边等\n",Thread.currentThread().getName());

【代码4】//线程进入等待状态

System.out.printf("\n%30s结束等待",Thread.currentThread().getName());

}

catch(InterruptedExceptione){}

}

tenNumber=tenNumber1;

twentyNumber=twentyNumber+1;

System.out.printf("\n%s给20元钱,找您一张10元,这是您的2张入场卷",

Thread.currentThread().getName());

}

【代码5】//通知等待的线程结束等待

}

}

classCinemaimplementsRunnable//实现Runnable接口的类

{

Threadzhao,qian,sun,li,zhou;//电影院中买票的线程

TicketSellerseller;//电影院的售票员

Cinema(){

zhao=newThread(this);qian=newThread(this);sun=newThread(this);

li=newThread(this);zhou=newThread(this);zhao.setName("赵");

qian.setName("钱");sun.setName("孙");li.setName("李");

zhou.setName("周");seller=newTicketSeller();

}

publicvoidrun(){

if(Thread.currentThread()==zhao)seller.sellTicket(20,2);

elseif(Thread.currentThread()==qian)seller.sellTicket(20,1);

elseif(Thread.currentThread()==sun)seller.sellTicket(10,1);

elseif(Thread.currentThread()==li)seller.sellTicket(10,2);

elseif(Thread.currentThread()==zhou)seller.sellTicket(5,1);

}

}

publicclassSaleExample{

publicstaticvoidmain(Stringargs[]){

Cinemacinema=newCinema();

cinema.zhao.start();

try{Thread.sleep(1000);}

catch(InterruptedExceptione){}

cinema.qian.start();

try{Thread.sleep(1000);}

catch(InterruptedExceptione){}

cinema.sun.start();

try{Thread.sleep(1000);}

catch(InterruptedExceptione){}

cinema.li.start();

try{Thread.sleep(1000);}

catch(InterruptedExceptione){}

cinema.zhou.start();

}

}

三.编程题(共1题,共16分)

1.用JDBC编写一个应用程序(java命令可执行),连接localhost的SqlServer数据库(数据库名:

ExamDB),已经建立ODBC数据源EXAMDBODBC,请根据以下参考数据,选定一种方式将考试成绩表(表名:

Score)的全部数据输出。

参考:

连接用户名为exam,密码为exam,可用驱动有:

sun.jdbc.odbc.JdbcOdbcDriver和com.microsoft.jdbc.sqlserver.SQLServerDriver,各自对应的URL格式是jdbc:

odbc:

?

和jdbc.microsoft:

sqlserver:

//Hosts:

Port;DataBaseName=?

Score表结构

部分记录

其中JDBC关键代码提示(需要用到的类及相关方法):

ClassforName(……)DriverManagergetConnection(…..)

ConnectioncreateStatement()StatementexecuteQuery(….);

广东工业大学试卷参考答案及评分标准(B)

课程名称:

面向对象程序设计A试卷满分100分

考试时间:

2010年6月16日

一、单项选择题(每题2分,共15题,共30分)。

1-5:

BADCA6-10:

CDCCB11-15:

ABCCB

二.填空题(共4题,共8+8+8+5×6=54分)。

1、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。

(8分)

2、Hello!

IloveJAVA.(8分)

3、a=60

b=20

c=30(8分)

4、【代码1】:

fiveNumber<1||tenNumber<1(6分)

【代码2】:

wait();(6分)

【代码3】:

tenNumber<1(6分)

【代码4】:

wait();(6分)

【代码5】:

notifyAll();(6分)

三.编程题(共1题,共16分)

无标准答案,请参考以下评分标准批改:

1载入驱动class.forName(driverName);

driverName:

sun.jdbc.odbc.JdbcOdbcDriver或

com.microsoft.jdbc.sqlserver.SQLServerDriver(3分)(驱动程序)

1.1未写扣3分

1.2语法错误扣1分

1.3driverName写错扣2分

2建立连接

Connectioncon(连接变量)=DriverManager.getConnection(conURL,”exam”,”exam”);

conURL:

jdbc:

odbc:

EXAMDBODBC(数据源)或

jdbc.microsoft:

sqlserver:

//127.0.0.1:

1433;DataBaseName=ExamDB,

其中127.0.0.1部分只要能表示一个主机即可,1433部分只要是一个有意义的端口即可(4分)

2.1未写扣4分

2.2conURL错误扣2分

2.3语法错误扣1分

2.4conURL和driverName需匹配,sun.jdbc.odbc.JdbcOdbcDriver对应jdbc:

odbc:

EXAMDBODBC,不匹配扣1分

3创建Statement对象,Statementstmt=con.createStatement();(2分)

3.1未写扣2分

4创建查询结果集,ResultSetrs=stmt.executeQuery("Select*fromScore");(3分)

4.1未写扣3分

4.2SQL语句错误扣2分

4.3语法错误扣1分

5内容输出,输出全部字段(3分)

5.1如果未输出查询结果,扣3分

5.2未完成输出或者逻辑错误扣1~2分

6异常检查(1分)

6.1所有jdbc代码必须有try-catch或者throws异常检查,没有则扣1分

7以上已累计16分,按以下原则检查其他内容

7.1完全无关代码且出错的话,一处扣1分,累计不超过3分

7.2关键字大小写错误,总体扣1分

7.3明显的局部{}不匹配扣1分

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

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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