| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 725 人关注过本帖
标题:《Java程序设计》练习题(三)【含部分答案】
只看楼主 加入收藏
晓婷长月
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2013-6-4
收藏
 问题点数:0 回复次数:1 
《Java程序设计》练习题(三)【含部分答案】
《Java程序设计》练习题(三)【含部分答案】
《Java程序设计》练习题(三)
一、单项选择题(每小题1分,共20分)
1、Java语言中,负责并发管理的机制是(   D     )。
A)垃圾回收  B)虚拟机      C)代码安全  D)多线程
2、线程生命周期中正确的状态是(  C   )。
A)新建状态、运行状态和死亡状态                           B)新建状态、运行状态、阻塞状态和死亡状态
C)新建状态、就绪状态、运行状态、阻塞状态和死亡状态      D)新建状态、就绪状态、运行状态、恢复状态和死亡状态
补充知识:线程在它的生命周期中会处于各种不同的状态:新建、就绪、运行、阻塞、死亡。用new语句创建的线程对象处于新建状态,此时它仅被分配了内存。只有处于就绪状态的线程才有机会转到运行状态。当线程处于阻塞状态时,Java虚拟机不会给线程分配CPU,直到线程重新进入就绪状态,它才会有机会获得运行状态。当线程执行完run()方法中的代码,或者遇到了未捕获的异常,就会退出run()方法,此时就进入死亡状态,该线程结束生命周期。
3、标准输入/输出流中哪个一般是不能被重定向的(  C   )。
A)Standard input  B) Standard output  C) Standard error  D)All of the above
补充知识:Java的标准输入/输出分别通过System.in和System.out来代表,在默认的情况下分别代表键盘和显示器,当程序通过System.in来获得输入时,实际上是通过键盘获得输入。当程序通过System.out执行输出时,程序总是输出到屏幕。
在System类中提供了三个重定向标准输入/输出的方法:static void setErr(PrintStream err) 重定向“标准”错误输出流;static void setIn(InputStream in)    重定向“标准”输入流;static void setOut(PrintStream out)重定向“标准”输出流。
4、Java的核心包中,提供编程应用的基本类的包是(  A   )。
A)java.lang    B)java.util    C)java.applet        D)java.rmi
5、在Applet中显示文字、图形等信息时,应使用的方法是(  A   )。
A)paint()        B)init()        C)start()        D)destroy()
6、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为(  C   )。
A)隐藏           B)覆盖           C)重载       D)Java不支持此特性
7、下列叙述中,错误的是(  D   )。
A)Java Application与Applet所用编译命令相同        B)通常情况下Java Application只能有一个main方法      
C)Java Applet必须有HTML文件才能运行               D)Java Applet程序的.class文件可用java命令运行
8、Thread类中能运行线程体的方法是(  D   )。
A)start()        B)resume()        C)init()        D)run()
9、下列不属于Swing中组件的是(   C  )。
 A)Jpanel        B)JTable        C)Menu        D)JFrame
10、下列哪一项不是域的非访问控制符(  C   )。
A)static     B)final     C)volatile     D)public
11、下列哪些语句关于内存回收的说明是正确的( B   )。
A)程序员必须创建一个线程来释放内存               B)内存回收程序负责释放无用内存
C)内存回收程序允许程序员直接释放内存             D)内存回收程序可以在指定的时间释放内存对象
补充知识:垃圾回收机制由JVM自动执行,是将分配给对象但不再使用的内存回收或释放的过程。如果一个对象没有指向它的引用或其值为null时,则此对象适合进行垃圾回收。程序员只能决定一个类在回收时所要做的动作(通过重载Object类的finalize()方法),以及提交JVM触发垃圾回收(通过System.gc(),但不保证会执行垃圾回收)
12、编译和执行一个Java应用程序分别采用的命令是(  B   )。
A)Java和Javac    B)Javac和Java    C)Javap和Java    D)Javac和Jdb
13、容器Panel和Applet缺省使用的布局编辑策略是( B    )。
A)BorderLayout     B)FlowLayout         C)GridLayout         D)CardLayout
14、下列方法中,不属于WindowListener接口的是(  D   )。
A)windowOpened()        B)windowClosed()     C)windowActivated()        D)mouseDragged()
15、阅读下列代码
  public  class  Test2005{
  public  static  void  main(String args[]){
  String s=”Test”;
  Switch(s){
  Case ”Java”:System.out.print(”Java”);
  break;
  case ”Language”:System.out.print(”Language”);
  break;
  case ”Test”:System.out.print(”Test”);
  break;}
  }
  }
  其运行结果是(  D   )。
A)Java        B)Language     C)Test     D)编译出错
16、阅读下列代码
  public class  Test2005{
  public static void main(String args[]){
  System.out.println((3>2)?4:5);
  }
  }
  其运行结果是(  C   )。
