励志一生网 > 经典语录 > 构造函数的声明语录 正文

构造函数的声明语录

时间:2024-10-05 03:26:56

1.使用Java语言编写的源程序保存时的文件扩展名是( )。

(A).class (B).java (C).cpp (D).txt

2.设int a=-2,则表达式a>>>3的值为( )。 (A)0 (B)3 (C)8 (D)-1

3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( )。

(A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1; a[i];

4.在类的定义中可以有两个同名函数,这种现象称为函数( )。

(A)封装 (B)继承 (C)覆盖 (D)重载

5.在类的定义中构造函数的作用是( )。

(A)保护成员变量 (B)读取类的成员变量 (C)描述类的特征 (D)初始化成员变量

6.下面关键字中,哪一个不是用于异常处理语句( )。

(A)try (B)break (C)catch (D)finally

7.类与对象的关系是( )。

(A)类是对象的抽象 (B)对象是类的抽象

(C)对象是类的子类 (D)类是对象的具体实例

8.下面哪一个是Java中不合法的标识符( )。

(A)$persons (B)twoNum (C)_myVar (D)*point

9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。

(A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( )

10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( )。

(A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( )

11.Java源文件和编译后的文件扩展名分别为( )

(A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java

12.在Java Applet程序用户自定义的`Applet子类中,一般需要重载父类的( )方法来完成一些画图操作。

(A) start( ) (B) stop( ) (C) init( ) (D) paint( )

13.对于一个Java源文件,import, class定义以及package正确的顺序是:

(A) package,import,class (B) class,import,package (C) import,package,class (D) package,class,import

14.下面哪个是非法的:

(A) int I = 32; (B) float f = 45.0;

(C) double d = 45.0; (D) char c = ‘u’; //符号错

15.Java语言使用的字符码集是

(A) ASCII (B) BCD

(C) DCB (D) Unicode

16. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是

(A) public (B) protected (C) private (D) static

17.下面关于main方法说明正确的是

(A) public main(String args[ ])

(B) public static void main(String args[ ]) (C) private static void main(String args[ ]) (D) void main()

18.哪个关键字可以对对象加互斥锁?( )

(A) transient (B) synchronized (C) serialize (D) static

19.关于抽象方法的说法正确的是( )

(A)可以有方法体 (B) 可以出现在非抽象类中 (C) 是没有方法体的方法 (D) 抽象类中的方法都是抽象方法

20.java.io包的File类是

(A)字符流类 (B) 字节流类

(C) 对象流类 (D) 非流类

21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?( )

A、 String args B、String args[] C、Char arg D、StringBuffer args[]

22.以下代码段执行后的输出结果为( ) int x=-3; int y=-10; System.out.println(y%x);

A、 -1 B、2 C、1 D、3

23.以下关于继承的叙述正确的是( )。

A、在Java中类只允许单一继承

B、在Java中一个类只能实现一个接口

C、在Java中一个类不能同时继承一个类和实现一个接口

D、在Java中接口只允许单一继承

24. 若有定义:byte[] x={11,22,33,-66};

其中0≤k≤3,则对x数组元素错误的引用是( )

A)x[5-3] B)x[k] C)x[k+5] D)x[0]

25.paint()方法使用哪种类型的参数? ( )

A、Graphics B、Graphics2D C、String D、Color

26.以下哪个不是Java的原始数据类型( )

A、int B、Boolean C、float D、char

27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( )

A) 隐藏

B) 重写

C) 重载

D) Java不支持此特性

28. 以下有关构造方法的说法,正确的是:( )

A. 一个类的构造方法可以有多个 B. 构造方法在类定义时被调用

C. 构造方法只能由对象中的其它方法调用。 D. 构造方法可以和类同名,也可以和类名不同

29.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( )。

A、init() B、start() C、destroy() D、stop()

30.给出下面代码,关于该程序以下哪个说法是正确的?( )

public class Person{

static int arr[] = new int[5];

public static void main(String a[]) {

System.out.println(arr[0]); } }

A、编译时将产生错误 B、编译时正确,运行时将产生错误

C、输出零 D、输出空

31、有以下方法的定义,请选择该方法的返回类型( )。 ReturnType method(byte x, double y) {

return (short)x/y*2; }

A、byte B、short C、int D、double

32.下列类定义中哪些是合法的抽象类的定义?( )

A、abstract Animal{abstract void growl();}

B、class abstract Animal{abstract void growl();}

C、abstract class Animal{abstract void growl();}

D、abstract class Animal{abstract void growl(){System.out.println(“growl”);};}

33.有以下程序片段,下列哪个选项不能插入到行1。( ) 1.

2.public class Interesting{ 3.//do sth 4. }

A、import java.awt.*; B、package mypackage;

C、class OtherClass{ } D、public class MyClass{ }

34. 设有下面两个赋值语句: a = Integer.parseInt(“12”);

b = Integer.valueOf(“12”).intValue(); 下述说法正确的是( )。

A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。

C、a和b都是整数类对象并且值相等。 D、a和b都是整数类型变量并且值相等。

35.在编写Java Applet程序时,需在程序的开头写上( )语句。

A、import java.awt.* ; B、import java.applet.Applet ;

C、import java.io.* ; D、import java.awt.Graphics ;

36.下列哪一项不属于Swing的顶层容器?( )

A)JApplet B)JTree C)JDialog D)JFrame

37. 为了使包ch4在当前程序中可见,可以使用的语句是( )。

A)import ch4.*; B)package ch4.*; C)ch4 import; D)ch4 package;

38. 请问所有的异常类皆继承哪一个类?( )。

A)java.io.Exception B)ng.Throwable C)ng.Exception D)ng.Error

39.进行Java基本的GUI设计需要用到的包是( )。

A)java.io B)java.sql C)java.awt D)java.rmi

一、单项选择题(本大题共10小题,每小题2分,共20分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1.下列关于类的说法中,错误的是( )

A)类是一种用户自定义的数据类型 B)如果不作特别声明,类所有成员均为私有类型

C)任何一个对象只能属于一个具体的类 D)只有类中的成员函数才能存取类中的私有数据

2.下列情况中,不会调用拷贝构造函数的是( )

A)用一个对象去初始化同一类的另一个新对象时

B)将类的一个对象赋予该类的另一个对象时

C)函数的形参是类的对象,调用函数进行形参和实参结合时

D)函数的返回值是类的对象,函数执行返回调用时

3.在C++中,用于实现运行时多态性的是( )

A)内联函数 B)重载函数 C)模板函数 D)虚函数

4. 如果类A被说明为类B的友元,则( )

A)类A的成员即类B的成员 B) 类A的成员函数可以访问类B的成员 C类B的成员函数可以访问类A的成员 D)类B是类A的友元

5.友元函数重载一个运算符时,如果参数表中没有任何参数,则说明该运算符是( )

A)一元运算符 B)二元运算符 C)重载错误 D)选项A)和选项B)都有可能

6.假定X为一个类,执行X a[3],*p[2];语句会自动调用该类的构造函数( )次

A)2 B)3 C)4 D)5

7.下列有关继承和派生的叙述中,正确的是( )

A)如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员

B)派生类的成员函数可以访问基类的所有成员

C)基类对象可以赋值给派生类对象

D)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类

8.关于对多继承的二义性的描述中,错误的'是( )

A)一个派生类和基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性

B)解决二义性的最常用的方法是对成员名的限定法

C)基类和派生类同时出现同名函数,也存在二义性问题

D)一个派生类是从两个基类派生而来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,可能出现二义性

9.下列关于纯虚函数和抽象类的描述中,错误的是( )

A)纯虚函数时一种特殊的虚函数,它没有具体实现

B)抽象类是指具有纯虚函数的类

C)一个基类中说明有虚函数,该基类的派生类一定不再是抽象类

D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

10.下列关于模板的叙述中,错误的是( ) A)模板声明中的第一个符号总是关键字template

B)在模板声明中用 < > 括起来的部分是模板的形参表 C)类模板不能有数据成员

D)在一定条件下函数模板的实参可以省略

二、填空题(本大题共6空,每空2分,共12分)

1._________是一种特殊的成员函数,它主要用来为对象分配空间,对类的成员进行初始化并执行对象的其它内部管理操作。

2.定义在类内部的函数为类默认状态的_________,在类外部每次调用该函数时,相应的函数代码都会在调用函数位置展开。

3.要想把类的一般成员函数说明为类的常成员函数,则应该使用关键字_________。 4.当一个类的成员函数被调用时,该成员函数的_________指向调用它的对象。 5.C++中模板可分为_________和_________。

三、阅读程序,写出执行结果(本题有5个小题,每小题6分,共30分)

1. #includeclass sample{

int n;

public:

sample(int i){n=i; } void add( ){s+=n;} static int s; void dis( ){ cout<

int sample ::s=0

void main() { sample a(2),b(5),c(8); a. add( ); b. add( ); c. dis( ); }

#includeclass base {

int n; public:

base(int a) {

cout<<”constructing base class with a number=”<

~base()

{cout<<”destructing base class”<< endl; }

class derive:public base { int m; public: derive(int a,int b):base(a) { cout <<”constructing derive class with a number=”<

class”<

void main()

class string{ char *name; int length; public: ……

virtual void show() { cout<

class de_string:public string { int age; public: …… void show() { string::show();

#includeusing namespace std; class Base {public: Base(int x,int y) { a=x;

b=y; }

void show()

{ cout<<"Base:"<

private: int a,b;

class Derived:public Base {

{ derive s(1,2);

cout<<"The age is:"<

{ string s1("Mike "), *ptr1; de_string s2("Steven ",20), *ptr2; ptr1=&s1; ptr1->show(); ptr1=&s2; ptr1->show(); ptr2=&s2; ptr2->show(); return 1 ; }

public:

Derived(int x,int y,int z):Base(x,y),c(z) { } void show() { cout<<"Derived:"<

private: int c;

}; int main() { Base b(20,10),*pb; Derived d(30,40,50); pb=&b;

pb->show(); 3

pb=&d; pb->show(); } return 0;

#include

using namespace std;

class Base1

{public:

class Base2

{public:

class Level1:public Base2,virtual public Base1

{public:

Level1() {cout<<"class Level1"<

class Level2:public Base2,virtual public Base1

{public:

class Toplevel:public Level1,public Level2

{public:

Toplevel() {cout<<"class TopLevel"<

void main()

Toplevel obj;

四、完成程序题(本大题有3个小题,每题6分,共18分)

1.对于下面定义的类Myclass,请在函数f( )中添加对象成员把n的值修改为50。 4

class Myclass

private:

int n;

public:

Myclass (___①_____) {n=x;}

void SetNum( int nl ) {n=nl;}

int f( )

Myclass *ptr=new Myclass(45);

_____②_____;

2.在下面横线处填上适当语句,完成类中静态数据成员的定义。

class test

private:

static int x;

public:

_____①______;//将x的值初始化为10

_____②_______{return x;} //定义静态成员函数

3. 下列是二维向量vector2D的定义,其中作为成员函数重载的运算符"+"的功能是将两向量

的分量x和y对应相加,然后返回作为相加结果的新对象。请补充完整:

Class vector2D {

double x;

double y;

public:

vector2D( double x0=0,double y0=0):x(x0),y(y0){ }

void show( ){cout<<’(’<

vector2D operator+(vector2D);

Vector2D _①___operator+(vector 2D a){

return vector2D(_②___); static int getX( );

计算机二级考试《java》试题及答案

一、判断题

1. Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。 (√ )

2. 在Java中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。( × )

3. 所谓抽象类就是包含有抽象方法的类。( ×)

4. Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出System.out和标准错误输出System.err。(√)

5. 如果p是父类Parent的对象,而c是子类Child的对象,则语句c = p是正确的。( ×)

6. 当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。(√ )

7. 用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。( × )

8. 一个容器中可以混合使用多种布局策略。(×)

9. Java中,并非每个事件类都只对应一个事件。(√ )

10. Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。(√)

11. Java Applet是由独立的解释器程序来运行的。(×)

12. Java的字符类型采用的是ASCII编码。( × )

13. Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。 (√)

14. System类不能实例化,即不能创建System类的对象。(×)

15. 用户自定义的图形界面元素也可以响应用户的动作,具有交互功能。 (√ )

二、填空题

1java源程序编译命令是 (javac)

2 java 应用程序中有一个main()方法,它前面有三个修饰符是 ( public , static , void )

3 java语言数据类型可分为两大类,一类称为 ( 基本数据类型 ) ,另一类称为 ( 引用数据类型 )

4 在转向语句中, ( continue ) 语句使得程序结束本次循环,回到循环的条件测试部分继续执行。

5设x为float型变量, y为 double型变量, a为 int型变量,已知 x=2.5f, a=7 ,y=4.22 则表达式x+a%3*(int)x%(int)y的值为 ( 4.5 )

6设x为float型变量, y为 double型变量, a为 int型变量,b 为long 型变量,c为char 型,则表达式x+y*a/x+b/y+c 的值为( double ) 类型 7设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 ( 120 )

for ( int i = 0 i < MyIntArray.length i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] System.out.println( s )

for ( int i = 0 i < MyIntArray.length i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] System.out.println( s )

三、选择题

1.在浏览器中执行applet 程序,以下选项中的哪个方法将被最后执行( C )。

A、init(  )

B、start(  )

C、destroy(  )

D、stop(  )

2. Java application中的主类需包含main方法,main方法的返回类型是什么?( D )

A、int

B、float

C、double

D、void

3.设有下面两个类的定义:

class Person {

class Student extends Person {

long id; // 身份证号

int score; // 入学总分 String name; // 姓名

int getScore(  ){

return score; }

则类Person和类Student的关系是( B )。

A、包含关系

B、继承关系

C、关联关系

D、上述类定义有语法错误

4.在编写Java Applet程序时,需要在程序的开头写上( B )语句。

A、import java.awt.*

B、import java.applet.*

C、import java.io.*

D、import java.awt.event.*

5.容器Panel和Applet缺省使用的布局编辑策略是( A )

A、FlowLayout

B、BorderLayout

C、GridLayout

D、CardLayout

6.有以下程序片段,下列哪个选项不能插入到行1。( A ) 1. 2.public class A{ 3.//do sth 4. }

A、public class MainClass{ }

B、package mine;

C、class ANotherClass{ }

D、import java.util.*;

7.在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。

A、private

B、protected

C、private protected

D、public

8.以下哪个不是Java的关键字?( A )

A、FALSE

B、const

C、this

D、void

9.有程序如下,关于程序的描述哪个是正确的?( C )

public class Person{

static int arr[] = new int[5];

public static void main(String a[])

{ System.out.println(arr[0]); } }

A、编译将产生错误

B、编译时正确,但运行时将产生错误

C、正确,输出0

D、正确,输出 null

10.以下关于构造函数的描述错误的是( A )。

A、构造函数的返回类型只能是void型。

B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。

C、构造函数的主要作用是完成对类的对象的初始化工作。

D、一般在创建新对象时,系统会自动调用构造函数。

11.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C)

class A { int i;

static String s; void method1(  ) { }

static void method2(  ) { } }

A、System.out.println(a.i);

B、a.method1(  );

C、A.method1(  );

D、A.method2(  )

12.有程序片段如下,以下哪个表示式的结果为true?( B )

Float s=new Float(0.1f);

Float t=new Float(0.1f);

Double u=new Double(0.1);

A、s==t

B、s.equals(t)

C、u.equals(s)

D、t.equals(u)

13.paint(  )方法使用哪种类型的参数? ( A )

A、Graphics

B、Graphics2D

C、String

D、Color

14.下面哪个方法与applet的显示无关?( A )

A、draw(  )

B、 update(  )

C、repaint(  )

D、paint(  )

15.下面哪个函数是public void aMethod(  ){...}的重载函数?( D )

A、void aMethod( ){...}

B、public int aMethod(  ){...}

C、public void aMethod ( ){...}

D、public int aMethod ( int m){...}

16 下列不可作为java语言标识符的是( D )

A a1

B $1

C _1

D 11

17 有一段java 应用程序 ,它的主类名是a1,那么保存它的源文件名可以是(A)

A a1.java

B a1.class

C a1

D都对

18 下面说法正确的.是(C)

A java Applet 程序必须在浏览器中执行

B java 应用程序必须在浏览器里执行

C java Applet 程序不一定在浏览器中执行

D java 应用程序可以在浏览器中执行

19 在浏览器中执行applet 程序的四个方法的最先执行的是(A)

A init(  )

B start(  )

C destroy(  )

D stop(  )

20 整型数据类型中,需要内存空间最少的是(D)

A short

B long

C int

D byte

21 java 类可以作为(C)

A 类型定义机制

B 数据封装机制

C 类型定义机制和数据封装机制

D 上述都不对

22 在创建对象时,必须(C )

A 先声明对象,然后才能使用对象

B 先声明对象,为对象分配内存空间,然后才能使用对象

C 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象

D 上述说法都对

23 在调用方法时,若要使方法改变实参的值,可以(D)

A 用基本数据类型作为参数

B 用对象作为参数

C (A)和(B)都对

D (A)和(B)都不对

24 JAVA 中( C )

A 一个子类可以有多个父类,一个父类也可以有多个子类

B 一个子类可以有多个父类,但一个父类只可以有一个子类

C 一个子类可以有一个父类,但一个父类可以有多个子类

D 上述说法都不对

25 paint()方法使用哪种类型的参数? ( A )

A、Graphics

B、Graphics2D

C、String

D、Color

26在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种特性称为 ( C )

A、隐藏

B、覆盖

C、重载

D、Java不支持此特性

27类Test1、Test2定义如下:

1. public class Test1

2.{ public float aMethod(float a,float b) throws

3. IOException { }

4. }

5. public class Test2 extends Test1{ 6. 7.}

将以下哪种方法插入行4是不合法的。 ( A )

A、 float aMethod(float a,float b){ }

B、 public int aMethod(int a,int b)throws Exception{ }

C、 public float aMethod(float p,float q){ }

D、 public int aMethod(int a,int b)throws IOException{ }

28以下哪个接口的定义是正确的? (D )

A、 interface B

{ void print() { } }

B、 abstract interface B

{ void print() }

C、 abstract interface B extends A1,A2 //A1、A2为已定义的接口

{ abstract void print(){ };}

D、 interface B { void print();}

29 下列哪些语句关于Java内存回收的说明是正确的? ( B )

A、程序员必须创建一个线程来释放内存

B、内存回收程序负责释放无用内存

C、内存回收程序允许程序员直接释放内存

D、内存回收程序可以在指定的时间释放内存对象

30 A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:

1. A a0=new A();

2. A a1 =new B();

3. A a2=new C();

问以下哪个说法是正确的? ( D)

A、只有第1行能通过编译

B、第1、2行能通过编译,但第3行编译出错

C、第1、2、3行能通过编译,但第2、3行运行时出错

D、第1行、第2行和第3行的声明都是正确的

四、程序阅读

1.写出以下程序的运行结果。

class First {

First(  ) {

System.out.println ("in First"); } }

public class Second extends First { Second(  ) {

System.out.println("in Second"); } public static void main(String[] args) { Second mine= new Second(  ); } }

程序运行的结果:

in First in Second

2.解释程序中语句的含义

纯文本文件f1.txt中的内容是 abcd

下面的程序将f1.txt文件中的内容写到f2.txt文件中和屏幕上 import java.io.*;

public class filecopy {

public static void main(String[] args) { try {

StringBuffer str=new StringBuffer(  );

FileInputStream fin=new FileInputStream("f1.txt");

FileOutputStream fout=new FileOutputStream("f2.txt");

int c;

while((c=fin.read(  ))!=-1) {

fout.write(c); 意义

str.append((char)c); 意义

fin.close(  ); fout.close(  );

String str2=str.toString(  );

System.out.println(str2); 显示的结果是

}catch(Exception c) {

System.out.println(c); } } }

实例化输入流对象,指定输入流来源文件为f1.txt 实例化输出流对象,指定输出流目标文件为f2.txt 将C写入到输出流对象中

将整数C转化为字符,并添加到字符串str的尾部 abcd