4?0:1D.2&&2||04、下列关于数组维数的描述中,错误的是(C)。A.定义数组时必须将每" />
文档库 最新最全的文档下载
当前位置:文档库 › c#面向对象试题及答案

c#面向对象试题及答案

c#面向对象试题及答案
c#面向对象试题及答案

一、选择题:

1、下列关于类的描述中,错误的是( A )。

A.类就是C语言中的结构类型

B.类是创建对象的模板

C.类是抽象数据类型的实现

D.类是具有共同行为的若干对象的统一描述体

2、下列常量中,不是字符常量的是( B )。

A.'\n' B."y"

C.'x' D.'\7'

3、下列表达式中,其值为0的是( A )。

A.5/10 B.!0

C.2>4?0:1 D.2&&2||0

4、下列关于数组维数的描述中,错误的是( C )。

A.定义数组时必须将每维的大小都明确指出

B.二维数组是指该数组的维数为2

C.数组的维数可以使用常量表达式

D.数组元素个数等于该数组的各维大小的乘积

5、下列关于字符数组的描述中,错误的是( D )。

A.字符数组中的每一个元素都是字符

B.字符数组可以使用初始值表进行初始化

C.字符数组可以存放字符串

D.字符数组就是字符串

6、已知:int a[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。

A.a[0] B.a[1]

C.a[2] D.a[3]

7、下列while循环语句的循环次数是( A )。

while(int i(0)) i--;

A.0 B.1

C.2 D.无限

8、已知:int a[ ]={1,2,3,4,5},*p=a;在下列数组元素地址的表示中,正确的是( C )。

A.&(a+1) B.&(p+1)

C.&p[2] D.*p++

9、已知:int a=1,b=2,*p[2];下列表达式中正确的是( C )。

A.p=&a B.p=&b

C.p[0]=&a,p[1]=&b D.p[ ]={&a,&b};

10、当一个函数没有返回值时,该函数类型应说明为( A )。

A.void B.int

C.无D.任意

11、下列关于类的定义格式的描述中,错误的是( C )。

A.类中成员有3种访问权限

B.类的定义可分说明部分和实现部分

C.类中成员函数都是公有的,数据成员都是私有的

D.定义类的关键字通常用class,也可用struct

12、下列关于成员函数的描述中,错误的是( A )。

A.成员函数的定义必须在类体外

B.成员函数可以是公有的,也可以是私有的

C.成员函数在类体外定义时,前加inline可为内联函数

D.成员函数可以设置参数的默认值

D.一个类所能创建对象的个数是有限制的

13、下列关于构造函数的描述中,错误的是( C )。

A.构造函数可以重载

B.构造函数名同类名

C.带参数的构造函数具有类型转换作用

D.构造函数是系统自动调用的

14、下列关于静态成员的描述中,错误的是( C )。

A.静态成员都是使用static来说明的

B.静态成员是属于类的,不是属于某个对象的

C.静态成员只可以用类名加作用域运算符来引用,不可用对象引用

D.静态数据成员的初始化是在类体外进行的

15、Void Set(A&a);是类A中一个成员函数的说明,其中A&a的含义是( A )。

A.类A的对象引用a作该函数的参数

B.类A的对象a的地址值作函数的参数

C.表达式变量A与变量a按位与作函数参数

16、下列关于运算符delete的描述中,错误的是( B )。

A.使用该运算符可以释放用new运算符创建的对象或对象数组

B.使用该运算符可以释放所有对象

C.使用delete运算符时会自动调用析构函数

D.用它释放对象数组时,它作用的指针名前要加下标运算符[ ]

17.下列关于基类和派生类的描述中,错误的是( C )。

A.一个基类可以生成多个派生类

B.基类中所有成员都是它的派生类的成员

C.基类中成员访问权限继承到派生类中不变

D.派生类中除了继承的基类成员还有自己的成员

18、派生类的对象可以直接访问的基类成员是( A )。

A.公有继承的公有成员B.保护继承的公有成员

C.私有继承的公有成员D.公有继承的保护成员

19、含有一个或多个纯虚函数的类称为( A )。

A.抽象类 B.具体类

C.虚基类 D.派生类

20、下列关于动态联编的描述中,错误的是( C )。

A.动态联编是函数联编的一种方式,它是在运行时来选择联编函数的

B.动态联编又可称为动态多态性,它是C++语言中多态性的一种重要形式

C.函数重载和运算符重载都属于动态联编

D.动态联编只是用来选择虚函数的

1、下列关于对象的描述中,错误的是( C )。

A.对象是类的一个实例

B.对象是属性和行为的封装体

C.对象就是C语言中的结构变量

D.对象是现实世界中客观存在的某种实体

2、在函数体内定义了下述变量a,a的存储类为( D )。

int a;

A.寄存器类B.外部类

C.静态类D.自动类

3、下列关于数组概念的描述中,错误的是( B )。

A.数组中所有元素类型是相同的

B.数组定义后,它的元素个数是可以改变的

C.数组在定义时可以被初始化,也可以不被初始化

D.数组元素的个数与定义时的每维大小有关

4、下列关于数组下标的描述中,错误的是( B )。

A.C++语言中数组元素的下标是从0开始的

B.数组元素下标是一个整常型表达式

C.数组元素可以用下标来表示

D.数组元素的某维下标值应小于该维的大小值

5、下列关于字符串的描述中,错误的是( C )。

A.一维字符数组可以存放一个字符串

B.二维字符数组可以存放多个字符串

C.可以使用一个字符串给二维字符数组赋值

D.可以用一个字符串给二维字符数组初始化

6、已知:int b[5] = {1, 2, 3, 4}; 下列数组元素值为2的数组元素是( B )。

A.b[0] B.b[1]

C.b[2] D.b[3]

7、已知:int i(3);下列do-while循环语句的循环次数是( D )。

do{

cout<

i--;

}while(i!=0);

A.0 B.3

C.1 D.无限

8、已知:int b[ ]={1,2,3,4,5},*p=b;在下列数组元素地址的表示中,正确的是( C )。

A.&(a+1) B.&(p+1)

C.&p[2] D.*p++

9、已知:int a(5),&ra=a;下列描述中,错误的是( D )。

A.ra是变量a的引用,即为变量的别名B.ra的值为5

C.ra的地址值为&a D.改变ra的值为10,变量a值仍为5 10、下列关于被调用函数中return语句的描述中,错误的是( D )。

A.一个函数中可以有多条return语句

B.return语句具有返回程序控制权的作用

C.函数通过return语句返回值时仅有一个

D.一个函数中有且仅有一条return语句

11、下列关键字中,不属于定义类时使用的关键字是( D )。

A.class B.struct

C.public D.default

12、下列关于对象的描述中,错误的是( D )。

A.定义对象时系统会自动进行初始化

B.对象成员的表示与C语言中结构变量的成员表示相同

C.属于同一个类的对象占有内存字节数相同

D.一个类所能创建对象的个数是有限制的

13、下列关于析构函数的描述中,错误的是( A )。

A.析构函数的函数体都为空

B.析构函数是用来释放对象的

C.析构函数是系统自动调用的

D.析构函数是不能重载的

14、下列关于友元函数的描述中,错误的是( B )。

A.友元函数不是成员函数

B.友元函数只可访问类的私有成员

C.友元函数的调用方法同一般函数

D.友元函数可以是另一类中的成员函数

15.下列关于运算符new的描述中,错误的是( D )。

A.它可以创建对象或变量

B.它可以创建对象数组或一般类型数组

C.用它创建对象或对象数组时要调用相应的构造函数

D.用它创建的对象可以不用delete运算符释放

16、下列关于this的描述中,错误的是( D )。

A.this是一个由系统自动生成的指针

B.this指针是指向对象的

C.this指针在用对象引用成员函数时系统创建的

D.this指针只能隐含使用,不能显式使用

17、下列关于派生类的描述中,错误的是( D )。

A.派生类至少有一个基类

B.一个派生类可以作另一个派生类的基类

C.派生类的构造函数中应包含直接基类的构造函数

D.派生类默认的继承方式是public

18、下列描述中,错误的是( D )。

A.基类的protected成员在public派生类中仍然是protected成员

B.基类的private成员在public派生类中是不可访问的

C.基类public成员在private派生类中是private成员

D.基类public成员在protected派生类中仍是public成员

19、下列关于虚函数的描述中,错误的是( C )。

A.虚函数是一个成员函数

B.虚函数具有继承性

C.静态成员函数可以说明为虚函数

D.在类的继承的层次结构中,虚函数是说明相同的函数

20、已知文本文件abc.txt,以读方式打开,下列的操作中错误的是( D )。

A.fstream infile ("abc.txt", ios::in); B.ifstream infile ("abc.txt");

C.ofstream infile ("abc.txt"); D fstream infile;

infile.open("abc.txt", ios::in);

二、填空题:

1、如果一个类中没有定义任何构造函数时,系统会自动提供一个默认构造函数;同样,类中没有定义析构函数时,系统会自动提供一个默认析构函数。

2、静态成员是属于类的,它除了可以通过对象名来引用外,还可以使用

类名限定来引用。

3、友元函数是被说明在类体内的非成员函数。友元函数可访问该类中的___私有_____成员。

4、类体内成员有3个访问权限,说明它们的关键字分别是公有、私有和保护。

6、定义类A中有两个公有成员函数,其中一个是构造函数,另一个是静态成员函数f1(),还有两个私有的数据成员,一个是静态的整型数据成员a,另一个是整型的数据成员b。为满足上述要求,请填写下列程序的空白处。

……

___class_______A

{

___static______ int a;

___int____ b;

public:

___A______ (int i )

{

b=i;

}

____static______ void f1( );

};

……

7、P类公有继承Q类,P和Q类中都仅有一个私有的数据成员,P类中两个成员函数,一个是构造函数,另一个友元函数fun( )。下列一段程序实现上述要求,请将空白处填上适当的内容。

……

Class P :_ public______ __ Q_______

{

Public:

P ( int i ,int j ) :___Q( j )_____

{

p=i;

}

__ friend____ void fun( ) ;

Private:

__ int p______;

};

……

三、判断题

√1、构造函数可以重载。

√2、类的数据成员不一定都是私有的。

√3、对象数组的元素应该是同类的对象。

×4、在私有继承中,基类中只有公有成员对派生类是可见的。

√5、抽象类是不能创建对象的。

√6、定义一个对象时,系统总会对该对象进行初始化的。

×7、静态对象的成员称为静态成员。

√8、this指针是指向对象的指针,是系统自动生成的。

√9、运算符new可以创建对象,也可创建对象数组。

√10、C++语言对标准文件的读写函数与对磁盘文件的读写函数是一致的。

×11、在私有继承中,基类中只有公有成员对派生类是可见的。

√12、引用可以作函数参数,不能作函数的返回值。

√13、抽象类是不能创建对象的。

√14、C++语言既支持单继承,又支持多继承。

×15、没有参数的构造函数称为默认构造函数,该构造函数一定是系统自动生成的。√16、在用一个对象给同类的另一个对象赋值时,调用拷贝初始化构造函数。

√17、友元类中的所有成员函数都是友元函数。

√18、运算符new可以创建对象,也可创建对象数组。

×19、定义派生类时必须指出基类名和继承方式,二者都不可默认。

√200、C++语言对标准文件的读写函数与对磁盘文件的读写函数是一致的。

四、分析下列程序的输出结果

1、#include

using namespace std;

class M

{

int a;

public:

M() { a=0; }

M(int i) { a=i; cout<<"in M\n";}

int geta() { return a;}

};

void main()

{

M r1,r2(18);

cout<

cout<

}

答案:in M

18

2、#include

using namespace std;

class B

{

public:

B()

{ cout<<++b<

~B()

{ cout<

static int Getb()

{ return b; }

private:

static int b;

};

int B::b=10;

void main()

{

B b1,b2,b3;

cout<

}

答案:11

12

13

13

13

12

11

3、#include

using namespace std;

class C

{

public:

C(int i,int j)

{ c1=i;c2=j; }

void Sum(C a,C b)

{

c1=a.c1+b.c1;

c2=a.c2+b.c2;

}

void Print()

{ cout<<"c1="<

int c1,c2;

};

void main()

{

C a(60,90);

C b(a);

C c(b);

c.Sum(a,b);

c.Print();

}

答案:c1=120,c2=180

4、#include

using namespace std;

class A

{

public:

A()

{

a1=a2=0;

cout<<"Default constructor called.\n";

}

A(int i,int j);

~A()

{ cout<<"Destructor called.\n"; }

void Print()

{ cout<<"a1="<

int a1,a2;

};

A::A(int i,int j)

{

a1=i;

a2=j;

cout<<"Constructor called.\n";

}

void main()

{

A a,b(5,8);

a.Print();

b.Print();

}

答案:

Default constructor called.

Constructor called.

a1=0,a2=0

a1=5,a2=8

Destructor called.

Destructor called.

5、#include

using namespace std;

class A

{

public:

A()

{ a1=a2=0; }

A(int i,int j)

{ a1=i; a2=j; }

~A()

{ cout<<"A\n"; }

A(A &a)

{

a1=a.a1+2;a2=a.a2+2;

cout<<"C\n";

}

void print()

{ cout<

int a1,a2;

};

void fun(A &a)

{

A b;

b=a;

b.print();

}

void main()

{ A x(4,8),y;

A p(x);

y=x;

fun(p);

y.print();

}

答案:C

16

A

12

A

A

A

6、#include

using namespace std;

class A

{

public:

void InitA(int i,int j)

{ a1=i; a2=j; }

void Move(int x,int y)

{ a1+=x; a2+=y; }

int Geta1()

{ return a1; }

int Geta2()

{ return a2; }

private:

int a1,a2;

};

class B:public A

{

public:

void InitB(int i,int j,int k,int l)

{

InitA(i,j);

b1=k;

b2=l;

}

void Move(int x,int y)

{ b1+=x;b2+=y; }

int Getb1()

{ return b1; }

int Getb2()

{ return b2; }

private:

int b1,b2;

};

class C:public B

{

public:

void fun()

{ Move(10,15); }

};

void main()

{

C c;

c.InitB(11,12,13,14);

c.fun();

cout<

答案:

11,12,23,29

1.#include

void main()

{

int a=40;

while(--a)

{

if(a==20)

break;

if(a%2==0||a%3==0||a%5)

continue;

cout<

}

}

答案:34

24

2、#include

using namespace std;

class Date

{

public:

Date(int y,int m,int d)

{

year=y;

month=m;

day=d;

}

friend void Print(Date &);

private:

int year,month,day;

};

void Print(Date &d)

{

cout<

}

void main()

{

Date d1(2005,10,1),d2(2005,12,9);

Print(d1);

Print(d2);

}

答案:2005/10/1

2005/12/9

3、#include

using namespace std;

class A

{

public:

A()

{ a=0; }

A(int i)

{ a=i; }

int Geta( A &m);

private:

int a;

};

int A::Geta( A &m)

{ return m.a; }

void main()

{

A d(6);

cout<

}

答案: 6

4、#include

class D

{

public:

D()

{

d1=d2=0;

cout<<"Default constructor callrd.\n";

}

D(int i,int j)

{

d1=i; d2=j;

cout<<"Constructor called."<<"d1="<

}

~D()

{ cout<<"Destructor called."<<"d1="<

{ d1=i;d2=j; }

private:

int d1,d2;

};

void main()

{

int n=10,m=20;

D d[4]={D(5,7),D(3,6),D(7,9),D(1,4)};

for(int i=0;i<4;i++)

d[i].Set(n++,m++);

}

答案:Constructor called.d1=5,d2=7

Constructor called.d1=3,d2=6

Constructor called.d1=7,d2=9

Constructor called.d1=1,d2=4

Destructor called.d1=13,d2=23

Destructor called.d1=12,d2=22

Destructor called.d1=11,d2=21

Destructor called.d1=10,d2=20

5、#include

using namespace std;

class PQ

{

public:

PQ(int i=0)

{ p=i; }

void print()

{ cout<

~PQ()

{ cout<<"PQ"<

private:

int p;

};

PQ a(8);

void main()

{

PQ *p1,*p2;

p1=new PQ(7);

p2=new PQ[2];

p2[0]=a;

p2[1]=*p1;

(*p1).print();

p2[0].print();

p2[1].print();

delete p1;

delete [] p2;

}

答案:7

8

7

PQ7

PQ7

PQ8

PQ8

6、#include

using namespace std;

class A

{

public:

void InitA(int i,int j)

{ a1=i;a2=j; }

void Move(int x,int y)

{ a1+=x;a2+=y; }

int Geta1()

{ return a1; }

int Geta2()

{ return a2; }

private:

int a1,a2;

};

class B:public A

{

public:

void InitB(int i,int j,int k,int l) {

InitA(i,j);

b1=k;

b2=l;

}

void Move(int x,int y)

{ b1+=x;b2+=y; }

int Getb1()

{ return b1; }

int Getb2()

{ return b2; }

private:

int b1,b2;

};

class C:public B

{

public:

void fun()

{ Move(10,15); }

};

void main()

{

C c;

c.InitB(11,12,13,14);

c.fun();

cout<

}

答案:11, 12, 23, 24

五、编程题:(总10分,每小题10分)

按下列要求编程:

(1)定义一个描述矩形的类Rectangle,包括的数据成员有宽(width)和长(length);(本小题4分)

(2)计算矩形周长;(本小题2分)

(3)计算矩形面积;(本小题2分)

(4)改变矩形大小。(本小题2分)

通过实例验证其正确性。

答:编程如下:

#include

class Rectangle

{

public:

Rectangle(int a,int b)

{ width=a; length=b; }

int Area()

{ return width*length; }

int Circle()

{ return 2*(width+length); }

void Changesize(int a,int b)

{ width=a; length=b; }

void Print();

private:

int width,length;

};

void Rectangle::Print()

{

cout<<"AREA="<

cout<<"PERIMENT="<

}

void main()

{

Rectangle r(5,8);

r.Print();

r.Changesize(3,9);

r.Print();

}

编一个关于求多个某门功课总分和平均分的程序。具体要求如下:

(1)每个学生信息包括姓名和某门功课成绩。(本小题5分)

(2)假设5个学生。(本小题2分)

(3)使用静态成员计算5个学生的总成绩和平均分。(本小题3分)

答:编程如下:

#include

using namespace std;

class Student

{

public:

Student(char *s,int gr)

{ name=s; grade=gr; total+=gr; }

static void Print();

private:

char *name;

int grade;

static int total;

};

int Student::total=0;

void Student::Print()

{

cout<<"总成绩为 "<

}

void main()

{

Student

s1("ma",85),s2("Wang",96),s3("Li",82),s4("lu",78),s5("zhang",80);

Student::Print(); }

面向对象方法题库1-1-9

面向对象方法题库1- 1-9

问题: [单选]用例(usecase)用来描述系统对事件做出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系筑”中,创建新订单和更新订单都需要核查用户账号是否正确。用例“创建新订单”、“更新订单”与用例“核查客户账号”之间是()关系。 A.包含(includE. B.扩展(extenD. C.分类(classification) D.聚集(aggregation) 用例是在系统中执行的一系列动作,这些动作将生成特定参与者可见的价值结果。它确定了一个和系统参与者进行交互,并可由系统执行的动作序列。用例模型描述的是外部执行者(actor)所理解的系统功能。用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。 两个用例之间的关系主要有两种情况:一种是用于重用的包含关系,用构造型include表示;另一种是用于分离出不同行为的扩展,用构造型extend表示。 ①包含关系:当可以从两个或两个以上的原始用例中提取公共行为,或者发现能够使用一个构件来实现某一个用例的部分功能是很重要的事时,应该使用包含关系来表示它们。 ②扩展关系:如果一个用例明显地混合了两种或两种以上的不同场景,即根据情况可能发生多种事

情,可以断定将这个用例分为一个主用例和一个或多个辅用例描述可能更加清晰。

问题: [单选]对于违反里氏替换原则的两个类A和B,可以采用的候选解决方案是() A.尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程 B.创建一个新的抽象类C,作为两个具体类的超类,将A和B共同的行为移动到C中,从而解决A和B 行为不完全一致的问题 C.将B到A的继承关系改成组合关系 D.区分是Is-a还是Has-a。如果是Is-a,可以使用继承关系,如果是Has-a,应该改成组合或聚合关系 里氏替换原则是面向对象设计原则之一,由BarbaraLiskov提出,其基本思想是,一个软件实体如果使用的是一个基类对象,那么一定适用于其子类对象,而且觉察不出基类对象和子类对象的区别,即把基类都替换成它的子类,程序的行为没有变化。反过来则不一定成立,如果一个软件实体使用的是一个子类对象,那么它不一定适用于基类对象。 在运用里氏替换原则时,尽量将一些需要扩展的类或者存在变化的类设计为抽象类或者接口,并将其作为基类,在程序中尽量使用基类对象进行编程。由于子类继承基类并实现其中的方法,程序运行时,子类对象可以替换基类对象,如果需要对类的行为进行修改,可以扩展基类,增加新的子类,而无须修改调用该基类对象的代码。

面向对象试题(标准答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

面向对象面试题

面向对象面试题 1、什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数; 现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。 2、简述private、protected、public、internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。 3、https://www.wendangku.net/doc/da18137304.html,中的五个主要对象 Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在https://www.wendangku.net/doc/da18137304.html, 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。 DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Comm and 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command 对象上,并提供了许多配合DataSet 使用的功能。 DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是https://www.wendangku.net/doc/da18137304.html, 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 https://www.wendangku.net/doc/da18137304.html, 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来

面向对象编程练习题库test

面向对象编程练习题库 t e s t Document serial number【KKGB-LBS98YT-BS8CB-BSUT-BST108】

面向对象编程练习题 专题1 初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。 2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath 为()。 3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展 名为()。 4.如果Java源文件中有多个类,那么只能有一个类是()类。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是() A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是() A.java B.java AppFirst C.java D.javac AppFirst 3.设有一个Java小程序,源程序名为,其HTML文件为,则运行该小程序的命令为 () A.java FirstApplet B.javac C.appletviewer D.appletviewer 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。A.bin B.jre C.include D.doc 5.Java语言是一种语言。 A.机器B.汇编C.面向过程的D.面向对 象的 6、Java程序的最基本组成单位是( )。

面向对象考试题

第五章考试题 一、选择题:(每题3分,共20题) 1.下面关于类的说法错误的一项是()。 A、类属于Java语言中的复合数据类型 B、对象是Java语言 中的基本结构单位 C、类是同种对象的集合和抽象 D、类就是对象 2.如下所示代码: public class Test05_01{ private float a; public static void m ( ){ } } 如何使成员变量a被方法m( )访问()。 A、将private float a改为public float a B、将private float a改为static float a C、将private float a改为protected float a D、将private float a改为float a 3.下面关于类的说法有误的一项是()。 A、类就是对象 B、类是同种对象的集合和 抽象 C、类属于Java语言中的复合数据类型 D、对象是Java语言 中的基本结构单位

4.下列哪种类成员修饰符修饰的变量只能在本类中被访问()。 A、protected B、default C、private D、public 5.下面关于方法的说法不正确的一项是()。 A、类的私有方法不能被其他类直接访问。 B、Java中的构造方法名必须和类名相同。 C、方法体是对方法的实现,包括变量声明和合法语句。 D、如果一个类定义了构造方法,也可以用该类的默认构造方法。 6.下列程序的运行结果是()。 public class Test05_02 extends x{ int ab(){ static int a = 10; a++; System.out.println(a); } public static void main(String[] args) { Test05_02 b = new Test05_02 (); b.ab(); } } A、10 B、编译错误 C、11 D、运行成功,但不输出

面向对象程序设计考试题库

面向对象程序设计期末综合练习一(单选题) 单选题 1. C++源程序文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 2. 由C++源程序文件编译而成的目标文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 3. 由C++目标文件连接而成的可执行文件的缺省扩展名为( )。 A. cpp B. exe C. obj D. lik 4. 编写C++程序一般需经过的几个步骤依次是( )。 A. 编译、编辑、连接、调试 B. 编辑、编译、连接、调试 C. 编译、调试、编辑、连接 D. 编辑、调试、编辑、连接 5. 以下标识符中不全是保留字的是( )。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C++程序的基本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为( )。 A. main B. MAIN C. Main D. 任意标识符 8. C++程序的基本模块为( )。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C++语言用户标识符的一组标识符是( )。 A. void define +WORD B. a3_b3 _123 YN C. for -abc Case D. 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是( )。 A. 0 B. …0? C. “0” D. 0.0 11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a 、b 、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式abc 1的表达式是( )。 A. 1.0/a*b*c B. 1/(a*b*c) C. 1/a/b/(float)c D. 1.0/a/b/c 14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( )。 A. 15 B. 26,15 C. 15,26 D. 26

面向对象笔试题

一、填空题 1 Java中一个类可以有个父类。 2 如果一个类的声明中没有使用extends关键字,这个类被系统默认为是类的子类。 3 子类自然地继承了其父类中不是的成员变量作为自己的成员变量。 4 当子类中定义的成员变量和父类中的成员变量同名时,子类的成员变量了父类的成员变量。 5 子类通过成员变量的隐藏和方法的可以把父类的状态和行为改变为自身的状态和行为。 6 对于重写或继承的方法,Java运行时系统根据调用方法的的类型来选择调用哪个方法。 7 对于子类创建的一个对象,如果子类重写了父类的方法,则运行时系统调用的方法。 8 对于子类创建的一个对象,如果子类继承了父类的方法,未重写,则运行时调用______的方法。 9 在Java语言中多态性体现在由方法重载实现的静态多态性和实现的动态多态性。 10 类不能被继承,即不能有子类。 11 类不能创建对象,必须产生其子类,由子类创建对象。 12 如果一个方法被修饰为方法,则这个方法不能被重写。 13 对于方法,只允许声明,而不允许实现。 14 如果一个方法被修饰为final方法,则这个方法不能。 15 如果一个类是一个abstract类的子类,它必须具体实现的abstract方法。 16 局部变量的名字与成员变量的名字相同,若想在该方法内使用成员变量,必须使用关键字。 17 在关键字中能代表当前类或对象本身的是。 18 如果在子类中想使用被子类隐藏的父类的成员变量或方法可以使用关键字。 19 子类如果想用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字____ 来表示。 20 如果在子类中想使用被子类隐藏了的父类成员变量或方法就可以使用关键字。 21 Java中为了克服的缺点,使用了接口,一个类可以实现多个接口。 22 就是方法定义和常量值的集合。 23 使用关键字来定义接口。 24 接口定义包括接口的声明和。 25 一个类通过使用关键字声明自己实现一个或多个接口。 26 如果一个类实现了某个接口,那么这个类必须实现该接口的。 27 接口中的方法被默认的访问权限是。 28 接口的定义包括和接口体。 29 定义接口时,接口体中只进行方法的声明,不允许提供方法的。 30 如果接口中的方法的返回类型不是void的,那么在类中实现该接口的方法时,方法体至少要有一个语句。 31 指那些类定义代码被置于其他类定义中的类。 32 是Java SE5.0的新特性。

面向对象的程序设计试题库

面向对象的程序设计 一、单项选择题 1、下面那种结构不是C++的控制结构() A 顺序结构 B 选择结构 C 循环结构 D 判断结构 答: D 2、下列是C++语言中合法标识符的是()。 A.3three B.if C._1one D.while 答:C 3、下列是合法的C++语言语句的是()。 A.if(x>0) then x=x-1;else x=x+1; B.if(x>0) x=x-1;else x=x+1; C.if x>0 x=x-1;else x=x+1; D.if x>0 x=x-1; 答:B 4、下面那一种不是计算机内部表示整数的方法() A 二进制码B原码 C 补码D反码 答:A 5、在C++语言中,下列数为合法的实数的是()。 A.5E-3 B.5E-3.5 C. E5 D.-3.5E 答:A 6、C++语言中数据类型最大的是() A long B float C int D char

答:B 7、如果一个函数可以在定义中直接或间接的调用自己,这样的函数称为( )。 A.函数声明 B.嵌套函数 C.定义函数 D.递归函数 答:D 8、表达式0x55^0xB4的结果为()。 A.0xF5 B.0x15 C.0xE1 D.0x1E 答:C 9、C++中,源代码文件后缀为() A .cpp B .obj C .exe D .c 答: A 10、0X5A&0XB7结果是() A 0X13 B 0X12 C 0X14 D 0X15 答: B 二、填空题 1、程序的基本控制结构包括()、()和( )。 答:顺序结构,选择结构,循环结构 2、用来解决问题的,与有限多个步骤组成的具体过程称为()。 答:算法 3、整数类型变量a和b被初始化为3和10,则循环语句while(a<=b) a=a+2;共执行()次,执行完语句后a的值为(),b的的值为()。

c面向对象复习题答案版

一、填空题 ++中有两种数据类型:( char )和( int long )可以使用signed修饰符。在C++中,用数组、指针、和( 引用 )作为函数参数,能够将参数值带回。 2.为了降低函数调用的时间开销,建议将小的调用频繁的函数定义为(内联函数),方法是在函数类型前加上(inline)关键字。 3.面向对象的程序设计有四大特征,它们是抽象、封装、( 继承 )、( 多态 )。 4.拷贝构造函数是在用一个对象初始化另一个对象时被调用,系统缺省的拷贝构造函数的工作方法是( 把对象的每个数据成员的值都复制到新建立的对象中)。 5.用new申请某一个类的动态对象数组时,在该类中必须能够匹配到(该类的)构造函数,否则应用程序会产生一个编译错误。 6.静态数据成员必须在类外进行初始化,且静态数据成员的一个拷贝被类的所有对象( 共享 )。 7.在C++中,定义重载函数时,应至少使重载函数的参数个数或参数类型( 不同 )。 8.在C++中,虽然友元提供了类之间数据进行访问的一种方式,但它破坏了面向对象程序设计的( 封装 )特性。 9.预编译指令由三种,它们是:文件包含、( 宏定义 )和( 条件编译 )。 10.静态的成员函数没有隐含的( this ),所以,它们只能直接访问类的静态的数据成员。 11.在C++中,函数的参数有两种传递方式,它们是值传递和( 地址 )。 12.当非静态成员函数被调用时,该成员函数的( this )指向调用它的对象。 13.拷贝构造函数使用( 引用 )作为参数初始化创建中的对象。 14.在公有继承的情况下,基类数据成员在派生类中的访问权限( 不变 )。 15.在C++中,构造派生类对象时,总是先从( 基类 )的初始化开始的。 16.当需要统计程序中某个类创建对象的个数时,需要给该类定义(静态数据)成员。 17.在多个类之间有重复继承时,为避免被重复继承的基类数据成员在内存中有多个拷贝,应将该基类定义为(虚基类)。 18.在C++类中,有一种不能定义对象的类,这样的类只能被继承,称之为( 抽象类 ),定义该类至少具有一个( 纯虚函数 )。 19.在C++中构造一个对象时,其数据成员在构造函数中初始化。对于内嵌的对象、( 常量 )、( 引用 )数据成员需要在构造函数的成员初始化列表中初始化。 20.在类的定义中,说明为protected的数据成员称为保护成员。保护数据成员具有双重作用:对于其派生类而言,( 可以访问 );而对于其外部的程序而言,( 不可以访问 )。 21.控制格式输出的 操纵符中,(setprecision)是设置数据精度的,( hex)是设置十六进制

面向对象编程练习题库 test

面向对象编程练习题 专题1 初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。 3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名 为()。 4.如果Java源文件中有多个类,那么只能有一个类是()类。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是() A.public static int main(String args[]) B.public static void main(String args[]) C.public void main(String args[]) D.public int main(String args[]) 2.下面命令正确的是() A.java B.java AppFirst C.java D.javac AppFirst 3.设有一个Java小程序,源程序名为,其HTML文件为,则运行该小程序的命令为()A.java FirstApplet B.javac C.appletviewer D.appletviewer 4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。A.bin B.jre C.include D.doc 5.Java语言是一种语言。 A.机器B.汇编C.面向过程的D.面向对象的 6、Java程序的最基本组成单位是( )。 A.函数B.过程C.变量D.类 7. main()方法的返回值类型是()。 A.boolean B.int C. void D.static 8. 下面哪个单词是Java语言的关键字()A.False B.FOR C.For D.for

面向对象专题练习

**专题5 面向对象 一、填空题 1.如果一个方法不返回任何值,则该方法的返回值类型为void 。(//有无返回值的意义何在???) 2.如果子类中的某个方法名、返回值类型和_参数列表_____与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法。 3.接口中所有的属性均为_public_、_final_____和_static__的,方法(public abstract ) 4.抽象方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方法必须在具体类之中定义。 5.在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。 6.一般Java程序的类主体由两部分组成:一部分是属性,另一部分是方法。7.分别用class关键字来定义类,用new关键字来分配实例存储空间。 8.当一个类的修饰符为final时,说明该类不能被继承,即不能有子类。9.在Java中,能实现多重继承效果的方式是接口。 二、选择题 1.方法内定义的变量(B)。 A.一定在方法内所有位置可见B.可能在方法的局部位置可见(for循环)C.在方法外可以使用D.在方法外可见 2.方法的形参()。 A.可以没有B.至少有一个 C.必须定义多个形参D.只能是简单变量 3.return语句()。 A.不能用来返回对象B.只可以返回数值 C.方法都必须含有D.一个方法中可以有多个(但是返回只有一个)

4.main()方法的返回值类型是() A.boolean B.int C.void D.static 5.编译并运行下面的程序,运行结果是()。 public class A{ public static void main(String args[]){ A a=new A(); a.method(8); } void method(int i){ System.out.println(“int: ”+i); } void method(long i){ System.out.println(“long: ”+i); } A.程序可以编译运行,输出结果为:“int: 8” B.程序可以编译运行,输出结果为:“long: 8” C.程序有编译错误,因为两个method()方法必须定义为静态(static)的D.程序可以编译运行,但是没有输出 6.能作为类及其成员的修饰符是()。 A.interface B.class C.protected D.public 7.下列方法定义中,方法头不正确的是()。 A.public static x(double a){…} B.public static int x(double y){…} C.void x(double d){…} D.public int x(){…} 8.构造方法在()时被调用。 A.类定义时B.使用对象的变量时 C.调用对象方法时D.创建对象时 9.下列哪个类声明是正确的()。 A.public abstract class Car{…} B.abstract private move(){…} C.protected private number; D.abstract final class H1{…} 10.下列不属于面向对象程序设计的基本特征的是()。 A.抽象B.封装 C.继承D.静态 11.请看下面的程序段 class Person{ String name,department; int age;

面向对象编程练习题库

面向对象编程练习题 专题1初识Java 一、填空题 1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。 2.环境变量的设置,若JDK安装在“D:\JDK”,则应设置Path为()、classpath为()。3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。4.如果Java源文件中有多个类,那么只能有一个类是()类。 二、选择题 1.作为Java应用程序入口的main方法,其声明格式是()A.public static int main(String args[])B.public static void main(String args[])C.public void main(String args[])D.public int main(String args[]) 2.下面命令正确的是() A.java AppFirst.java B.java AppFirst C.java appfirst.class D.javac AppFirst 3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML 文件为FirstApplet.html,则运行该小程序的命令为()

A.java FirstApplet B.javac FirstApplet.java C.appletviewer FirstApplet.java D.appletviewer FirstApplet.html4.JDK安装完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。 A.bin B.jre C.include D.doc 5.Java语言是一种语言。 A.机器B.汇编C.面向过程的D.面向对象的 6、Java程序的最基本组成单位是()。 A.函数B.过程C.变量D.类 7.main()方法的返回值类型是()。 A.boolean B.int C.void D.static 8.下面哪个单词是Java语言的关键字()A.False B.FOR C.For D.for 9.、线程是Java的()机制。 A.检查B.解释执行C.并行D.并发 专题2标识符、表达式、数据类型 一、填空题 1.Java逻辑常量有两个:()和()。 2.比较两个数相等的运算符是:。 4、Java中的八种基本数据类型分别是:char、、、、、、和。 二、选择题 1.下面这些标识符哪个是错误的()

Java面向对象_练习题

Java基础面向对象习题1: 1.面向对象的软件开发有哪些优点? 使用面向对象思想进行开发有以下优点: 1、易维护 采用面向对象思想设计的结构,可读性高,由于继承的存在,即使改变需求,那么维护也只是在局部模块,所以维护起来是非常方便和较低成本的。 2、质量高 在设计时,可重用现有的,在以前的项目的领域中已被测试过的类使系统满足业务需求并具有较高的质量。 3、效率高 在软件开发时,根据设计的需要对现实世界的事物进行抽象,产生类。使用这样的方法解决问题,接近于日常生活和自然的思考方式,势必提高软件开发的效率和质量。 4、易扩展 由于继承、封装、多态的特性,自然设计出高内聚、低耦合的系统结构,使得系统更灵活、更容易扩展,而且成本较低。 面向对象的软件开发具有以下优点: ●把软件系统看成是各种对象的集合,这更接近人类的自然思维方式。 ●软件需求的变动往往是功能的变动,而功能的执行者——对象一般不会有大的变 化。这使得按照对象设计出来的系统结构比较稳定。 ●对象包括属性(数据)和行为(方法),对象把数据以及方法的具体实现方式一起封装起 来,这使得方法和与之相关的数据不再分离,提高了每个子系统的相对独立性,从而提高了软件的可维护性。 ●支持封装、抽象、继承和多态,提高了软件的可重用性、可维护性和可扩展性 2.在软件系统中,为什么说一个孤立的不对外提供任何服务的对象是没有意义的? 开发软件系统的目的,就是为了让它提供特定服务。从使用者的角度出发,整个软件系统就是一个服务提供者。大的系统由多个子系统组合而成。在系统内部,每个子系统(对象或对象的组合)也都是服务提供者,它们为其它子系统或者所属的大系统提供服务,各个系统之间通过发送消息来互相获得服务。因此,一个孤立的不对外提供任何服务的系统是没有任何意义的 3.列举一些现实生活中的例子,来说明什么是依赖关系、什么是聚和关系,以及什么 是关联关系。 依赖关系:人依赖食物;电视机依赖电;理发师依赖剪刀和吹风机;鱼依赖水聚集关系:电脑由显示器、主机和键盘等聚集而成; 关联关系:公司和员工;银行和客户;老公和老婆 4.列举一些现实生活中的例子,来说明什么是封装,什么是接口。 封装:电脑主机的组件被封装在机箱内;电视机的内部构件也被封装在大壳子内 接口:电脑的键盘上的按键是电脑向人提供的接口;电脑上的USB插口是向移动硬盘提供的接口;电脑上的光盘驱动器是向光盘提供的接口。 5.抽象的最主要的特征是什么? 抽象是指从特定角度出发,从已经存在的一些事物中抽取我们所关注的特性,形成一个新的事物的思维过程。抽象是一种由具体到抽象、由复杂到简洁的思维方式。

5面向对象复习题

一、填空题 1、面向对象的特征是、、和。 2、面向对象有三个基本要素,它们是、和。 3、类具有属性,它是的抽象,用来描述类的属性。 4、类具有操作,它是的抽象,用和实现来描述。 5、在类层次中,子类只继承一个父类的属性和方法,则称为。子类继承了多个父类的属性和方法,则称为。 6、OMT方法是RumBaugh等人提出的面向对象开发方法。开发工作的基础是对,然后围绕这些对象使用来进行独立于语言的设计。 7、Coad和Yourdon方法完成了从需求角度出发的认定工作,面向对象设计可以在此基础上,从设计的角度进一步进行的认定。 8、Booch方法通过分析问题陈述正文,将其中的映射为对象,将其中的映射为方法,从而为对象和方法的认定提供了一种简单的策略,虽然Booch方法原是面向的语言,但仍处于面向对象开发方法的奠基性地位。 9、不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,而且对其作了进一步的发展,最终成为为国际对象组织(OMG)认可的同一建模语言。 10、在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即和整体-部分关系。 11、在面向对象设计中存在三种内聚,即、和。 二、单选填空题 1、对象是面向对象开发方法的基本成分,每个对象可用它本身的一组( )和它可以执行的一组操作来定义。 A. 服务 B. 参数 C. 属性 D. 调用 2、在面向对象方法中,把一组具有相同数据结构和相同操作的对象的集合定义为( )。此定义包括一组数据属性和在数据上的一组合法操作。 A. 聚合 B. 类 C. 结构 D. 主题 3、面向对象技术的许多强有力的功能和突出的优点都来源于把系统组织成一个类的层次结构。一个类的上层可以有父类,下层可以有子类。这种系统的类层次结构的一个重要性质是( ),通过它,一个类可共享其父类的全部数据和操作。 A. 传递性 B. 复用性 C. 并行性 D. 继承性

面向对象方法题库1-0-5

面向对象方法题库1- 0-5

问题: [单选]当()时,用例是捕获系统需求最好的选择。 A.系统具有很少的用户 B.系统具有很少的接口 C.系统算法复杂,功能单一 D.系统有很多参与者 用例描述的是系统的执行者(参与者)与系统的交互,同时也是开发人员与用户进行交流的工具,可用来很好地定义系统的边界。所以,当执行者较多的时候,用例是捕获系统需求最好的选择。

问题: [单选]对OO系统的技术度量的识别特征,Berard定义了导致特殊度量的特征。其中()抑制程序构件的操作细节,只有对访问构件必需的信息被提供给其他希望访问的构件。 A.局部化 B.封装 C.信息隐藏 D.继承 面向对象的软件和用传统方法开发的软件有本质的不同,为此,对OO系统的技术度量必须调整以适应那些区别OO和传统软件的特征。Berard定义了5个导致特殊度量的特征,分别是局部化、封装、信息隐蔽、继承和对象抽象技术。 (1)局部化。局部化是软件的一个特征,它指明信息在程序中被集中的方式,例如,针对功能分解的传统方法围绕功能局部化信息,它们典型地以过程模块来实现。数据驱动方法围绕特定的数据结构局部化信息。在OO语境中,信息是通过封装数据和处理在类或对象的边界内而集中的。因为传统软件强调函数为局部化机制,软件度量着重于函数的内部结构或复杂性(例如,模块长度、内聚性或环路复杂性等)或函数间相互连接的方式(例如,模块耦合)。因为类是OO系统的基本单位,所以,局部化是基于对象的,因此,度量应该应用于作为一个完全实体的类(对象)。此外,在操作(函数、方法)和类间的关系不必要是一对一的。因此,反应类协作方式的度量必须能够适应一对多和多对一的关系。

完整版面向对象分析与设计练习题含答案

面向对象分析与设计试题B卷 一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 2 分,共20 分) /* 上个世纪80年代开始至今还盛行的以Smalltalk,C++等为代表的面向对象软件开发方法(00)*/ 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言(20世纪70年代的Simula-67是第一个面向对象的语言) B. Smalltalk语言(80年代初的Smalltalk语言) C. Java语言(对流行的语言进行面向对象的扩充得到的语言或C++) D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是(B)。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与( C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是(C)。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6.(D)是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 7. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 **8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。 A.对象图*B. 协作图 C. 状态图*D. 序列图 9.(D )就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。 A. 组件图(用来反映代码的物理结构) B. 协作图(显示对象和他们之间的关系) C. 状态图(对所描述实物的补充说明,他显示了类的所有对象可能具有的状态) )显示系统中软件和硬件的物理架构(配置图D. 10. 使用UML进行关系数据库的(B )时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计(一种描述系统功能需求的方法。表示用户使用系统的一种情况) B. 逻辑数据模型设计

面向对象试题(答案)

面向对象试题(答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a);

} } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构 造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test() ”); } }

public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.C hild.test() Child.test() B.C hild.test() Base.test() C.B ase.test() Child.test() D.Base.test() Base.test()

面向对象程序设计试题库

一、单项选择题 1. 在C++语言中,对函数参数默认值描述正确的是:( D ) A) 函数参数的默认值只能设定一个 B) 一个函数的参数若有多个,则参数默认值的设定可以不连续 C) 函数参数必须设定默认值 D) 在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值 2. 假定AB 为一个类,则执行AB x ;语句时将自动调用该类的( B )。 A) 有参构造函数B) 无参构造函数 C) 拷贝构造函数D) 赋值构造函数 3. 下述关于开关语句的描述中,()是正确的。 A) 开关语句中default子句可以没有,也可以有一个; B) 开关语句中每个语句序列中必须有break语句; C) 开关语句中default子句只能放在最后; D) 开关语句中case子句后面的表达式可以是整形表达式。 4. 关于对象概念的描述中,()是错误的。 A) 对象就是C语言中的结构变量; B) 对象代表着正在创建的系统中的一个实体; C) 对象是一个状态和操作(或方法)的封装体; D) 对象之间的信息传递是通过消息进行的; 5. 下列给字符数组进行初始化中,()是正确的。 A) char s1[ ]="12345abcd"; B) char s2[3]="xyz"; C) char s3[][3]={ 'a', 'x', 'y'}; D) char s4[2[3]={"xyz","mnp"}; 6. 在int a[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是()。 A) 3 B) 2 C) 6 D) 4 7. 声明类test的拷贝构造函数的正确形式是( D )。 A) int test B) void test C) test(void) D) test(test&) 8. 关于new运算符的下列描述中,()是错的。 A) 它可以用来动态创建对象和对象数组; B) 使用它创建的对象或对象数组可以使用运算符delete删除; C) 使用它创建对象时要调用构造函数; D) 使用它创建对象数组时必须指定初始值。 9. 在C++ 中有以下4 条语句:static int hot=200;int &rad=hot; hot=hot+100;cout<

相关文档