A)2           B)3           C)4         D)5
17、下列关于Applet的说法中,错误的是(   C  )。
A)Applet自身不能运行,必须嵌入到其它应用程序(如浏览器)中运行
B)可以在安全策略的控制下读写本地磁盘文件
C)Java中不支持向Applet传递参数
D)Applet的主类要定义为java.applet.Applet类的子类
补充知识:修改Java_Home\lib\security\java.security文件,并把自己写好的.policy文件放到指定的目录中。只要在.policy文件中进行一定的设置,Applet程序几乎就可以访问本地磁盘里的所有文件了。但是这种方法的最大缺点就是要改客户端Jre的java.security文件。
18、下列命题中,错误的是(   A  )。
A)Java编程时,要求应尽量多用公共变量
B)Java编程时,要求应尽量少用公共变量
C)Java编程时,要求应尽量不用公共变量
D)Java编程时,要求应尽量使用私有变量
19、若特快订单是一种订单,则特快订单类和订单类的关系是( C  )。
A)使用关系    B)包含关系    C)继承关系    D)无关系
20、包的File类是(  D   )。
A)字符流类    B)字节流类    C)对象流类    D)非流类

二、填空题(每空1分,共10分)
21、__抽象abstract__方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
22、__最终final__方法是不能被当前类的子类重新定义的方法。
23、使用Swing编写Applet,则该Applet的主类应该定义为_java.applet.Applet__类的子类。
24、  Class __类是由Java编译器自动生成的,它伴随每个类。
补充知识:Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的。一个类A的getClass()方法返回一个跟类A相关的Class类的实例对象。
25、在运行时,由java解释器自动引入,而不用 import 语句引入的包是__java.lang___。
26、Applet生命周期方法有init(),  ___start (),stop()和destroy()。
27、下列程序的功能是创建了一个显示5个“Hello!”的线程并启动运行,请将程序补充完整。
public class ThreadTest extends Thread {
    public static void main(String args[ ]){
  ThreadTest t = new  __ThreadTest()___  ;
       t.start( ); }
    public void run( ){
     int i =0;
  while( true){
     System.out.println("Hello! ");
     if (i++==4)  break ;}
}
}  
28、在下列程序的下划线处,填入适当语句使程序能正确执行并输出异常栈信息。
   Public class ThrowableException{
   Public static void main(String args[]){
   try{
   throw new Throwable(“这里是本人定义的异常”);
   {catch(Throwable e){
   System.out.println(“Caught Throwable”);
   System.out.println(“e.getMessage():”+e.getMessage());
   System.out.println(“e.toString():”+e.toString());
   System.out.printin(“e.printStackTrace():”);
   e.printStackTrace();}}}
29、在包中有某个类同时实现了Datainput接口和DataOutput接口,这个类是 __RandomAccessFile________ 。
30、当实现Runnable接口时,要实现的方法是 __run()______ 。

三、判断题(每小题1分,共10分)
  T  )31、Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。      
  F  )32、在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。
  F  )33、子类可以继承父类所有的成员变量及成员函数。
  T  )34、Java applet不能够存取客户机磁盘上的文件。
  F  )35、Java类中不能存在同名的两个成员函数。
  T  )36、Java对事件的处理是基于授权事件模型的,即一个事件源产生一个事件并把它送到一个或多个监听器那里。
  F  )37、无论Java源程序包含几个类的定义,若该源程序文件以B.java命名,编译后生成的都只有一个名为B.class的字节码文件。
  T  )38、静态初始化器是在其所属的类加载内存时由系统自动调用执行的方法。
补充知识:静态变量、静态初始化块(器)、变量、初始化块、构造器(构造方法),它们的初始化顺序是:静态变量>静态初始化块>变量>初始化块>构造器。
  F  )39、在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。
  T  )40、Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。

四、阅读程序,回答问题(每小问3分,共30分)
41、
1:  public class Output1 {
2:     public static void main(String arge[]) {
3:         int i=0;
4:         for ( char ch = 97; ch<113; ch++,i++) {
5:             if( i % 8 == 0 )
6:                 System.out.println(" ");
7:             System.out.print("\t" +ch);            
8:         }
9:     }
10: }
(1)程序第5、6行的if语句的功能是什么?
答:每八个字母输出一个空格并换行
(2)程序输出的结果有几行?
答:二行,如下
    a   b   c   d   e   f   g   h
    i   j   k   l   m   n   o   p

