2022年计算机专业《Java程序设计方案》B卷.docx
精选学习资料 - - - - - - - - - 2003 级运算机专业Java 程序设计 B 卷<留意:考试时间 100 分钟,将答案写在答题纸上)班级: _ 学号: _ 姓名:_ 一、判定正误,假如错误请说明理由<4× 4 16 分)1、 Java只有通过实现 Runnable接口的方式实现多线程操作;2、Java中引入 LayoutManager 纯粹是为了程序界面美观;3、Java中的线程是根据协作式多任务方式工作的,且线程可以共享 数据和代码;4、swing组件一般使用自己的大事处理模型;二、问答题 <4×6 24 分)1、简述 Java通过JDBC进行数据库操作的步骤;2、简述 Java中的error和exception的区分;3、简述 Java的application和applet的区分;4、怎样用数据输入流和输出流读写数据?三、改错题 <2×6 12 分)1、class AmIWrong int data1,data2;AmIWrong> data1=-1; AmIWrongint d> super>; /调用构造方法 data2=d; 2、public static void mainString args > try char . ch=char>System.in.read>;. ./其他语句 ee> catchException System.out.printlnee.toString>>; 1 / 8 名师归纳总结 - - - - - - -第 1 页,共 8 页精选学习资料 - - - - - - - - - catchIOException System.out.printlne.toString>>;e> 四、程序填空题 <2×8 = 16 分)1、下面程序实现矩阵 A和矩阵 B相乘,结果存放在矩阵 C中;public static class MatrixMultiply public void mainString args> int m,n,k;int a=new int 23 ;for int n=0;b=1,5,2,8,5,9,10,-3,2,7,-5,-18;int c=new int24 ;for m=0;m<2;m+> n<3 ;n+> 1> / 初始化 A的值,要求每个数组for / 元素的值等于其下标值的乘积;m=0;m<2;m+> for n=0;n<4;n+> cmn=0 ;fork=0;k<3;k+> 2> / 矩阵乘法运算 2、使用文件字节流对象读取文件并在屏幕上显示出来 import java.io.* ;public class OpenFile public static void mainString args> 3> /抛出输入输出反常 try / 创建文件字节输入流对象 rf,文件名为 File.txt 4> ; int n=512; byte buffer = new byten; while rf.readbuffer,0,n>.=-1> && n>0>> / 读取输入流 2 / 8 名师归纳总结 - - - - - - -第 2 页,共 8 页精选学习资料 - - - - - - - - - System.out.printnew Stringbuffer>>; System.out.println>; 5> ; /关闭输入流 catch IOException ioe> System.out.printlnioe>; catch Exception e> System.out.printlne>; 3、继承 Thread类创建两个线程分别奇数和偶数 public class Thread1 extends Thread int k=0; public Thread1String name,int k> supername>; this.k = k; public void run> /掩盖 run方法的线程体 int i = k; System.out.println>; System.out.printgetName>+": ">;6> / 实现同步 while i<50> System.out.printi+" ">; i+=2; System.out.printlngetName> +" end.">; 3 / 8 名师归纳总结 - - - - - - -第 3 页,共 8 页精选学习资料 - - - - - - - - - public static void main String args> Thread1 t1 = new Thread1"Thread1",1>;/创建线程对象 t1,线程名为 "Thread1",输特别数 7>;/创建线程对象 t2,线程名为 "Thread2",输出偶数 t2.start>; /启动执行线程 8>; /启动执行线程 "Thread1" System.out.println"activeCount="+t2.activeCount>>; 五、程序分析题 <5 ×315 分)1、下面的 Java程序是否可以正常编译运行?为什么?class int First private a = 1;int b = 2; Second extends First class public void method> System.out.printlna + b>; 2、假如用参数 a4、b2调用下面方法,执行结果是多少?给出得 到该结果的理由;public void divideint a, int b> try int c = a / b;System.out.print"结果是 "+c>; catch Exception e> System.out.print"除操作反常 ">; finally System.out.println"终止操作 ">; 4 / 8 名师归纳总结 - - - - - - -第 4 页,共 8 页精选学习资料 - - - - - - - - - 3、以下程序能否正常运行,为什么?class Ellipse public void draw>System.out.println"Ellipse"> ; class Circle extends Ellipse public void draw>System.out.println"Circle"> ; ; public class OOTest2 public static void mainString args> Circle c = new Ellipse > ;c.draw>; 六、编程题 <89 17 分)1、编程统计 1001000间素数的个数;2、编写一个由 GeometicObject扩展的 Triangle类,其定义如下: Public class Triangle extends GeometicObject Private double side1, side2, side3;Public Triangledouble side1, double side2, double side3> / 实现该构造方法 Public double findArea > / 实现求三角形面积的方法 Public double findPerimete > / 实现求三角形周长的方法 5 / 8 名师归纳总结 - - - - - - -第 5 页,共 8 页精选学习资料 - - - - - - - - - 2003 级运算机专业Java 程序设计 B 卷答案出题人:满君丰考核性质:闭卷考试一、判定正误,假如错误请说明理由<4× 4 16 分)1、答:错误; Java有两种方式实现多线程操作:实现 Runnable接口和继 承Thead类;2、答:错误; java为了实现跨平台的特性并且获得动态的布局成效而引 入了 LayoutManager,java将容器内的全部组件支配给 Layoutmanager 负责治理,如:排列次序,组件的大小、位置,当窗口移动或调整大小后组件如何变化等功能授权给对应的容器布局治理器来治理;3、答:错误;为尽量防止死锁等内存治理问题的发生,Java中的线程是 根据抢占式多任务方式工作的,且线程可以共享数据和代码;4、错误; Swing有自己一套功能强大、界面友好的组件,但它依旧沿用 AWT 大事处理模型;二、问答题 <4×6 24 分)1、答: 1>打开一个数据库连接; 2>创建一个 Statement对象; 3>执行 一个查询并且返回一个结果集;4>处理结果集; 5>关闭结果集和 St atement对象; 6>关闭连接;2、答:错误; error 表示系统产生了很难复原难的严峻问题,比如说内存溢出等,不行 能盼望程序能处理这样的情形;exception 表示一种设计或实现问题,也就是说,它表示假如程序运行正常,从不会发生的情形,即便是发生 处理;exception情形,系统也可以做出相应3、错误; 1>Applet不是完整独立运行程序,需要嵌在浏览器中作为浏 览器软件的一部分; 2>Applet程序中不需要有 main方法,但是 Applet 程序的主类必需是类库中已定义好的类 Applet或JApplet的子类; 3> Java Application 程序就必需另外书写专用代码来营建自己的图形界面;4、答:数据流 DataInputStream和DataOutputStream用机器独立形式分别 读和写 Java的原始数据类型,答应使用者在一机器上写数据文件,以 及从其他装有不同操作系统或文件结构的机器上读取文件;他们常用于输入和输出数据;三、改错题 <2×6 12 分)1、答: super> 改为使用 this> 6 / 8 名师归纳总结 - - - - - - -第 6 页,共 8 页精选学习资料 - - - - - - - - - 2、答:两个 catch语句交换位置 catchIOException e> System.out.printlne.toString>>; catchException ee> System.out.printlnee.toString>>; 四、程序填空题 <2×8 = 16 分)1、 1> amn=m*n ;2> cmn+=amk*bkn;2、3>throws IOException 4>FileInputStream rf = new FileInputStream"File.txt">;5>rf.close>;3、 6> Synchronizedthis> 7>Thread1 t2 = new Thread1"Thread2",2> 8>t1.start>;五、程序分析题 <5 ×315 分)1、不能运行,由于 First类中变量 a 是private类型,所以在其他类中不能拜访a;2、结果是 2 终止操作;由于运算 4/2,先运行 try 中的语句,然后再运行 finally 中的语句 3、编译错误,由于子类型的引用不能指向父类型的对象;六、编程题 <89 17 分)1、 public class TotalPrime int i,j,k,primeCount=0 ; boolean isSuShu; fori=100;i<=1000;i+> isSuShu=true; k=i/2; forj=2;j<=k ;j+> ifi%j=0> isSuShu=false; break; ifisSuShu> 7 / 8 名师归纳总结 - - - - - - -第 7 页,共 8 页精选学习资料 - - - - - - - - - primeCount+; System.out.println primeCount>; 2、1> this.side1=side1;this.side2=side2;1001000间素数的个数为: ”+ this.side3=side3; 2> double s=side1+side2+side3>/2;Return math.sqrts*s-side1>* s-side2>*s-side3>>; 3> return side1+side2+side3;8 / 8 名师归纳总结 - - - - - - -第 8 页,共 8 页