12-4类与对象 练习题 面向对象
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类和对象
一、选择题
题1 下列关于成员访问权限的描述中,不正确的是_________。
A)公有数据成员和公有函数成员都可以被类对象直接处理
B)类的私有数据成员只能被同类的公有成员函数以及该类的友元类或友元函数访问C)只有类或派生类的成员函数和友元类或友元函数可以访问保护成员
D)保护成员在派生类中可以被派生类的函数成员访问,而私有成员不可以
题2 下列关于构造函数的描述中,错误的是_________。
A)构造函数可以设置默认参数
B)构造函数在定义类变量时被自动执行
C)构造函数可以对静态数据成员进行初始化
D)构造函数可以重载
题3 一个类的友元函数或友元类能够访问该类的________。(已出在第五章PPT)A)私有成员B)保护成员
C)公有成员D)公有成员、保护成员和私有成员
题4 下面对于静态成员的描述中,正确的是________。
A)静态数据成员是类的所有对象共享的数据
B)类的每个对象都有自己的静态数据成员
C)类的不同对象有不同的静态数据成员值
D)静态数据成员不能通过类的对象调用
题5 对于下面的类Samp,在函数fun( )中将p所指向的对象的成员m的值改为70的语句
应该是
_________。
class Samp
{
public:
Samp (int x){n=x;}
void SetNum(int n1){n=nl;}
private:
int n;
};
int f( )
{
Samp *ptr=new Samp (45);
________________
}
A)Samp (70) ;B)SetNum(70);
C)ptr->SetNum(70); D)ptr->n=70;
题6 下面是类class_for_e6的定义,以下描述正确的是_________。
class Class_for_e6
{
public:
void Class_for_e6(int a){X=a;} //1
int f(int a,int b) //2
{
X=a;
Y=b;
}
int f(int a,int b,int c=0) //3
{
X=a;
Y=b;
Z=c;
}
static void g(){X=10;} //4
private:
int X,Y,Z;
};
A)语句1是类Class_for_e6的构造函数的正确定义
B)语句2和语句3能实现类成员函数的重载
C)语句4实现对类成员变量X的更新操作合法
D)以上说法都不正确
题7 _________不是构造函数的特征
A)构造函数的函数名与类名相同
B)构造函数可以重载
C)构造函数可以设置默认参数
D)构造函数必须指定返回类型说明
题8 有关析构函数的说法不正确的是_________。
A)析构函数有且只有一个
B)析构函数无任何返回类型
C)析构函数和构造函数一样可以有形参
D)析构函数的作用是在对象被删除前进行一些需要的清理工作
题9 _________,是析构函数的特征。
A)一个类中只能定义一个析构函数
B)析构函数名与类名相同
C)析构函数的定义只能在类声明体内
D)析构函数可以有一个或多个参数
题10 下列的各类函数中,________不是类的成员函数。
A)构造函数B)析构函数C)友元函数D)拷贝构造函数题11 下列静态数据成员的特性中,________是错误的。
A)说明静态数据成员时前边要加修饰符static
B)静态数据成员要在构造函数内进行初始化
C)可以直接使用类名来访问静态数据成员,方法是在静态数据成员名前加<类名>和作用域限度符
D)静态数据成员是所有对象所共用的
题13 已知Sample中的一个成员函数说明如下:
void set(Sample &a)
其中形参Sample &a的含义是_________。
A)指向类 Sample的名为a的指针
B)将a的地址赋给变量set
C)a是类Sample的对象引用,用来做函数set()的形参
D)变量Sample与a按位与的结果作为函数set()的参数
题14 Sample是一个类,下列定义中________是定义指向对象数组的指针p
A)Sample *p[5] B)Sample (*p)[5]
C)(Sample*) p[5] D)Sample *[]p
题15在下面定义中,错误的语句是________。
class Sample
{
public:
Sample(int val); //A
~Sample( ); //B
private:
int a=2; //C
flaot f; //D
};
试卷二
一.选择题
1、下列有关类的说法,()是不正确的。
A、类是一种用户自定义的数据类型
B、只有类中的成员函数才能存取类中的私有数据
C、在类中如果不作特别声明,所有数据成员均为私有类型
D、在类中如果不作特别声明,所有成员函数均为私有类型
2、下列关于类与对象的说法中,()是不正确的。
A、对象是类的一个实例
B、任何一个对象只能属于某个的类
C、一个类只能有一个对象
D、类与对象的关系和数据类型与变量的关系相似
3、下列关于构造函数的描述中,错误的是()。
A、构造函数可以设置默认参数
B、构造函数在定义类对象时自动执行
C、构造函数可以是内联函数
D、构造函数不可以重载