20145209刘一阳《JAVA程序设计》第三周课堂测试

第三周课堂测试

1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。(B)

A .true

B .false

2、下列说法正确的是(ABCD)

A .使用C语言编写代码指令时,不需要考虑机器指令的细节。

B .源文件是按照编程语言的语法编写具有一定扩展名的文本文件。

C .面向对象语言编写的程序需要消耗更多的内存,需要更快的CPU来保证其运行速度。

D .代码块是程序执行时产生的一种行为,但是面向过程语言却没有为这种行为指定“主体”,即对象。

3、下列关于面向对象编程的特点的叙述,错误的是(B)

A .面向对象编程的三个特点为:封装、继承、多态。

B .只能对一个类中的方法进行封装,不能对其属性进行封装。

C .子类继承父类,可以添加子类独有的数据和数据上的操作。

D .在 OOP中,继承的概念很好的支持了代码的重用性(reusability)。

4、类体的内容由下列哪几部分组成(AB)

A .声明变量

B .定义方法

C .导入相关的包

D .定义其他所需的类

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

A .true

B .false

6、下列说法正确的是(ACD)

A .成员变量的数据类型可以是Java中的任何一种数据类型。

B .成员变量和局部变量的有效范围为整个类。

C .方法返回的数据的类型可以是Java中的任何一种数据类型。

D .方法体内可以对成员变量和方法体中声明的局部变量进行操作。

7、如果局部变量与成员变量的名字相同,则局部变量被隐藏。(B)

A .true

B .false

8、下列说法正确的是(C)

A .如果想在方法中使用被隐藏的成员变量,可以使用关键字super。

B .double类型的成员变量的默认值为0,局部变量没有默认值。

C .对成员变量的赋值操作只能放在方法中。

D .面向对象语言中的“类”相当于C语言中的“函数”。

9、下列关于UML类图的说法,正确的是(AC)

A .抽象类和抽象方法一般用斜体表示。

B .一般情况下,方法的属性用+表示private,用-表示public。

C .在UML 里,一个类的属性能显示它的名字,类型,初始化值。

D .继承用一个带三角的直线表示,由父类指向子类。

10、下列说法错误的是(C)

A .类是面向对象语言中最重要的一种数据类型,可以用类来声明变量。

B .在用类声明对象后,还必须创建对象。

C .用类声明的变量称为该类的一个全局变量。

D .类是创建对象的模板,没有类就没有对象。

11、下列关于构造方法的叙述,正确的是(ABDE)

A .当程序用类创建对象时,需使用它的构造方法。

B .类中的构造方法的名字必须与该类的名字完全相同,而且没有类型。

C .如果类中定义一个或多个构造方法,则默认为无参数的构造方法。

D .带有返回值的方法一定不是构造方法。

E .允许在一个类中编写若干个构造方法,但参数必须不同。

12、下列关于创建对象的说法,错误的是(CD)

A .创建一个对象包括对象的声明和为对象分配变量两个步骤。

B .使用Student stu;声明对象变量后,stu的内存中还没有任何数据。

C .引用型成员变量的默认初值为0。

D .对象的引用存在堆中,对象的实体(分配给对象的变量)存在栈中。

E .String a="ab"+"cd";创建了3个对象。

13、下列关于对象的叙述,正确的是(ABD)

A .通过使用运算符“.”,对象可以实现对自己的变量的访问和方法的调用。

B .当对象调用方法时,方法中出现的成员变量就是指分配给该对象的变量。

C .使用空对象会抛出UnknownTypeException异常。

D .对于同一个类的两个对象obj1和obj2,若进行obj1=obj2操作,则obj1和obj2拥有同一个实体。

E .即使一个类声明的两个对象具有相同的引用,其实体也不一定完全相同。

14、关于类的叙述,正确的是(BDE)

A .Java程序以类中的方法为“基本单位”。

B .每个源文件都是一个独立的编译单位。

C .与类所在源文件名称相同的类,称为主类。

