zoukankan      html  css  js  c++  java
  • 第三周测试总结分析

    1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。
    A .true
    B .false
    答案:B
    解析:P50。机器语言、汇编语言属于低级语言。

    2、下列说法正确的是
    A .使用C语言编写代码指令时,不需要考虑机器指令的细节。
    B .源文件是按照编程语言的语法编写具有一定扩展名的文本文件。
    C .面向对象语言编写的程序需要消耗更多的内存,需要更快的CPU来保证其运行速度。
    D .代码块是程序执行时产生的一种行为,但是面向过程语言却没有为这种行为指定“主体”,即对象。
    答案:ABCD
    解析:P50-51。

    3、下列关于面向对象编程的特点的叙述,错误的是
    A .面向对象编程的三个特点为:封装、继承、多态。
    B .只能对一个类中的方法进行封装,不能对其属性进行封装。
    C .子类继承父类,可以添加子类独有的数据和数据上的操作。
    D .在 OOP中,继承的概念很好的支持了代码的重用性(reusability)。
    答案:B
    解析:P51-52。

    4、类体的内容由下列哪几部分组成
    A .声明变量
    B .定义方法
    C .导入相关的包
    D .定义其他所需的类
    答案:AB
    解析:P53

    5、对于P53代码,如果定义了一个Lader类的对象,则其具有computerArea()和setHeight()两个行为。
    A .true
    B .false
    答案:A

    6、下列说法正确的是
    A .成员变量的数据类型可以是Java中的任何一种数据类型。
    B .成员变量和局部变量的有效范围为整个类。
    C .方法返回的数据的类型可以是Java中的任何一种数据类型。
    D .方法体内可以对成员变量和方法体中声明的局部变量进行操作。
    答案:ACD
    解析:P54-55。

    7、如果局部变量与成员变量的名字相同,则局部变量被隐藏。
    A .true
    B .false
    答案:B
    解析:P56。

    8、下列说法正确的是
    A .如果想在方法中使用被隐藏的成员变量,可以使用关键字super。
    B .double类型的成员变量的默认值为0,局部变量没有默认值。
    C .对成员变量的赋值操作只能放在方法中。
    D .面向对象语言中的“类”相当于C语言中的“函数”。
    答案:C
    解析:P55-57。A项:应使用关键字this。B项:double类型的成员变量的默认值为0.0。D项:面向对象语言中的“方法”相当于C语言中的“函数”。

    9、下列关于UML类图的说法,正确的是
    A .抽象类和抽象方法一般用斜体表示。
    B .一般情况下,方法的属性用+表示private,用-表示public。
    C .在UML 里,一个类的属性能显示它的名字,类型,初始化值。
    D .继承用一个带三角的直线表示,由父类指向子类。
    答案:AC
    解析:B项:用+表示public,用-表示private。D项:由子类指向父类。

    10、下列说法错误的是
    A .类是面向对象语言中最重要的一种数据类型,可以用类来声明变量。
    B .在用类声明对象后,还必须创建对象。
    C .用类声明的变量称为该类的一个全局变量。
    D .类是创建对象的模板,没有类就没有对象。
    答案:C
    解析:P57-58。用类声明的变量称为对象。

    11、下列关于构造方法的叙述,正确的是
    A .当程序用类创建对象时,需使用它的构造方法。
    B .类中的构造方法的名字必须与该类的名字完全相同,而且没有类型。
    C .如果类中定义一个或多个构造方法,则默认为无参数的构造方法。
    D .带有返回值的方法一定不是构造方法。
    E .允许在一个类中编写若干个构造方法,但参数必须不同。
    答案:ABDE
    解析:P58 4.3.1节。C项:C.如果类中定义一个或多个构造方法,则Java不提供默认的构造方法。

    12、下列关于创建对象的说法,错误的是
    A .创建一个对象包括对象的声明和为对象分配变量两个步骤。
    B .使用Student stu;声明对象变量后,stu的内存中还没有任何数据。
    C .引用型成员变量的默认初值为0。
    D .对象的引用存在堆中,对象的实体(分配给对象的变量)存在栈中。
    E .String a="ab"+"cd";创建了3个对象。
    答案:CD
    解析:4.3.2节。C项:引用型成员变量的默认初值为null。D项:对象的引用存在栈中,对象的实体(分配给对象的变量)存在堆中。

    13、下列关于对象的叙述,正确的是
    A .通过使用运算符“.”,对象可以实现对自己的变量的访问和方法的调用。
    B .当对象调用方法时,方法中出现的成员变量就是指分配给该对象的变量。
    C .使用空对象会抛出UnknownTypeException异常。
    D .对于同一个类的两个对象obj1和obj2,若进行obj1=obj2操作,则obj1和obj2拥有同一个实体。
    E .即使一个类声明的两个对象具有相同的引用,其实体也不一定完全相同。
    答案:ABD
    解析:4.3.3节、4.3.4节。C项:NullPointerException异常。E项:若引用相同,则具有完全相同的实体。

    14、关于类的叙述,正确的是
    A .Java程序以类中的方法为“基本单位”。
    B .每个源文件都是一个独立的编译单位。
    C .与类所在源文件名称相同的类,称为主类。
    D .使用“javac Example4_5.java”编译P67的Example4_5.java时,自动编译了Rect.java和Lader.java。
    E .可以使用“javac *.java”编译P67该目录下的所有Java文件。
    答案:BDE
    解析:4.4节。A项:以类为基本单位。C项:含有main方法的类称为主类。

    15、下列关于参数传值的说法,错误的是
    A .对象调用方法时,参数变量必须有具体的值。
    B .方法如果改变参数的值,向参数传值的变量的值也会改变。
    C .可以向int型变量传递一个short值。
    D .如果改变参数变量所引用的实体,原变量的实体会发生同样的变化。
    E .对于可变参数,如一个参数代表x,那么x.length等于x所代表的参数的个数。
    答案:B
    解析:4.5节。方法如果改变参数的值,不会影响向参数“传值”的变量的值。

    16、下列关于P72例子8的叙述,错误的是
    A .圆对象委托圆锥对象调用其方法setBottom(),然后圆锥对象再计算出自身的体积。
    B .执行Example4_8.java的“circular.setBottom(cicle);”一句,将circle对象的引用传递给circular对象的bottom。
    C .执行Example4_8.java的“circle.setRadius(50)”一句,bottom的实体和circle的实体发生一样的变化。
    D .执行Example4_8.java的“circle = new Circle(1000)”一句,circle对象有了不同于bottom的实体。
    答案:A
    解析:P72-75。A项:圆锥对象委托圆对象调用getArea()方法计算底的面积。

    17、下列关于实例变量和类变量的说法,错误的是
    A .在声明成员变量时,用关键字static修饰的称作类变量,否则称为实例变量。
    B .分配给不同对象的类变量占有不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的实例变量。
    C .创建类的对象时,类变量不再重新分配内存。
    D .类变量不仅可以通过某个对象访问,也可以直接通过类名访问。
    答案:B
    解析:P77-78。B项:这是对“实例变量”的描述,而非“类变量”。

    18、下列关于实例方法和类方法的叙述,正确的是
    A .类方法不可以操作实例变量,因为在类创建对象之前,实例成员变量还没有分配内存。
    B .当创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址。
    C .实例方法不能通过类名调用,只能由对象来调用。
    D .不必创建对象就可以用类名直接调用static方法。
    答案:ABCD
    解析:P79-80。

    19、以下对重载描述错误的是
    A .方法重载只能发生在一个类的内部。
    B .构造方法不能重载。
    C .重载要求方法名相同,参数列表不同。
    D .方法的返回值类型不是区分方法重载的条件。
    答案:B

    20、下列说法正确的是
    A .在一个类的内部可以直接调用本类的对象,也可以使用关键字this来调用。
    B .构造方法中使用this时,可以省略this,即将this.method()直接写成method()。
    C .this不能出现在类方法中。
    D .当实例成员变量的名字和局部变量的名字相同时,可以省略成员变量前的“this.”和static变量前的“类名.”。
    答案:ABC
    解析:4.9节。D项:当实例成员变量的名字和局部变量的名字相同时,不能省略成员变量前的“this.”和static变量前的“类名.”。

    21、在E:中使用“javac Mycodeweek3HelloWorld.java”编译HelloWorld.java,编译通过后在E:目录中产生字节码文件。
    A .true
    B .false
    答案:B

    22、下列说法正确的是
    A .println()方法属于java.lang.,但由于其非常常用,编译器自动添加了java.lang.,因此使用println()方法时不需要import。
    B .如果一个文件中有class的定义、import、package,则其先后顺序为import、package、class。
    C .可以使用import java.*;将类库中的所有的类都包含进去。
    D .java.math提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。
    答案:AD
    解析:B项:先后顺序为package、import、class。C项:不可以太过简单,起码要标注包的名称。D项:见API文档介绍。

    23、访问修饰符作用范围由大到小排序正确的是
    A .private-protected-public
    B .public-private-protected
    C .private-public-protected
    D .public-protected-private
    答案:D

    24、下列关于访问权限的叙述,正确的是
    A .类方法总是可以操作该类中的类变量,与访问限制符无关。
    B .当在其他类中创建一个该类的对象时,该对象不能访问自己的私有变量。
    C .public、protected、private均可以用来修饰类。
    D .如果源文件使用import语句引入另一个包的类,并创建了一个该类的对象,那么该类的这个对象不能访问自己的友好变量和友好方法。
    答案:ABD
    解析:4.12节。不能用protected和private修饰类。

    25、下列代码的执行结果均为true。

    int i = 128;
    
      Integer i2 = 128;
    
      Integer i3 = new Integer(128);
    
      System.out.println(i == i2);
    
    System.out.println(i == i3);
    
    

    A .true
    B .false
    答案:A
    解析:Integer类型的对象包含一个int类型的字段,Integer会自动拆箱为int,因此值相等。

    26、下列说法正确的是
    A .Java应用程序由若干个类所构成,这些类必须在一个源文件中。
    B .Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。
    C .Java源文件必须含有主类。
    D .Java源文件如果含有主类,主类必须是public类。
    答案:B

    27、下列说法正确的是
    A .成员变量的名字不可以和局部变量的相同。
    B .方法的参数的名字可以和方法中声明的局部变量的名字相同。
    C .成员变量没有默认值。
    D .局部变量没有默认值。
    答案:D

    28、关于下列Hello类的叙述,正确的是

    class Hello {
    
         Hello(int m){
    
         }
    
         int Hello() {
    
             return 20;
    
         }
    
         hello() {
    
         }
    
    }
    
    

    A .Hello类有2个构造方法。
    B .Hello类的int Hello()方法是错误的方法。
    C .Hello类没有构造方法。
    D .Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。
    答案:D

    29、关于下列Dog类的叙述,错误的是

    class Dog {
    
         Dog(int m){ 
    
         }
    
         Dog(double  m){ 
    
         }
    
         int Dog(int m){ 
    
            return 23;
    
         }
    
         void Dog(double m){
    
         }
    
    }
    
    

    A .Dog(int m)与Dog(double m)互为重载的构造方法。
    B .int Dog(int m)与void Dog(double m)互为重载的非构造方法。
    C .Dog类只有两个构造方法,而且没有无参数的构造方法。
    D .Dog类有3个构造方法。
    答案:D

    30、下列A类中【代码1】~【代码5】哪些是错误的?

    class Tom {
    
    private int x = 120;
    
      protected int y = 20;
    
      int z = 11;
    
      private void f() {
    
         x = 200;
    
         System.out.println(x);  
    
      } 
    
      void g() {
    
         x = 200;
    
         System.out.println(x); 
    
      }
    
    }
    
    public class A {
    
      public static void main(String args[]) {
    
           Tom tom = new Tom();
    
           tom.x = 22;   //【代码1】
    
           tom.y = 33;   //【代码2】
    
           tom.z = 55;   //【代码3】
    
           tom.f();     //【代码4】
    
           tom.g();     //【代码5】
    
       }
    
    }
    
    

    A .【代码1】
    B .【代码2】
    C .【代码3】
    D .【代码4】
    E .【代码5】
    答案:AD

    31、下列E类的类体中哪些【代码】是错误的。

    class E {
    
      int x;               //【代码1】
    
      long y = x;          //【代码2】
    
      public void f(int n) {
    
         int m;          //【代码3】 
    
         int t = n+m;     //【代码4】   
    
      } 
    
    }
    
    

    A .【代码1】
    B .【代码2】
    C .【代码3】
    D .【代码4】
    答案:D
    (说明:P是书上页码,详情请看书)

  • 相关阅读:
    HTML5中的FileSystem API的一个问题(或者是BUG)
    TSQL入门(二)——创建表
    javascript绘制谢尔宾斯基三角形(Sierpinski triangle)
    VS2010操作SQL SERVER CE 4.0数据库
    TSQL入门(三)——增删改(INSERT、DELETE、UPDATE)
    IE6警告框
    TSQL入门(二)——创建表
    TSQL入门(一)——创建数据库
    TSQL入门(一)——创建数据库
    javascript绘制谢尔宾斯基三角形(Sierpinski triangle)
  • 原文地址:https://www.cnblogs.com/cjy-123/p/10689022.html
Copyright © 2011-2022 走看看