练习1--类和对象

发布时间 : 星期二 文章练习1--类和对象更新完毕开始阅读

一、选择题

1、下列叙述不下确的是( )。 A、对象之间可以相互赋值 B、对象可以用作函数参数 C、对象可以用作数组的元素 D、C++中可以有指向对象的指针

2、以下关于类与对象的叙述不正确的是( )。A、对象是类的一个实例 B、一个类只能有一个实例

C、类与对象的关系和数据类型与变量的关系相似D、任何一个对象都属于一个具体的类 3、下列类的定义正确的是( )。 A、class a { int x=0; iny y=1; } B、class b { int x=0; int y=1; }; C、class c { int x; int y; } D、class d { int x; int y; }; 4、下列程序有错误的是( )。 class Local { int X,Y;

int printY( ) { cout<

void init( ) { X=0;Y=1; } int printX() { cout<

int main( ) { Local a,b,c:

a.init( );

a.printX( ); //A a.printY(): //B return 0; } A、A行有错 B、B行有错 C、两行都有错误 D、两行都没有错误

5、对于结构体中定义的成员,其隐含的访问权限为( )。 A、public B、protected C、private D、static

6、下列叙述错误的是( )。 A、对象就是C++中的结构变量

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

C、对象是类的实例,系统为对象分配内存空间而不为类分配内存D、对象之间的信息反馈传递是通过消息进行的 7、下列关于成员函数叙述不正确的是( )。 A、成员函数一定是内联函数 B、成员函数可以重载

C、成员函数可以设置参数的默认值 D、成员函数可以是静态的 8、下列叙述不正确的是( )。

A、在结构体定义时,其成员可用static修饰

B、在结构体定义时,其成员可用protected修饰 C、在结构体定义时,可包含函数成员

D、在结构体定义时,可包含函数成员,但函数不可重载 9、下面有关类的叙述中,不正确的是( )。 A、类是一种用户自定义的数据类型 B、在类中,缺省的访问权限是私有类型 C、只有类的成员函数才能访问类中的私有成员 D、任何结构体都可转换为类 10、若有以下类定义 class Local { int X; public: float Y;

void init (int x) { X=x; }

void init ( int x, float y ) {X=x; Y=y; } } a;

则下列语句被用于对a的数据成员进行赋值,其中不合法的是(A、a.init(4); B、a.init(4,5); C、a.X=4; D、a.Y=5;

11、以下不属于类的访问权限是( )。 A、public B、protected C、static D、private

。12、在类说明时可以用于修饰其成员的关键字是( )。 A、exterm B、auto C、static D、register

13、下列叙述正确的是( )。

struct ab { int x; void print( ) { cout<

stu.print( ); //B return 0; } A、A行有错 B、B行有错 C、两行都有错误 D、两行都没有错误

二、填空题

1、类中可以包含两类成员,分别是( )和( )。 2、面向对象程序设计的三大特征:封装性、继承性和( )。3、下列程序的输出结果是( )。 class pair { char c1,c2; public:

set(char b) { c1=1+(c2=b); } void print( ) { cout<

) };

int main( ) { pair a,b; a.set(‘A’); b.set(‘B’); a.print( ); b.print(); return 0; }

4、下列程序的输出结果是( )。 class Local { int a; public:

void init(int i) { a=i; }

void print( ) { cout<a; } };

int main( ) { Local a; a.init(55); a.pritn( ); return 0; }

5、下列程序第一行输出结果是( ),第二行输出结果是( class Local { int X; public:

。 void init( ) { X=0; } void init(int x) { X=x; }

void print( ) { cout<

6、下列程序第一行输出结果是( ),第二行输出结果是( class Sample { int x; public:

void setx(int i) { x=i; } int getx() { return x; } };

int main( ) { Sample *p; Sample a[2]; a[0].setx(5); a[1].setx(8);

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

p=&a[i], cout<getx( )<

。 ) ) return 0; }

7、下列程序的输出结果是( )。

class Local { char *X, *Y;

void print( ) { strcat(X,Y); public:

void init( ) { X=0; }

void init( char *x,char *y) {X=x; Y=x; print( );} } a;

int main( )

{ char s[10]=”dc”; a.init(s,”ab”); cout<

8、下列程序的输出结果是( )。

class Local { int X; public:

void ini (int X) {X=this->X*this->X;} void print( ) {cout<

int main( ) { a.ini(5); a.print( ); return 0; }

9、下列程序的输出结果是( )。

class Local { int X; public:

void ini (int X) { this->X= X*X;} void print( ) {cout<

}a;

int main( ) { a.ini(5); a.print( ); return 0; }

联系合同范文客服:xxxxx#qq.com(#替换为@)