Java面向对象程序设计广东工业大学试题答案1.docx
- 文档编号:7080202
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:13
- 大小:52.65KB
Java面向对象程序设计广东工业大学试题答案1.docx
《Java面向对象程序设计广东工业大学试题答案1.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计广东工业大学试题答案1.docx(13页珍藏版)》请在冰豆网上搜索。
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分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 面向 对象 程序设计 广东工业大学 试题答案