命题方式: 单独命题
佛山科学技术学院2019-2020学年第2学期
《面向对象程序设计JAVA》课程期末(A)考试试题专业、班级;_姓名;学号;
一、单项选择题(每小题2分,共20分,选择一个最佳答案,填写在
表格中)
(1)数据库DB,数据库系统DBS,数据率管理系统DBMS,这者之间的关系是(
A)DBS 包括 DB 和 DBMS B)DBMS 包括DB 和 DBS
C)DB 包括 DBS 和 DBMS D)DBS 就是 DB,也就是DBMS
(2)运行下列程序,会产生什么结果()
class Animal{ Animal(){
System.out.print("Animal"); }
public class Dog extends Animal{ Dog(){
System.out.print("Dog"); }
public static void main(Stringl] args){ Dog snoppy=new Dog(); }
A)Dog B)Animal Dog C)Animal D)Dog Animal
(3)有以下方法的定义,请选择该方法的返回类型()。
ReturnType method(byte x,float y)
return (short)x/y*2; }
(4)for(int x=1y=1:(y!=0)&&(x<4);x++);()
A)无数次 B)一次也不执行 C)执行4次 D)执行3次
(5) 在Java语言中,封装是借助于()实现的。
A)类 B)成员 C)对象 D)属性
(6) 下面程序的正确输出是()。
class Super{
public int i=0; public Super(){ i=3;}}
public class Sub extends Super{
public Sub(){ i=1; }
public static void main(String args[]) Sub s=new Sub():
System.out.println(s.i)}}
A)1 B)0
C)2 D)3
(7)构造方法在( )被调用。
A)类定义时 B)对象被创建时
C)使用对象的属性时 D)使用对象的方法时
(8)指出正确的表达式()
A)byte=128; B)Boolean=null;
C)longl=0xfffL; D)double=0.9239d
(9)在编写Java程序的时候,如果不为类的成员变量定义初始值,Java会给它们设置默认值,下列说法中不正确的是( )。
A)Byte的默认值是0 B)int的默认值是0
C)float的默认值是0.0f D)long 的默认值是0.0L
(10) 下面程序的正确输出是(
class test{
public static void main(Stringl] args){ inti=1; intAll=0;
for(;i<=10;i++)
{if(i%6==0) break;
if(i%2==0){i=i+2;continue;} All=All+i;
System.out.println(All);}}
A)6 B)7
C)8 D)9
二、判断题(每题1分,共10分。正确用√,错误用*,填在表格中)
(1)Applet不能同除它们的下载处的服务器以外的其他任何主机通信。
(2)Applet是一种特殊的Panel,它是Java Applet程序的最外层容器。
(3)在异常处理中,若try中的代码可能产生多种异常则可以对应多个catch语句,若catch
中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面
(4)destroy()用来释放资源,在stop()之后执行浏览器正常关闭时,java自动调用这个
方法。
(5)Applet绝对不能运行任何本地可执行程序。
(6)在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。
(7)创建Vector 对象时构造方法给定的是其中可以包容的元素个数,使用中应注意不能超越这个数值。
(8)构造方法用干创建类的实例对象,构造方法名应与类名相同,返回类型为void
(9)Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。
(10)类Throwable有两个直接子类:受检异常(checked)和不受检异常(uncheckedruntime Exception and Error)。
三、阅读程序题(每题5分,共20分)
1、写出下面程序的运行结是
class Demo{
int x,y;
Demo(int a,int b){x=a;y=b;}
void change(int i,intj)
{x=i;y=j;this.sort(); }
void sort(){int t;if(x
public class TestThis3 { public static void main(String args[]){ Demo d=new Demo(16,52); d.change(31,42); System.out.println(d.x+""+d.y); } } 了程序运行结果如下:
共 6 页第 3 页 2、写出下面程序的运行结果 class ValHold { public int i =10;} public class ObParm { public static void main(String argv[]) {ObParm o=new ObParm(); o.amethod();} public void amethod() { Int i= 99; ValHold v=new ValHold(); v.i=30; another(v,i); System.out.print(v.i);} public void another(ValHold v,int i) {i=0; vi=20; ValHold vh=new ValHold(); v= vh; System.out.print(v.i) System.out.print(i); }} 程序运行结果如下:
class First{ public First(){
aMethod0);} public void aMethodo{ System.outprintln("in First class");}
public class Second extends First{ public Second(){ aMethod(); } public void aMethod({ System.out.println("in Second class");} public static void main(String[] args){ new Second(); } }
程序运行结果如下: 4、与出下面程的运行结果 class ArrayTestE{ public static void main(String args[] { int i; int a[]=new int[2]; try {for(i=0;i<=a.length;i++)a[i]=4*(i+1); System.out.println("出现异常后本语句不执行")
catch(ArrayIndexOutOfBoundsException e) {System.out.println("异常-数组下标超界!");} finally {for(i=a.length-1;i>=0;i--) System.out.print("a["+i+"]="+a[i]+" "); System.out.println("\n 程序运行结束!");} } 程序运行结果如下:
四、基础程序设计(每题5分,共20分) 1、画两个矩形,一个是普通的未填充的矩形。另一个是圆角为 20 像素的填充矩形。
2.编写一个Applicalion,键盘输入一个字母,加1后输出到屏幕
五、使用Java语言编写程序。(第1、第2小题各7分,第3 题、第 4小题各8分,共30分) 1、创第一个图形用户界面,包括一个按钮,一个文本框,采用顺序布局,窗口为可视,大小为400X400,要对按钮,文本框进行动作监听,编写程序
2、编写Applet 程序,包含三个标签,其背景分别为红、黄、蓝三色。
例如输出结果可以如下: x+y=40 x-y=20
4、通过继Thread 类实现多线程的方法是首先设计Thread的子类。用new创建二个线程实例,用start()方法进行自动,将执行权交恰run,二个线程名字分别为线程1和经程2要输出线程的次数(10次)和线程的名字。