更多课程 选择中心

C/C++培训
达内IT学院

400-111-8989

30道C++类与对象知识点选择题目和答案

  • 发布:C++培训
  • 来源:学习笔记
  • 时间:2017-07-18 14:54

1.下列有关类的说法不正确的是(C)。

A.对象是类的一个实例

B.任何一个对象只能属于一个具体的类

C.一个类只能有一个对象

D.类与对象的关系和数据类型与变量的关系相似

2.下面(B)项是对构造函数和析构函数的正确定义。

A.void X::X(), void X::~X()

B.X::X(参数), X::~X()

C.X::X(参数), X::~X(参数)

D.void X::X(参数), void X::~X(参数)

3.类的构造函数被自动调用执行的情况是在定义该类的(C)。

A.成员函数时

B.数据成员时

C.对象时

D.友元函数时

4.下列表达方式正确的是(D)。

A.class P

{ public:

int x=15;

void show() {cout<<x}

};

B.class P

{ public:

int x;

void show(){ cout<<x;}

}

C.class P

{ int f; };

f=25;

D.class P

{ public:

int a;

void Seta (int x) {a=x;}

};

5.拷贝构造函数具有的下列特点中,(D)是错误的。

A.如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的

B.拷贝构造函数只有一个参数,并且是该类对象的引用

C.拷贝构造函数是一般成员函数

D.拷贝构造函数的名字不能用类名

6.有以下程序

#include<iostream>

using namespace std;

class Myclass

{ public:

Myclass( int n) { number=n;}

Myclass( Myclass &other) { number=other.number; }\

~Myclass( ){ }

private:

int number;

};

Myclass fun( Myclass p ) { Myclass temp(p); return temp; }

int main( )

{ Myclass obj1(10), obj2(0);

Myclass obj3( obj1);

obj2=fun( obj3 );

return 0;

}

程序执行时,Myclass类的拷贝构造函数被调用的次数是(B)。

A.5

B.4

C.3

D.2

7.有以下类的定义

Class Point

{ public:

Point(int x=0; int y=0) { _x=x; _y=y; }

void move( int xoff, int yoff ) { _x+=xoff; _y+=yoff; }

void print( ) const

{ cout<<_x<<’,’<<_y<<endl; }

private:

int _x; _y ;

};

下列语句中会发生编译错误的是(D)。

A.Point pt; pt.print( );

B.const Point pt; pt.print( );

C.Point pt; pt.move(1,2);

D.const Point pt; pt.move(1,2);

8.对类的构造函数和析构函数描述正确的是(A)。

A.构造函数可以重载,析构函数不能重载

B.构造函数不能重载,析构函数可以重载

C.构造函数可以重载,析构函数也可以重载

D.构造函数不能重载,析构函数也不能重载

9.下面关于类的析构函数,说法正确的是(D)。

A.一般成员函数

B.作用是类的初始化

C.作用是对象的初始化

D.对象生命周期结束时由系统自动调用

10.假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为(C)。

A.OneClass(OneClass p);

B.OneClass& (OneClass p);

C.OneClass(OneClass & p);

D.OneClass (OneClass *p);

11.若PAT是一个类,则程序运行时,语句“PAT ( *ad[3]);”,调用PAT的构造函数的次数是(A)。

A.0 B.1

C.2 D.3

12.对于结构体中定义的成员,其默认的访问权限为(C)。

A.public B.protected

C.private D.static

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

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

B.将类的一个对象赋值给该类的另一个对象时

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

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

14.由于常对象不能被更新,因此(A)。

A.通过常对象只能调用它的常成员函数

B.通过常对象只能调用静态成员函数

C.常对象的成员都是常成员

D.通过常对象可以调用任何不改变对象值的函数

15.this指针是C++语言实现(A)的一种机制。

A.抽象 B.封装

C.继承 D.重载

16.下列有关类的说法不正确的是(D)。

A.类是一种用户自定义的数据类型

B.只有类中的成员函数或类的友元函数才能存取类中的私有数据

C.在类中(用class定义),如果不作特别说明,所有的数据均为私有数据

