《Java程序设计案例教程》第五章练习答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第5章类与对象
一、单项选择题
1.在C++语言中,数据封装要解决的问题是(D)。
A.数据的规范化
B.便于数据转换
C.避免数据丢失
D.防止不同模块之间数据的非法访问
2.为了使类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为(A)。
A.public
B.protected
C.private
D.static
3.如果类中的所有成员在定义时都没有使用关键字public、private 或protected,则所有成员默认定义为(C)。
A.public
B.protected
C.private
D.static
4.下列关于类定义的叙述中,正确的是(D)。
A.数据成员必须被声明为私有的
B.成员函数只能在类体外进行定义
C.类成员的默认访问权限是保护的
D.类定义中包括数据成员和函数成员的声明
5.有如下类定义:
class myClass {
public:
myClass(int i=0):n(i){}
void setValue( int n0);
int getValue(){return n;)
private:
int n;
};
下列关于setValue成员函数的实现中,正确的是(D)。
A.setValue(int n0){n=n0;}
B.void setValue(int n0){n=n0;}
C.myClass∷setValue(int n0){n=n0;}
D.void myClass∷setValue(int n0){n=n0;}
6.对于下面定义的类MyClass,在函数f()中将对象成员n的值修改为50的语句是(D)。
class MyClass
{
public:
MyClass( int x){n=x;}
void SetNum( int nl){n=nl;}
private:
int n;
}
int f()
{
MyClass ptr=new MyClass (45);
}
A.MyClass(50)
B.SetNum(50)
C.ptr->n=50
D.ptr->SetNum(50)
7.有如下头文件:
int fl();
static int f2();
class MA {
public:
int f3();
static int f4();
};
在所描述的函数中,具有隐含的this指针的是(C)。
A.fl
B.f2
C.f3
D.f4
8.下列对类的构造函数和析构函数的叙述中,正确的是(A)。
A.构造函数可以重载,析构函数不能重载
B.构造函数不能重载,析构函数可以重载
C.构造函数可以重载,析构函数也可以重载
D.构造函数不能重载,析构函数也不能重载
9.有如下类定义:
class MyClass{
int value;
public:
MyClass( int n):value (n) {}
int gerValue()const{return value;}
};
则类MyClass的构造函数的个数是(A)。
A.1个
B.2个
C.3个
D.4个
10.假定MyClass为一个类,则执行MyClass a,b(2),p;语句时,自动调用该类的构造函数的次数为(A)。
A.2
B.3
C.4
D.5
二、程序分析题
分析下列程序,写出程序的运行结果。
1.#include
using namespace std;
class A {
public:
A() {cout<<"A";}
~A() {cout<<"~A";}
};
class B{
A p;
public:
B() {cout<<"B";p=new A();} ~B() {cout<<"~B";delete p;} }
int main()
{
B obj;
return 0;
}
BA~B~A