《Java程序设计》期末复习资料

《Java程序设计》期末复习资料
说明:  本份资料由五部分构成:“考试范围”、“考试题型”、“参看课本相关知识和课后习题”、“课本各个章节重点知识”和“期中测试试卷及参考答案”。
一、考试范围:课本第一至八章。
二、考试题型:①选择题,20道,20分;②填空题,10空,10分;③简答题,6题,30分;④阅读程序题,含填空、改错和运行结果等三类题型,20分;⑤编程题,20分。
三、参看课本相关知识和课后习题:
         看课本相关章节,仔细看课后习题的选择题和填空题(答案在第301页)。
四、课本各个章节重点知识:
第一章
1.简述Java语言的特点?
答:(1).易于学习;(2).高效率的执行方式;(3).与平台无关性;(4).分布式
(5).安全性;(6).多线程;(7).丰富的API(Application Program Interface)文档和类库
2.Java程序有两种基本的类型,分别是___Applet_______、Application____。
3.编译源程序使用的命令是_javac___,解释执行编译过的程序使用的命令是_java__。
4.编译Applet源程序文件后,它所产生的字节码文件的扩展名是(B )
A.java    B.class    C.html     D.exe
第二章
1.Java的布尔常量只有两个值:false(假)和 true(真)。
2.Java的整型变量byte占1个字节,字符型变量char占2个字节。
3.下列变量定义错误的是(A)
A.float x;y;     B.float x,y=2.33f;    C.public int i=100,j=2,k;   D.char ch1=’m’,ch2=’/’;
4.假设以下选项中的变量都已经正确定义,不合法的表达式是(C)
A.a>=4==b<1   B.’n’-3   C.’a’=8    D.’A’%6
5.Java的复合数据类型有___3____种。
6.表达式2>=5的运行结果是__false____。
7.15.设x、y、max、min均为int 型变量,x、y已赋值。用三目条件运算符将x、y的较大值赋给max、较小值赋给min的语句分别是max=(x>y)?x:y ___和_ min=(x
  
  
   
   import java.io.*;

   
   public 
   
   class LeapYear
{
   
   
   public 
   
   static 
   
   void main(String args[]) 
   
   throws IOException
   {
      
   
   int year; String str;
      BufferedReader buf;
      buf=
   
   new BufferedReader(
   
   new InputStreamReader(System.in));
      System.out.print("
   
   Input the year:");
      str=buf.readLine();        
      year=Integer.parseInt(str);                                                    
   
   // 将str转成int类型后指定给a存放
     
   
   if (year % 4 == 0 && year % 100 !=0 || year % 400 ==0)
          System.out.println("
   
   year "+year+"
   
    is a leap year.");  
      
   
   else
          System.out.println("
   
   year "+year+"
   
    is not a leap year. ");  
   }
}
2.编程序计算当n为多大时下列不等式成立。

 



   
   public 
   
   class Limit{
   
   
   public 
   
   static 
   
   void main(String args[]) {
      
   
   int n=0; 
   
   float sum=0;
      
   
   while (sum<=10) {  n+=1; sum+=1.0/n;}
      System.out.print("
   
   N= "+n);                    
   }
}
3.编一程序,从键盘输入一个自然数,判断其是否为素数(只能被1和其本身整除的自然数)。

   
   import java.io.*;

   
   public 
   
   class Prime{
   
   
   public 
   
   static 
   
   void main(String args[]) 
   
   throws IOException
   {                
      
   
   int i;
   
   boolean p;
      BufferedReader buf;
      String str;
      buf=
   
   new BufferedReader(
   
   new InputStreamReader(System.in));
      System.out.print("
   
   Input m is:");
      str=buf.readLine();        
      
   
   int m=Integer.parseInt(str); 
          p=
   
   true;   
          
   
   for(i=2;i
   
   
    
    if (m%i==0)
                p=
    
    false;
           
    
    if (p==
    
    true)
               System.out.println(m+"
    
     is a prime number.");
           
    
    else
               System.out.println(m+"
    
     is not a prime number.");   
    }
}
4.水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
  三位的水仙花数共有4个:153,370,371,407;
  四位的水仙花数共有3个:1634,8208,9474;
  五位的水仙花数共有3个:54748,92727,93084;
  六位的水仙花数只有1个:548834;
  七位的水仙花数共有4个:1741725,4210818,9800817,9926315;
  八位的水仙花数共有3个:24678050,24678051,88593477
……
请试着用Java语言编写出其程序。

    
    public 
    
    class shuixianhua {
  
    
    public 
    
    static 
    
    void main(String[] args) {
     
    
    for (
    
    int i = 1; i < 10; i++) {
       
    
    for (
    
    int j = 0; j < 10; j++) {
         
    
    for (
    
    int k = 0; k < 10; k++) {
         
    
    if (i*i *i+j*j*j + k*k*k==i*100+j*10+k) {
             
    
    int sum = i*100 + j*10 +k;
             System.out.println(sum);}
         }
       }
     }
   }
}
5.用选择排序法对十个数按照从大到小进行排序,然后输出。

    
    public 
    
    class Sort12
{
   
    
    public 
    
    static 
    
    void main(String args[])
   {  
      
    
    int mp[]={8,6,12,5,14,7,21,2,9,3};
      System.out.println("
    
    The original 10 numbers:");
      
    
    for (
    
    int j=0;j
    
    
     
     /t");
      System.out.println();
      
     
     for(
     
     int i=0;i
     
     
      
      for (
      
      int j=i;j
      
      
       
       if(mp[i]>mp[j]) {
       
       int t=mp[i];mp[i]=mp[j];mp[j]=t;}
      System.out.println("
       
       The sorted 10 numbers:");  
           
       
       for (
       
       int j=0;j
       
       
         /t"); } } 6.假设有一条钢材长2000米,每天截取其中的一半,编一程序求出多少天后,钢材的长度开始短于5米。 
        public 
        class MSteel{ 
        public 
        static 
        void main(String args[]){ 
        int d=0; 
        float m=2000; 
        while (m>=5) { m=m/2;d++; System.out.print(d+" 
        : "); System.out.println(m); } System.out.print(" 
        You need "+d+" 
         days"); } } 7.使用java.lang.Math类,生成10个0~99之间的随机整数,求出它们中的最大值和最小值。提示:java.lang.Math类支持random方法:Math.Random()。该方法返回值是正数,类型为double,范围为0~1。如果要得到其他范围的数,则要进行相应的转换。例如要得到(a,b)之间的整数的方法是:( 
        int)(b-a+1)*Math.random( )+a)。若要得到(0,99)之间的整数可以使用下列语句: 
        int m=( 
        int)(100*Math.random( )); 
        public 
        class LSRnd{ 
        public 
        static 
        void main(String args[]){ 
        int mun,n,max1,min1; max1=0; min1=100; 
        for (n=1;n<=10;n++){ mun=( 
        int)(100*Math.random()); System.out.print(mun+" 
         "); 
        if (mun>max1) max1=mun; 
        if (mun 
        
          The largest number is: "+max1); System.out.println(" 
         The smallest number is: "+min1); } } 第四章 (一)知识点部分 1.类的声明: 类首:【修饰符】 
         class 类名 
         extends 父类名 
         implements 接口名 类主体: 变量 方法 2.对象的创建和使用 Student类 Students s = 
         new Student(); s.变量名 s.方法名(参数列表) 3.构造方法(为对象进行初始化的) 特点: 1.类名相同 2.无返回值,没有void 3.java为每一个类提供一个默认的无参的构造函数Student(){} 4.实体:当用一个类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间被称作该对象的实体,而对象中存放着引用,以确保实体由该对象操作使用。 5.参数传递 6.垃圾回收机制:实际上,java有所谓的“垃圾回收”机制,这种机制周期的检测某个实体是否已不再被任何对象所拥有,如果发现这样的实体,就释放实体占有的内存。 7.对象的生命周期,对象销毁方法 finalize 8.访问权限 1.类: 
         public 默认, 如果在一个源文件中,声明了若干个类,则只能有一个类的权限是public,且这个类的名字和文件名字相同,一般main方法在这个类中。 2.变量和方法:四种。 9.static修饰符(8句话) u 不同对象的同名实例变量占用不同的内存空间。 u 通过对象名来访问实例变量 u 同一类中的所有对象的类变量共享一个存储空间。 u 可以使用类名和对象名访问类变量。 u 实例方法可以对实例变量和类变量进行操作。 u 实例方法必须由对象调用。 u 类方法只能对类变量进行操作 u 类方法可以用类名和对象名调用 10.类的继承 1.子类和超类 2.子类继承超类的变量(两个原则) 3.子类继承超类的方法 4子类的构造方法(使用super) 11. 
         null 
         this super对象运算符 12.最终类最终方法( 
         final) 13.抽象类抽象方法( 
         abstract) 抽象方法特点:(1)无方法体(2)必须被子类覆盖 抽象类特点: (1)抽象类不能用new运算符创建对象。 (2)抽象类中可以有抽象方法也可以没有。 (3)一旦类中包括了抽象方法就必须声明为abstract (4)若超类是抽象类,子类必须实现超类中所有抽象方法 抽象类不能被abstract和final同时修饰 抽象方法不能被abstract、 
         static、final同时修饰 14.类的多态性 1.方法重载:一个类中,方法名称相同,参数个数和参数类型不同 2.方法覆盖:父类与子类 定义方法名称、参数个数、参数类型、均相同的方法 15.接口 1.接口内容:常量(默认为public、 
         staticfinal)和抽象方法( 
         publicabstract) 2.接口定义 修饰符 
         interface 接口名 3.接口实现 
         class 类名 
         implements 接口名 4.特点:当一个类实现了一个接口,它必须实现接口中所有的方法,这些方法都要被声明为public。注意:方法的名字、返回类型、参数个数及类型必须与接口中方法一致。 16.包 1.声明包; 
         package 包名 2.引用包: 
         import 包名 3.包是有等级的,包中可以有包。 4. java常用的包有: java.lang 语言包 java.util  实用包 java.awt 抽象窗口工具包 java.text 文本包 java.io 输入输出流的文件包 java.applet Applet应用程序 java.net 网络功能 (二)练习部分: 1.下面程序段中,最早被垃圾收集的是(D) 
         public 
         void method(){ String a,b; a = 
         new String(" 
         hello"); b = 
         new String(" 
         game over"); System.out.println(a+b+" 
         ok"); a= 
         null; a=b; System.out.println(a) } A.第4行前 B.第6行前 C 第7行前 D第8行前 2.关于对象成员占用内存的说法正确的是(B) A.同一个类的对象共用一段内存 B.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间 C.对象的方法不占用内存 D以上说法都不对 3.构造方法何时被调用(B) A类定义时 B创建对象时 C调用方法时 D使用对象的变量时 4.输出结果 
         class Test03{ 
         public 
         static 
         void main(String[] args){ StringBuffer s= 
         new StringBuffer(" 
         good"); StringBuffer s2= 
         new StringBuffer(" 
         bad"); test(s,s2);System.out.println(s); 
         //9 System.out.println(s2); 
         //10 } 
         static 
         void test(StringBuffer a,StringBuffer b){ System.out.println(a); 
         //1 System.out.println(b); 
         //2 b=a; 
         //3 a= 
         new StringBuffer(" 
         new"); 
         //4 System.out.println(a); 
         //5 System.out.println(b); 
         //6 a.append(" 
         hah"); 
         //7 b.append(" 
         hah"); 
         //8 } } 输出结果为: good bad 
         new good goodhah bad 5. 关于以下程序代码的说明正确的是( D ) 1. 
         class HasStatic{ 2. 
         private 
         static 
         int x=100; 3. 
         public 
         static 
         void main(String args[ ]){ 4. HasStatic hs1= 
         new HasStatic( ); 5. hs1.x++; 6. HasStatic hs2= 
         new HasStatic( ); 7. hs2.x++; 8. hs1= 
         new HasStatic( ); 9. hs1.x++; 10. HasStatic.x- -; 11. System.out.println(“x=”+x); 12. } 13. } A、 5行不能通过编译,因为引用了私有静态变量 B、 10行不能通过编译,因为x是私有静态变量 C、 程序通过编译,输出结果为:x=103 D、 程序通过编译,输出结果为:x=102 6.面向对象的程序设计有许多特性,下列选项中,不是面向对象程序设计特性的是(C) A.封装性 B。继承性 C.逻辑性 D。多态性 7.下列哪个声明是正确的(D) A. 
         abstract 
         final 
         class Hh{…..} B. 
         abstract 
         private move(){。。。} C. 
         protected 
         private number; D. 
         public 
         abstract 
         class Car{。。。} 8.下面的程序段在程序执行到第13行的声明时,将调用(C) 
         class Person{ 
         public 
         void printValue( 
         int i, 
         int j){} 
         public 
         void printValue( 
         int i){} } 
         public 
         class Teacher 
         extends Person{ 
         public 
         void printValue( 
         int i, 
         int j){} 
         public 
         void printValue( 
         int i){} 
         public 
         static 
         void main(String args[]){ Person t= 
         new Person(); t.printValue(10, 20); } } A.第3行的方法 B。第4行的方法 C。第8行的方法 D。第9行的方法 9.能将程序补充完整的选项是(C) 
         class Person{ String name,department; 
         int age; 
         public person(String n){ name =n; } 
         public Person(String n, 
         int a){ name = n;age = a; } 
         public Person(String n,String d, 
         int a){ ____________________________ department = d; } } A.Person(n,a)B 
         this(Person(n,a))C. 
         this(n,a) D. 
         this(name,age) 10.下列说法正确的是(C) A.重载是指自来重新定义父类中函数的做法 B.覆盖是指在同一个类中允许存在多个同名函数 C.多态性是指同一个属性或者行为在一般类及其各个特殊类中具有不同的语义 D.子类不能包含父类中没有的特性 11.当不希望某个类被其他类继承时,就可以将该类标识为(A) A. 
         final B。 
         abstract c. 
         private D. 
         protected 12下列选项中,用来尽量隐蔽对象的内部细节的特性是(B) A.重载 B。封装 C。继承 D 多态 13.下列说法正确的是(B) A.用abstract修饰的方法,不能再被子类重写 B.用final修饰的方法,不能再被子类重写 C.抽象类中一定要包括abstract方法 D.某个类中包含了abstract方法,该类可以不声明为abstract类 14.下面那个类声明是正确的(C) A. 
         abstract 
         class G2 
         extends superClass1,superClass2{。。。。} B. 
         abstract 
         public 
         class classmates{。。。。} C. 
         public 
         final 
         class NewClass 
         extends superClass 
         implements Interface1{。。。。} D. 
         public 
         abstract 
         class String{。。。} 15.下列关于构造方法说法正确的是(C) A构造方法的名称可以和类不一样 B.构造方法必须有返回值 C.只能用new调用构造方法 D.构造方法不可以被重载 16.在抽象类中声明一个抽象方法的是(B) A. 
         public 
         abstract method(); B。 
         public 
         abstract 
         void method(); C. 
         public 
         void 
         abstract Method(); D。 
         public 
         void method(){ 
         abstract} 17能将程序补充完整的选项是(D) 
         class Person{ 
         private 
         int a; 
         public 
         int change( 
         int m){ 
         return m; } } 
         public 
         class Teacher { 
         public 
         int b; 
         public 
         static 
         void main(String[] args) { Person p = 
         new Person(); Teacher t = 
         new Teacher (); 
         int i; ____________ } } A.i=m B。i=b C.i=p.a D.i=p.change(50) 18. 什么是方法重载和方法覆盖? 答:一个类中,有若干个方法名字相同,但方法的参数类型不同,称为方法的重载。 如果超类和子类有同名且参数相同的方法,那么超类的对象调用超类的方法,子类的对象调用子类的方法,这就是覆盖。 19. 举例说明类和对象的关系? 答:类是具有共同属性和行为的事物的抽象。对象是类的实例。例如,“电话”类代表电话这一类事物,而电话的对象代表一个具体的电话。 20. 抽象类特点有哪些? 答:(1)抽象类不能用new运算符创建对象。 (2)抽象类中可以有抽象方法也可以没有。 (3)一旦类中包括了抽象方法就必须声明为abstract (4)若超类是抽象类,子类必须实现超类中所有抽象方法 第五章 (一)知识点部分: 1.Applet与Application的区别 (1) Application是独立运行的,Applet是嵌入到web页面上的,必须在支持java的浏览器中运行 (2) Application中亦须有一个并且只有一个方法main(). Applet中没有main()方法,并且它是从java.applet.Applet继承的 (3) Application是能够进行各种操作的程序,包括读/写文件操作,但是Applet队站点的磁盘文件不能进行读/写操作。 2.Applet的生命周期 是指小应用程序的整个运行过程,他可以分为四个阶段 初始化init、启动start、停止stop、退出destroy 3.图形用户界面:包括AWT和SWING开发包 4.AWT简介:抽象窗口工具包,是java提供的建立图形用户界面GUI的开发包。主要功能有:用户界面构件、事件处理模型、图形和图像工具、布局管理等 5.事件处理机制涉及的三类对象 在java的事件处理中,主要涉及三类对象 (1) 事件:用户对界面操作在java语言上的描述,以类的形式出现 (2) 事件源:事件发生的场所,通常就是各个组件 (3) 事件处理者(监视器):接收事件并对其进行处理的对象 6授权处理机制 由于同一个事件源上可能发生多个事件,因此java采用了授权处理机制,事件源可以把在其自身所有可能发生的的事件分别授权给不同的时间处理者来处理。事件处理这也成为监听器,监听器时刻监听着事件源上发生的事件类型,一旦该事件类型与自己所负责处理的时间类型一致,就马上处理。 7.AWT组件库 按钮(Button)、标签(Label)、文本框(TextField)、文本域(TextArea)--ActionEvent-->ActionListener--> 
         public 
         void actionPerformed(ActionEvent e) 复选框(Checkbox)、单选钮(CheckboxGroup) 、下拉列表(Choice)、列表(List)、 ItemEvent-->ItemListener--> 
         public 
         void itemStateChanged(ItemEvent e) 框架(Frame)-->WindowEvent-->WindowListener--若干方法 WindowAdapter 默认布局是边界布局 对话框(Dialog)有模式、无模式 必须放在Frame中 面板(Panel)默认布局是FlowLayout布局 文件对话框(FileDialog) 菜单(MenuBart、Menu、MenuItem)必须放在frame中 构件的外观颜色和字体(Color、Font) 布局(四种) getSouce方法获得事件源 引包 
         import java.applet.*; 
         import java.awt.*; 
         import java.awt.event.*; 8.Swing Container c = 
         new Container(); c= 
         this.getContentPane(); javax.swing包 (二)练习部分: 1.小应用程序是存储于_InternetServer_上的java程序,它是在_客户端__端运行的。 2.小应用程序的生命期中包括如下几个阶段:_初始_、_启动_、_停止_和_退出_。 3.程序包java.awt.event是用于处理java中的___事件___的。 4.在文本域中输入回车、点选按钮触发的事件是_ActionEvent_,该事件对应的接口是_ActionListener_,其中只有_actionPerformed(ActionEvent e)_一个方法需要重写。 5.单选钮、复选框、下拉列表、列表对应的类分别是_CheckboxGroup,Checkbox,Choice,List_,它们都涉及了_ItemEvent_事件。 6.类java.awt.Panel的用途是___将各种布局组合起来___。 7.用java.applet.Applet生成的小应用程序中不能直接加入菜单,菜单必须加在_窗口_中。 8.Java中用类_java.awt.Font_来设置字体,用类_java.awt.Color_来设置颜色。 9.试编写一小应用程序,单击按钮后实现红色和兰色的转换。 
         import java.applet.*; 
         import java.awt.*; 
         import java.awt.event.*; 
         public 
         class ButtonPress 
         extends Applet 
         implements ActionListener{ Button b1 = 
         new Button(" 
         红色"); Button b2 = 
         new Button(" 
         兰色"); 
         public 
         void init(){ 
         this.setLayout( 
         new FlowLayout()); 
         this.add(b1); 
         this.add(b2); 
         this.setBackground(Color.orange); b1.addActionListener( 
         this); b2.addActionListener( 
         this); } 
         public 
         void actionPerformed(ActionEvent e){ 
         if(e.getSource()==b1){ 
         this.setBackground(Color.red); } 
         else{ 
         this.setBackground(Color.blue); } } } 10. Applet与Application的区别 (1).Application是独立运行的,Applet是嵌入到web页面上的,必须在支持java的浏览器中运行 (2).Application中亦须有一个并且只有一个方法main(). Applet中没有main()方法,并且它是从java.applet.Applet继承的 (3).Application是能够进行各种操作的程序,包括读/写文件操作,但是Applet队站点的磁盘文件不能进行读/写操作。 第六章 (一)知识点部分: 1.请解释try、 
         catch、finally块之间的关系。 答:try块用来监视某段代码执行过程中是否发生异常,若发生则产生异常对象并抛出。catch用于捕获异常并处理它。finally块中的语句无论是否发生异常都将被执行。 2.简述throw,throws语句的作用。 答: throw语句用于在程序中自行抛出异常,throw语句执行后,其后继语句将不再执行,执行流程将直接寻找后面的catch语句,如果catch语句中的参数能匹配throw语句抛出的Throwable对象,则执行相应的异常处理程序。如果catch语句中的参数没有一个能与该对象相匹配,则由缺省的异常处理器终止程序的执行并输出相应的异常信息。 throws语句用于声明一个方法可能引发的所有异常,这些异常是要求调用该方法的程序处理的。 (二)练习部分: 1.Throwable类有两个子类,分别是(Error)和(Exception)。 2.异常分为运行异常、捕获异常、(声明异常)和(抛出异常)。 3.如果程序段中有多个catch,程序会(C) A.每个catch都执行一遍 B.把每个符合条件的catch都执行一次 C.找到适合的异常类型后就不再执行其他catch D.找到适合的异常类型后继续执行后面的catch 4.当方法遇到异常又不知如何处理时,下列哪种做法是正确的(C) A.捕获异常 B.抛出异常 C.声明异常 D.嵌套异常 第七章 1.什么是进程? 答:进程是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。 2.什么是线程? 答:线程就是比进程更小的运行单位,一个进程可以划分成多个线程。 3.在生命周期中,一个线程具有_创建_、_就绪_、_运行_、_阻塞_和_死亡_等五种状态。 4. Thread类的成员方法start的作用是_启动已创建的线程对象_。 5. 关于线程,下面说法对的是(C ) A.一个线程就是一个正在执行的程序 B.线程和线程之间无法通信 C.进程划分成线程,可以减少并发控制的时间 D.一个程序只有一个线程 第八章 1.什么是数据流? 答:数据流是指一组有序的、有起点和终点的字节组合。 2._InputStream_和_OutputStream_是字节输入输出流的超类;_Reader_和_Writer_是字符输入输出流的超类。 五、期中测试试卷及参考答案: 《Java程序设计》期中考试卷 一、单项选择题(每小题1分,共20分) 1、给出如下代码: 
         class Test{   
         private 
         int m;   
         public 
         static 
         void main(String args[]) {。。。。。。} } 如何使成员变量m 被方法main ()直接访问? ( ) A.将private 
         int m 改为 
         static 
         int m B.将private 
         int m 改为protected 
         int m C.将private 
         int m 改为 
         public 
         int m D.将private 
         int m 改为 
         int m 2、给定两个整型数组的定义: 
         int arr1[]={1,2,3,4,5}; 
         int arr2[]=arr1;然后经过修改将数组arr1的内容改为{1,4,9,16,25},那么此时arr2[1]的值为?( ) A、 1 B、2 C、4 D、9 3. Java源程序经编译生成的字节码文件的扩展名为( )。 A. 
         class B. java C. exe D. html 4、一个类中定义的成员变量只能在同一个类中访问,下面的那个修饰符可以获得需要的访问控制( )。 A. 
         private B.默认的 C. 
         public D. 
         static 5、下面哪个语句会产生编译错误( ) A、 
         float F = 4096.0f; B. 
         double D = 4096.0; C. 
         byte B = 4096; D. 
         char C = 4096; 6、下列标识符中哪组都是合法的。 ( ) A. _key, exle, CLASS B. 5ab test1, _3a C. bcp, 
         new, _c_d D. 
         switch, 
         if, _p 7、 
         class A{ 
         private 
         static 
         int x; 
         public 
         static 
         void setX( 
         int i){x=i;} 
         public 
         void printX(){System.out.println(“x=”+x);}} 
         class B{ A.setX(10); ① A.printX(); ② A a= 
         new A(); a.setX(20); ③ a.printX(); ④ } 下面哪句代码有错( ) A. ① B. ② C. ③ D. ④ 8、公有成员变量MAX_LENGTH是一个int型值,如果此变量的值保持常数值100,要使用哪个声明?( ) A. 
         public 
         int MAX_LENGTH=100; B. 
         final 
         int MAX_LENGTH=100; C. 
         final 
         public 
         int MAX_LENGTH=100; D. 
         protected 
         final 
         int MAX_LENGTH=100; 9.下列关于实型变量书写正确的是( ) A、 E3 B、2e0.3 C、1.2e3 D、1.2E0.3 10.在某个类中存在一个方法: 
         void sort( 
         int x),以下不能作为这个方法的重载的声明的是( ) A. 
         public 
         float sort( 
         float x) B. 
         int sort( 
         int y) C. 
         double sort( 
         int x, 
         int y) D. 
         void sort( 
         double y) 11. 开发出java程序设计语言的公司是( )。 A. SUN B. Microsoft C. IBM D. Borland 12. java语言中的复合数据类型包括:( ) A. 数组、类和字符 B.数组、浮点和布尔 C. 数组、类和接口 D.字符、类和布尔 13. 对于任意一个类,用户所能定义的构造方法的个数至多为 。( ) A.0 个 B.1 个 C.2 个 D. 任意个 14. 假设类 A 有构造方法 A( 
         int a) ,则在类 A 的其他构造方法中调用该构造 方法的语句格式应为 ( ) A. A(x) B. 
         this. A(x) C. 
         this(x) D. 
         super(x) 15. 以下定义一维数组的语句中,正确的是:( ) A. 
         int a[5] B. 
         int a[]= 
         new [5]; C. 
         int a[]; 
         int a= 
         new 
         int[5]; D. 
         int a[]={1,2,3,4,5}; 16. 有关类的说法正确的是( ) A 类具有封装性,所以类的数据是不能被访问的 B 类具有封装性,但可以通过类的功能接口访问类中的数据 C 声明一个类时,必须用public修饰 D 每个类中,必须有main方法,否则程序无法运行 17. 下面关于继承的说法正确的是( ) A 超类的对象就是子类的对象 B 一个类可以有几个超类 C 一个类只能有一个子类 D 一个类只能有一个超类 18. 下面关于多态性的说法正确的是( ) A 一个类中,不能有同名的方法 B 子类中不能有和父类同名的方法 C 子类中可以有和父类中同名且参数相同的方法 D 多态性就是方法的名字可以一样,但返回的类型必须不一样 19.关于实例方法和类方法,以下描述正确的是: ( ) A. 实例方法只能访问实例变量 B. 类方法既可以访问类变量,也可以访问实例变量 C. 类方法只能通过类名来调用 D. 实例方法只能通过对象来调用 20. 下列说法中,符合对象和类关系的是( ) A. 人和老虎 B.书和计算机等级考试书 C. 建筑材料和楼 D.轿车和汽车 二、填空题(每空1分,共20分) 1. java程序有两种基本的类型,分别是 、 。 2、编译源程序使用的命令是 ,解释执行编译过的程序使用的命令是 。 3、所有类的祖先是 4、java中声明接口的关键字为 实现接口的关键字为 。 5、在java编程中声明自定义包的关键字为 、声明包的语句必须添加在程序中___ _ __ 位置,包引入的关键字为 , 包是唯一自动引入每个java程序中。 6、父类和子类之间是 关系,用 关键字表示这种关系。 7.在java语言中,用来引用当前对象的运算符是 ,而用来引用当前对象的父类的运算符是 8.通过运算符 来实现成员变量的访问和成员方法的调用。 9.为类Class2编写构造方法的方法头,该构造函数接收两个整型形式参数 10.如果有一个类Son是Father的子类,能够被不同包中的类所使用,请写出该类的声明头 三、简答题(每小题5分,共15分) 1、 试述java语言的特点 2、 什么是方法重载和方法覆盖 3、 举例说明类和对象的关系 四、改错题:阅读下列程序,在不改变程序结构的基础上改正错误。(5分) 1. 
         class Wrong { 2. 
         public 
         static 
         void main(String args[]) { 3. bArr[]={“I’m a student”,”you’re a teacher”,”They’re my friends”} 4. 
         for(i=0;i<=bArr.length;i++) { 5. System.out.println(Arr[i]); 6. System.out.println(bArr[i].tolowerCase()); 7. System.out.println(bArr[i].toupperCase()); 五、阅读程序题(每小题5分,共15分) 六、编程题(共25分,其中第一题15分,第二题10分) 1、编写一个java程序,完成下面功能: 1)设计一个ArrayTest类,添加一个整型数组,添加构造方法以对数组赋初值(要求是一个0-99间的随机整数)。 2)为ArrayTest类添加数组的求和方法,返回求和值。 3)利用ArrayTest计算数组的各个元素和值并在标准输出设备中输出结果。 2.假设有一条钢材长2000米,每天截取其中的一半,编写程序,求出多少天后,钢材的长度开始小于5米。 《Java程序设计》期中考试卷 参考答案 一、1.A 2.C 3.A 4.A 5.C 6.A 7.B 8.C 9.C 10.B 11.A 12.C 13.D 14.C 15.D 16.B 17.D 18.C 19.D 20.D 二、1.Application、Applet 2.javac、java 3.Object 4. 
         interfaceimplements 5. 
         package、第一行、 
         import、java.lang 6.继承、 
         extends 7. 
         thissuper 8.. 9. 
         class2( 
         int x, 
         int y) 10. 
         public 
         class Son 
         extends Father 三、 1.提示:课本第3页 (1).易于学习 (2).高效率的执行方式 (3).与平台无关性 (4).分布式 (5).安全性 (6).多线程 (7).丰富的API(Application Program Interface)文档和类库 2.提示:课本第110~111页 一个类中,有若干个方法名字相同,但方法的参数类型不同,称为方法的重载。 如果超类和子类有同名且参数相同的方法,那么超类的对象调用超类的方法,子类的对象调用子类的方法,这就是覆盖。 3.提示:课本第89页 类是具有共同属性和行为的事物的抽象。对象是类的实例。例如,“电话”类代表电话这一类事物,而电话的对象代表一个具体的电话。 四、 第3行改为:String bArr[]={“I’m a student”,”you’re a teacher”,”They’re my friends”} 第4行改为: 
         for( 
         int i=0;i 
         
           static:y=4 no 
          static:x=0 
          static:y=4 no 
          static:x=6 
          static:y=7 2.10 40 3.hello welcome 
          new welcome hello welcomejava 六、 1. 
          public 
          class ArrayTest { 
          int a[]= 
          new 
          int[10]; ArrayTest(){ 
          for( 
          int i=0;i 
          
            int)(100*Math.random()); System.out.print(a[i]+" 
            "); } } 
           int sum(){ 
           int sum=0; 
           for( 
           int i=0;i 
           
             return sum; } 
            public 
            static 
            void main(String args[]){ ArrayTest aa= 
            new ArrayTest(); 
            int sum=aa.sum(); System.out.println(); System.out.println(" 
            数组的和是:"+sum); } } 2. 
            public 
            class Limit { 
            public 
            static 
            void main(String[] args) { 
            int n=0; 
            double sum=2000; 
            while(sum>=5){ n+=1;sum/=2; } System.out.println(" 
            N="+n); } } 
            
           
          
         
       
      
      
     
     
    
    
   
   
  
  
  • 9
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值