D.在类中(用class定义),如果不作特别说明,所有的成员函数均为公有数据

17.以下有关析构函数的叙述不正确的是(B)。

A.在一个类只能定义一个析构函数

B.析构函数和构造函数一样可以有形参

C.析构函数不允许用返回值

D.析构函数名前必须冠有符号“~”

18.假定一个类的构造函数为A(int aa, int bb){a=aa++;b=a*++bb;},则执行A x(4,5);语句后,x.a和x.b的值分别为(C)。

A.4和5 B.4和20

C.4和24 D.20和5

19.以下叙述中不正确的是(C)。

A.一个类的所有对象都有各自的数据成员,可以共享函数成员

B.一个类中可以有多个同名的成员函数

C.一个类中可以有多个构造函数、多个析构函数

D.在一个类中可以声明另一个类的对象作为它的数据成员

20.以下不属于构造函数特征的是(D)。

A.构造函数名与类名相同

B.构造函数可以重载

C.构造函数可以设置默认参数

D.构造函数必须指定函数类型

21.以下有关类和对象的叙述不正确的是(C)。

A.任何一个对象都归属于一个具体的类

B.类与对象的关系和数据类型与变量的关系相似

C.类的数据成员不允许是另一个类的对象

D.一个类可以被实例化成多个对象

22.设有定义:

class person

{ int num;

char name[10];

public:

void init(int n, char *m);

...

};

person std[30];

则以下叙述不正确的是(D)。

A.std是一个含有30个元素的对象数组

B.std数组中的每一个元素都是person类的对象

C.std数组中的每一个元素都有自己的私有变量num和name

D.std数组中的每一个元素都有各自的成员函数init

23.设有以下类的定义:

class Ex

{ int x;

public:

void setx(int t=0);

};

若在类外定义成员函数setx(),以下定义形式中正确的是(B)。

A.void setx(int t) { ... }

B.void Ex::setx(int t) { ... }

C.Ex::void setx(int t) { ... }

D.void Ex::setx(){ ... }

24. 对于一个类,下列叙述中错误的是(B)。

A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数

B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数

C.如果没有定义构造函数,编译器将一定生成一个缺省的构造函数和一个拷贝构造函数

D.如果已经定义了构造函数和一个拷贝构造函数,编译器将不会生成任何构造函数

25. 下列语句中错误的是(A)。

A.const int a;

B.const int a=10;

C.const int *point=0

D.const int *point=new int[10];

26. 有下列类的定义中错误的语句是(D)。

class Foo

{ public:

Foo(){ } // (1)

Foo(int v):value(v) { } //‚ (2)

~Foo(){ } //ƒ (3)

private:

int value=0; //„ (4)

};

A. (1)

B.‚ (2)

C. (3)

D.„ (4)

27. 若Sample类中的一个成员函数说明如下:void set(Sample &a),则Sample &a的含义是(B)。

A.指向类Sample的名为a的指针

B.a是类Sample的对象引用,用来作函数set( )的形参

C.将a的地址赋给变量set

D.变量Sample与a按位与的结果作为函数set的参数

28. 假定AB为一个类,则执行“AB a(2), b[3],*p[4];”语句时调用该类构造函数的次数为(B)。

A.3 B.4

C.5 D.9

29. 下列不具有访问权限属性的是(A)。

A.非类成员 B.类成员

C.数据成员 D.函数成员

30. 关于对象概念的描述中,说法错误的是(A)。

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

B.对象代表着正在创建的系统中的一个实体

C.对象是类的一个变量

D.对象之间的信息传递是通过消息进行的

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C++类和对象知识点概念和练习题
下一篇:C语言数组与指针概念和知识点详解

C语言创建windows窗口实例

C++回调函数是什么?

C++ shared_ptr和动态数组

C语言有哪些关键词,C语言44个关键词大全

  • 扫码领取资料

    回复关键字:视频资料

    免费领取 达内课程视频学习资料

  • 搜索抖音号

    搜索抖音号:1821685962

    免费领取达内课程视频学习资料

Copyright © 2021 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省