42、定义类A和类B如下:
class  A
{
    int  a=1;
    double  d=2.0;
    void  show( )
    {
        System.out.println("Class A: a="+a +"\td="+d);
    }
}
class  B  extends  A
{
    float  a=3.0f;               
    String  d="Java program.";   
     void  show( )                  
     {  
        super.show( );      
        System.out.println("Class B:  a="+a +"\td="+d);
     }
}
(1) 若在应用程序的main方法中有以下语句:
A  a=new A();
a.show();
则输出的结果如何?
答:Class A: a=1    d=2.0
(2) 若在应用程序的main方法中定义类B的对象b:
A  b=new B();
b.show();
则输出的结果如何?
答:
Class A: a=1    d=2.0
Class B:  a=3.0 d=Java program.

43、
 public class A {
     public static void main(String args[]) {
         try{
             int  x[]={1,2,3};
             int  k=Integer.parseInt(args[0]);
             System.out.println(x[k]);
             System.out.println("try结束!");
         }
         catch(ArrayIndexOutOfBoundsException e){
              System.out.println("执行catch");
         }
         finally{
              System.out.println("执行finally");
         }
         System.out.println("程序结束!");
     }
 }
 (1)若在命令行编译该程序后,键入下面的内容运行该程序:java A 1
 则程序输出的结果如何?
答:
2
try结束
执行finally
程序结束!

(2) 若在命令行编译该程序后,键入下面的内容运行该程序:java A 3
则程序输出的结果如何?
答:
执行catch
执行finally
程序结束!

44、
1:    public class A {
2:        public static void main(String args[]) {
3:            MyInterface  obj2=new B("B");
4:            obj2.show();
5:        }
6:    }
7:
8:    interface MyInterface {
9:        double G=88;
10:       void show();
11:   }
12:
13:   class B implements MyInterface {
14:
15:       String str;
16:       public B(String s) {
17:           str=s;
18:       }
19:       public void show() {
20:           System.out.println(str+": G="+G);
21:       }
22:   }
 (1) 程序第8---11行定义的MyInterface是类还是接口?
答:接口

 (2) 程序第4行输出的结果是什么?
答:B:G=88.0

45、
 public class A{
     public static void main(String args[]) {
         B  b=new B();
         b.start();
     }
 }
 class B extends Thread {
     public void run(){
         for(int i=1;i<3;i++){
              System.out.println("第"+i+"次"+"   ");
              try{
                 sleep(1000);
              }
              catch(InterruptedException e){
                  e.printStackTrace();
              }
          }
      }
  }
(1) 程序第12行的sleep方法调用的功能是什么?
答:使当前线程停止执行若干毫秒。

(2) 程序输出的结果是什么?
答:
第1次
第2次

五、编程题(每小题15分,共30分)
注意:1-2任选一题,3-4任选一题。请将代码填到此处。
1、编写一个完整的Java  Application 程序。包含接口ShapeArea,类Circle、Rectangle、Test,具体要求如下:
    ⑴接口ShapeArea:
        接口方法
double  getArea():求一个形状的面积
double  getPerimeter ():求一个形状的周长
⑵类Rectangle:
        实现ShapeArea接口,并有以下属性和方法:
属性
width: double型,表示长方形的宽度
height:double型,表示长方形的长度
方法
Rectangle(double  w,  double  h):构造函数toString():
输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”
⑶Test类作为主类要完成测试功能
    生成Rectangle对象
调用对象的toString方法,输出对象的描述信息

2、编写一个学生类 Student ,要求:
(1) 学生类 Student 属性有:
id    :long型,代表学号
name :String类对象,代表姓名
age   :int型,代表年龄
sex   :boolen型,代表性别(其中:true表示男,false表示女)
phone :String类对象,代表联系电话
(2) 学生类 Student的方法有:
Student(long  i , String  n , int  a , boolean  s , long  p):有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。
int  getAge() :获取年龄作为方法的返回值。
boolean  getSex( ) :获取性别作为方法的返回值。
long  getPhone ( ) :获取联系电话作为方法的返回值。
public  String  toString( ):以“姓名:联系电话”的形式作为方法的返回值。

3、编写一个Java Applet,在屏幕上输出一个黄月亮,如下所示:
 

4、编写一个Java Application,创建一个标题为"是否闰年"的窗框,布局任意,组件有三个:
标签:“请输入年份:”
文本框:用于输入年份(整数)XX
命令按钮:用于判断是否闰年。
在点击命令按钮之后,如果是闰年,弹出一个对话框,里面包括“XX是闰年!”字样。若不是闰年,则弹出一个对话框,上面写有“XX不是闰年!”字样。
选做部分:若输入的年份不是整数,则触发一个异常,弹出一个对话框,上面写有“输入不是整数!”字样。


搜索更多相关主题的帖子: 程序设计 垃圾回收 选择题 练习题 虚拟机 
2013-06-16 03:06
晓婷长月
Rank: 1
等 级:新手上路
帖 子:61
专家分:0
注 册:2013-6-4
收藏
得分:0 
2013-06-16 03:07
快速回复:《Java程序设计》练习题(三)【含部分答案】
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046588 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved