计算机专业《Java程序设计方案》A卷
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机专业《Java程序设计方案》A卷
2003级计算机专业《Java程序设计》A卷
<注意:考试时间100分钟,将答案写在答题纸上)
班级:________ 学号:_________ 姓名:___________
一、判断正误,如果错误请说明理由<4×4’=16’分)
1、Java面向对象开发中重载和覆盖是没有区别的。
2、Java中的error和exception没有区别。
3、swing组件一般使用自己的事件处理模型。
4、Java的application和applet没有区别。
二、问答题<4×6’=24’分)
1、Java中为什么要引入布局管理器?
2、在多线程编程时,在什么时候使用扩展Thread类和实现Runable接口,这两种方式创建线程有何区别?
3、简述Java通过JDBC进行数据库操作的步骤。
4、怎样用数据输入流和输出流读写数据?
三、改错题<2×6’=12’分)
1、public static void main(String args[ ]>
{
try{
char ch=(char>System.in.read(>。
. . .//其他语句}
catch(Exception ee> {System.out.println(ee.toString(>>。
} catch(IOException e> {System.out.println(e.toString(>>。
} }
2、interface MyInterface
{
void methodA(>。
}
public class TestInterfaceimplements MyInterface
{
public void method(>
{
System.out.println(“I am implemented
now!”>。
}
}
四、程序填空题<2×8’=’16’分)
1、使用文件字节流对象读取文件并在屏幕上显示出来
import java.io.*。
public class OpenFile
{
public static void main(String args[]> (1> //抛出输入输出异常{
try
{ //创建文件字节输入流对象rf,文件名为
File.txt
(2> 。
int n=512。
byte buffer[] = new byte[n]。
while ((rf.read(buffer,0,n>!=-1> && (n>0>> //读取输入流{
System.out.print(new String(buffer>>。
}
System.out.println(>。
(3> 。
//关闭输入流
}
catch (IOException ioe>
{
System.out.println(ioe>。
}
catch (Exception e>
System.out.println(e>。
}
}
}
2、继承Thread类创建两个线程分别奇数和偶数public class Thread1 extends Thread
{
int k=0。
public Thread1(String name,int k>
{
super(name>。
this.k = k。
}
public void run(> //覆盖run方法的线程体{
int i = k。
System.out.println(>。
System.out.print(getName(>+": ">。
(4> // 实现同步
{
while (i<50>
{
System.out.print(i+" ">。
i+=2。
}
System.out.println(getName(> +" end!">。
}
}
public static void main (String args[]>
Thread1 t1 = new Thread1("Thread1",1>。
//创建线程对象t1,线程名为"Thread1",输出奇数(5>。
//创建线程对象t2,线程名为"Thread2",输出偶数
t2.start(>。
//启动执行线程
(6>。
//启动执行线程"Thread1"
System.out.println("activeCount="+t2.activeCount(>>。
}
}
3、Applet应用程序演示输出“HelloWord”
import java.awt.*。
import java.applet.Applet。
public class HelloApplet (7> {
Graphics g。
public void paint(Graphics g>
{
g.setColor(Color.red>。
g. (8> ("Helloworld",20,20>。
//浏览器中输出字符
}
}
五、程序分析题<5’×3=15’分)
1、下面循环体重复执行多少次?输出结果是什么?
int i=1。
while(i<10>
{
if(i%2==0>
System.out.println(i>。
i++。
}
2、如果用参数a=2、b=0调用下面方法,执行结果是多少?给出得到该结果的理由。
public void divide(int a, int b> {
try {
int c = a / b。
System.out.print("结果是"+c>。
}
catch (Exception e> {
System.out.print("除操作异常 ">。
}
finally {
System.out.println("结束操作">。
}
}
3、写出下面程序运行的结果。
class Base
{
int i = 99。
public void amethod(>
{
System.out.println("Base.amethod(>">。
} Base(>
{
amethod(>。
}
}
public class Derived extends Base
{
int i = -1。
public static void main(String argv[]> {
Base b = new Derived(>。
System.out.println(b.i>。
b.amethod(>。
}
public void amethod(>
{ System.out.println("Derived.amethod(>">。
}
}
六、编程题<8’+9’=17’分)
1、从键盘输入两个数,用递归算法求他们的最大公约数定义如下:
GCD(m, n>是n,若n小于等于m且n整除m;
GCD(m, n>是GCD(n, m>,若m小于n;
GCD(m, n>是GCD(m, m%n>,其他情况。
2、编写一个由GeometicObject扩展的Triangle类,其定义如下:
Public class Triangle extends GeometicObject
{
Private double side1, side2, side3。
Public Triangle(double side1, double side2, double side3>
{ //实现该构造方法
}
Public double findArea( >
{ //实现求三角形面积的方法
}
Public double findPerimete( >
{ //实现求三角形周长的方法
}
2003级计算机专业《Java程序设计》A卷答案
出题人:满君丰考核性质:闭卷考试
一、判断正误,如果错误请说明理由<4×4’=16’分)
1、错误。
重载只同一类中的同名方法,方法可以有不同参
数,返回值也可以不同;覆盖指不同类中的同名方法,方法必需有相同的参数,且返回值也必需相同。
2、答:错误。
error 表示系统产生了很难恢复难的严重问
题,比如说内存溢出等,不可能指望程序能处理这样的情况。
exception 表示一种设计或实现问题,也就是说,它表示如果程序运行正常,从不会发生的情况,即便是发生exception情况,系统也可以做出相应处理。
3、错误。
Swing有自己一套功能强大、界面友好的组件,但
它依然沿用AWT事件处理模型。
4、错误。
(1>Applet不是完整独立运行程序,需要嵌在浏览
器中作为浏览器软件的一部分;(2>Applet程序中不需要
有main方法,但是Applet程序的主类必须是类库中已定义好的类Applet或JApplet的子类。
(3>Java Application程序则必须另外书写专用代码来营建自己的图形界面。
二、问答题<4×6’=24’分)
1、答:java为了实现跨平台的特性并且获得动态的布局效果
而引入了LayoutManager,java将容器内的所有组件安排给Layoutmanager负责管理,如:排列顺序,组件的大小、位置,当窗口移动或调整大小后组件如何变化等功能授权给对应的容器布局管理器来管理。
2、答:扩展Thread类实现多线程比较简单,如果类没有多重
继承建议使用扩展Thread类。
当使用Runable接口实现多线程时,需要用new Thread(this>创建一个线程;当扩展Thread类实现多线程时,需要创建线程的一个实例。
3、答:(1>打开一个数据库连接;(2>创建一个Statement对
象;(3>执行一个查询并且返回一个结果集;(4>处理结果集;(5>关闭结果集和Statement对象;(6>关闭连接。
4、答:数据流DataInputStream和DataOutputStream用机器
独立形式分别读和写Java的原始数据类型,允许使用者
在一机器上写数据文件,以及从其他装有不同操作系统或文件结
构的机器上读取文件。
他们常用于输入和输出数据。
三、改错题<2×6’=12’分)
1、答:两个catch语句交换位置
catch(IOException e> {System.out.println(e.toString(>>。
} catch(Exception ee> {System.out.println(ee.toString(>>。
}
2、答:类Child 中,public void method(>改为public
void methodA(>,或新建一个方法public void methodA(>
四、程序填空题<2×8’=’16’分)
1、(1>throws IOException
(2>FileInputStream rf = new
FileInputStream("File.txt">。
(3>rf.close(>。
2、 (4> Synchronized(this>
(5>Thread1 t2 = new Thread1("Thread2",2>
(6>t1.start(>。
3、 (7> extends Applet
(8> drawstring
五、程序分析题<5’×3=15’分)
1、答:9次; 2 4 6 8
2、答:除操作异常,结束操作。
因为计算4/0产生除零异常,运行catch{}中的语句,然后再运行finally{}中的语句。
3、Derived.amethod(>
99
Derived.amethod(>
六、编程题<8’+9’=17’分)
1、public class gongyueshu
{
public static void main(String[] args>
{
int n,m。
System.out.print("输入数据n:">。
n=MyInput.readInt(>。
System.out.print("输入数据m:">。
m=MyInput.readInt(>。
System.out.println("该两数的最大公约数是:" + GCD(n,m>>。
}
public static int GCD(int n,int m>
{
if(m<=n&&n%m==0> return m。
else if(n return GCD(m,n>。
else return GCD(m,n%m>。
}
}
2、(1> this.side1=side1。
this.side2=side2。
this.side3=side3。
(2> double s=(side1+side2+side3>/2。
Return math.sqrt(s*(s-side1>*(s-side2>*(s-side3>>。
(3> return side1+side2+side3。