D .使用“javac Example4_5.java”编译P67的Example4_5.java时,自动编译了Rect.java和Lader.java。

E .可以使用“javac *.java”编译P67该目录下的所有Java文件。

15、下列关于参数传值的说法,错误的是(B)

A .对象调用方法时,参数变量必须有具体的值。

B .方法如果改变参数的值,向参数传值的变量的值也会改变。

C .可以向int型变量传递一个short值。

D .如果改变参数变量所引用的实体,原变量的实体会发生同样的变化。

E .对于可变参数,如一个参数代表x,那么x.length等于x所代表的参数的个数。

16、下列关于P72例子8的叙述,错误的是(A)

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的实体。

17、下列关于实例变量和类变量的说法,错误的是(B)

A .在声明成员变量时,用关键字static修饰的称作类变量,否则称为实例变量。

B .分配给不同对象的类变量占有不同的内存空间,改变其中一个对象的实例变量不会影响其他对象的实例变量。

C .创建类的对象时,类变量不再重新分配内存。

D .类变量不仅可以通过某个对象访问,也可以直接通过类名访问。

18、下列关于实例方法和类方法的叙述,正确的是(ABCD)

A .类方法不可以操作实例变量,因为在类创建对象之前,实例成员变量还没有分配内存。

B .当创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址。

C .实例方法不能通过类名调用,只能由对象来调用。

D .不必创建对象就可以用类名直接调用static方法。

19、以下对重载描述错误的是(B)

A .方法重载只能发生在一个类的内部。

B .构造方法不能重载。

C .重载要求方法名相同,参数列表不同。

D .方法的返回值类型不是区分方法重载的条件。

20、下列说法正确的是(ABC)

A .在一个类的内部可以直接调用本类的对象,也可以使用关键字this来调用。

B .构造方法中使用this时,可以省略this,即将this.method()直接写成method()。

C .this不能出现在类方法中。

D .当实例成员变量的名字和局部变量的名字相同时,可以省略成员变量前的“this.”和static变量前的“类名.”。

21、在E:\中使用“javac Mycode\week3\HelloWorld.java”编译HelloWorld.java,编译通过后在E:\目录中产生字节码文件。(B)

A .true

B .false

22、下列说法正确的是(AD)

A .println()方法属于java.lang.,但由于其非常常用,编译器自动添加了java.lang.,因此使用println()方法时不需要import。

B .如果一个文件中有class的定义、import、package,则其先后顺序为import、package、class。

C .可以使用import java.*;将类库中的所有的类都包含进去。

D .java.math提供用于执行任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal) 的类。

23、访问修饰符作用范围由大到小排序正确的是(D)

A .private-protected-public

B .public-private-protected

C .private-public-protected

D .public-protected-private

24、下列关于访问权限的叙述,正确的是(ABD)

A .类方法总是可以操作该类中的类变量,与访问限制符无关。

B .当在其他类中创建一个该类的对象时,该对象不能访问自己的私有变量。

C .public、protected、private均可以用来修饰类。

D .如果源文件使用import语句引入另一个包的类,并创建了一个该类的对象,那么该类的这个对象不能访问自己的友好变量和友好方法。

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

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

26、下列说法正确的是(B)

A .Java应用程序由若干个类所构成,这些类必须在一个源文件中。

B .Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。

C .Java源文件必须含有主类。

D .Java源文件如果含有主类,主类必须是public类。

27、下列说法正确的是(D)

A .成员变量的名字不可以和局部变量的相同。

B .方法的参数的名字可以和方法中声明的局部变量的名字相同。

C .成员变量没有默认值。

D .局部变量没有默认值。

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

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

A .Hello类有2个构造方法。

B .Hello类的int Hello()方法是错误的方法。

C .Hello类没有构造方法。

D .Hello无法通过编译,因为其中的hello方法的方法头是错误的(没有类型)。

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

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个构造方法。

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

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】

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

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】

posted @ 2018-06-15 05:06  20145209  阅读(807)  评论(0编辑  收藏  举报