[c++]第三章概念题 | 类与对象
Posted Joe不看月亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[c++]第三章概念题 | 类与对象相关的知识,希望对你有一定的参考价值。
1. 关于类和对象不正确的说法是( C )
A. 类是一种类型,它封装了数据和操作
B. 对象是类的实例
C. 一个类的对象只有一个
D. 一个对象必属于某个类
2.下列有关类的说法不正确的是( D )
A. 类是一种用户自定义的数据类型;
B. 只有类中的成员函数或友元函数才能存取类中的私有成员;
C. 在类中,如果不作特别说明,所有的数据均为私有类型;
D. 在类中,如果不作特别说明,所有的成员函数均为公有类型;(私有)
3. 在类定义的外部,可以被访问的成员有( C )
A. 所有类成员
B. private或protected的类成员
C. public的类成员
D. public或private的类成员
4. 以下叙述中不正确的是( C )
A. 一个类的所有对象都有各自的数据成员,它们共享函数成员
B. 一个类中可以有多个同名的成员函数
C. 一个类中可以有多个构造函数、多个析构函数(析构只能有一个)
D. 在一个类中可以声明另一个类的对象作为它的数据成员
5.声明一个类的对象时,系统自动调用( B )函数,
撤消对象时,系统自动调用( C )函数
A. 成员函数 B. 构造函数
C. 析构函数 D. 普通函数
6. 下面对构造函数的不正确描述是( B )
A. 系统可以提供默认的构造函数
B. 构造函数可以有参数,所以可以有返回值 (构造和析构都没有返回值)
C. 构造函数可以重载
D. 构造函数可以设置默认参数
7. 下面对析构函数的正确描述是( C )
A. 系统不能提供默认的析构函数
B. 析构函数必须由用户定义
C. 析构函数没有参数
D. 析构函数可以设置默认参数
8.下面( 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(参数)
9.( C )的功能是对象进行初始化。
A.析构函数 B. 数据成员 C.构造函数 D.静态成员函数
10.( C )不是析构函数的特征。
A. 一个类中只能定义一个析构函数;
B. 析构函数名与类名相同;
C. 析构函数只是用来释放对象,所以析构函数是空函数;(不能用void修饰)
D. 析构函数不指定数据类型,并且也没有参数;
11.有关构造函数的说法不正确的是( D )。
A. 构造函数的名字和类的名字一样;
B. 构造函数在定义类的对象时自动执行;
C. 构造函数无任何函数类型;
D. 构造函数有且仅有一个
12.( C )是构造函数的特征。
A. 构造函数的函数名与类名不同;
B. 一个类中只能定义一个构造函数;
C. 构造函数可以设置缺省参数;
D. 构造函数必须指定类型说明;
13. 以下有关析构函数的叙述不正确的是( B )
A. 在一个类只能定义一个析构函数 B. 析构函数和构造函数一样可以有形参
C. 析构函数不允许用返回值 D. 析构函数名前必须冠有符号“~”
14. 对类的构造函数和析构函数描述正确的是( A )。
A. 构造函数可以重载,析构函数不能重载
B. 构造函数不能重载,析构函数可以重载
C. 构造函数可以重载,析构函数也可以重载
D. 构造函数不能重载,析构函数也不能重载
15. 拷贝构造函数具有的下列特点中,( D )是错误的。
A. 如果一个类中没有定义拷贝构造函数时,系统将自动生成一个默认的
B. 拷贝构造函数只有一个参数,并且是该类对象的引用
C. 拷贝构造函数是一种成员函数
D. 拷贝构造函数的名字不能用类名
16.已知类A中一个成员函数说明为:void set(A &a); ,
其中A &a的含意是( C )
A. 指向类A的指针为a;
B. 将a的地址值赋值给变量set;
C. a是类A的对象引用,用来作函数set( )的形参;
D. 变量A与a按位相与作为函数set( )的参数;
17、在下列说法中,( C )不会调用拷贝初始化构造函数。
A. 当对象作为函数实参传递给函数形参时;
B. 明确表示由一个对象初始化另一个对象时;
C. 用赋值运算符”=”将一个对象赋给另一个同类对象时;
D. 当对象作为函数返回值时
18. ( B )是不可以作为某类的成员的。
A. 自身类对象的指针 B. 自身类的对象
C. 自身类对象的引用 D. 另一个类的对象
19. 具有转换函数功能的构造函数,应该是( B )
A. 不带参数的构造函数;
B. 带有一个参数的构造函数;
C. 带有两个以上参数的构造函数;
D. 缺省构造函数
转换构造函数基本形式
定义:只接受一个一个参数的构造函数才能作为转换构造函数。
对于这句话有两层含义:
构造函数在声明时,就只设置了一个参数。
例如:Base(int a);
构造函数在声明时,设置了多个参数,但是其余参数都是有默认值的。
例如:Base(int a,double b=12.0);
以上两种形式都可以。
20. 假设OneClass为一个类,则该类的拷贝初始化构造函数的声明语句为( C )
A.OneClass(OneClass p); B. OneClass& (OneClass p);
C. OneClass(OneClass & p); D. OneClass (OneClass *p);
21. 下述静态数据成员的特性中,( D )是错误的。
A. 说明静态数据成员时前面要加修饰符static;
B. 静态数据成员要在类体外进行初始化;
C. 在程序中引用公有静态数据成员时,
要在静态数据成员名前加<类名>和作用域运算符;
D. 静态数据成员是个别对象所共用的;(所有对象共有)
22. 对静态成员的不正确描述是( C )
A. 静态成员不属于对象,是类的共享成员
B. 静态数据成员要在类外定义和初始化 (类内定义,类外初始化)
C. 调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
D. 非静态成员函数也可以操作静态数据成员
23. 关于静态成员的描述中,( B )是错误的。
A. 静态成员可分为静态数据成员和静态成员函数
B. 静态数据成员定义后必须在类体内进行初始化 (类外初始化)
C. 静态数据成员初始化不使用其构造函数
D. 静态数据成员函数中不能直接引用非静态成员
24. 以下关于静态成员变量的叙述不正确的是( D )
A.静态成员变量为类的所有对象所公有
B.静态成员变量可以在类内任何位置上声明
C.静态成员变量的赋初值必须放在类外
D.定义静态成员变量时必须赋初值
25. 定义静态成员函数的主要目的是( C )
A.方便调用 B.有利于数据隐藏
C.处理类的静态成员变量 D.便于继承
26. 以下叙述不正确的是(D)使用静态数据成员:
A.可以节省内存空间 B.是为了解决数据共享问题
C.可以直接用类名来引用 D.可以提高序运算速度
27. 关于this指针的说法错误的是( A )
A. this指针必须显示说明 B. 当创建一个对象后,this指针就指向该对象
C. 成员函数拥有this指针 D. 静态成员函数不拥有this指针
28. 设有定义:
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 (对象共用成员函数)
29. 下面对友元的错误描述是( D )
A. 关键字friend用于声明友元
B. 一个类的成员函数可以是另一个类的友元
C. 友元函数访问对象的成员不受访问特性影响
D. 友元函数通过this指针访问对象成员
30. 关于友元的描述中,( A )是错误的。
A. 友元函数是成员函数,它被说明在类体内
B. 友元函数可直接访问类中的私有成员
C. 友元函数破坏封装性,使用时尽量少用
D. 友元类中的所有成员函数都是友元函数
31. 下面对于友元函数描述正确的是( C )。
A.友元函数的实现必须在类的内部定义
B.友元函数是类的成员
C.友元函数破坏了类的封装性和隐藏性
D.友元函数不能访问类的私有成员
32.下面的说法正确的是( D )
A. 构造函数可以声明为const成员函数
B. 构造函数可以声明为静态成员函数
C. 构造函数可以声明为虚函数
D. 构造函数可以声明为友元
33.已知:print( )函数是一个类的常成员函数,
它无返回值,下列表示中,( A )是正确的。
A. void print( ) const B. const void print( )
C. void const print( ) D. void print(const)
34.假定AA是一个类,“AA* abc()const;”是该类中一个成员函数的原型,
若该函数返回this值,当用x.abc()调用该成员函数后,x的值(C )。
A. 已经被改变
B. 可能被改变
C. 不变
D. 受到函数调用的影响
35.对下列语句正确的描述是( C )
const int *x;//①
int *const x;//②
A. 语句①的含义是指针变量x不能更改
B. 语句②的含义是指针变量x所指向的值不能更改
C. 语句②的含义是指针变量x不能更改
D.语句①和②是相同含义的不同定义方式
以上是关于[c++]第三章概念题 | 类与对象的主要内容,如果未能解决你的问题,请参考以下文章