作业(2)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++作业(2)

一、选择题

1.关于类定义格式的描述中,( D )是错的。

A. 一般类的定义格式分为说明部分和实现部分

B. 一般类中包含有数据成员和成员函数

C. 类中成员有三种访问数据:公有、私有和保护

D. 成员函数都应是公有的、数据成员都应是私有的

2.下列关键字中,( C )不是类中定义数据成员使用的关键字。

A. static

B. float

C. extern

D. double

3.(D)不是构造函数的特征。

A、构造函数的函数名与类名相同;

B、构造函数可以重载;

C、构造函数可以设置缺省参数;

D、构造函数必须指定类型说明。

4、在C++中,关于下列设置参数默认值的描述中,(C)是正确的。

A、不允许设置参数的默认值;

B、设置参数默认值只能在定义函数时设置;

C、设置参数默认值时,应该是先设置右边的,再设置左边的;

D、设置参数默认值时,应该全部参数都设置。

5、关于new运算符的下列描述中,(D)是错误的。

A、它可以用来动态创建对象和对象数组;

B、使用它创建的对象或对象数组可以使用运算符delete删除;

C、使用它创建对象时要调用构造函数;

D、使用它创建对象数组时必须指定初始值。

6、重载函数在调用时选择的依据中,(D)是错误的。

A、参数个数;

B、参数的类型;

C、函数名字;

D、函数的类型。

7、(A)是析构函数的特征。

A、一个类中只能定义一个析构函数;

B、析构函数名与类名不同;

C、析构函数的定义只能在类体内;

D、析构函数可以有一个或多个参数;

8、关于delete运算符的下列描述中,(A)是错误的。

A、它必须用于new返回的指针;

B、它也适用于空指针;

C、对一个指针可以连续使用多次该运算符;

D、指针名前只有一对方括号符,不管所删除数组的维数。

9、在(C)情况下适宜采用inline定义内联函数。

A、函数体含有循环语句;

B、函数体含有递归语句;

C、函数代码小,频繁调用;

D、函数代码多,不常调用;

10、定义析构函数时,应该注意(C)。

A、其函数名与类名完全相同;

B、函数返回类型是void类型;

C、无形参,也不可重载;

D、函数体中必须有delete语句;

11、关于成员函数特征的下列描述中,(A)是错误的。

A、成员函数一定是内联函数;

B、成员函数可以重载;

C、成员函数可以设置缺省参数值;

D、成员函数可以是静态的;

12、下列静态数据成员的特性中,(C)是错误的。

A、说明静态数据成员时前边要加修饰符static;

B、静态数据成员要在类体外进行初始化;

C、静态数据成员不是所有对象所共用的;

D、引用静态数据成员时,要在其名称前加<类名>和作用域运算符;

13.关于类成员函数的描述中,(B )是错的。

A. 类中可以说明一个或多个成员函数

B. 类中的成员函数只能定义在类体外

C. 定义在类体外的成员函数前加inline可以成为内联函数(内置函数)

D. 在类体外定义

成员函数时,在函数名前除了加类型说明符外,还需作用域符来限定该成员函数所属的类参考答案:DCDCD DAACC ACB

二、分析以下程序的执行结果

1.#include

class Sample

{

public:

Sample();

Sample(int);

~Sample();

void display();

protected:

int x;

};

Sample::Sample()

{

x=0;

cout<<"constructing normally\n";

}

Sample::Sample(int m)

{

x=m;

cout<<"constructing with a number:" <

}

void Sample::display()

{

cout<<"display a number:"<

}

Sample::~Sample()

{

cout<<"destructing\n";

}

void main()

{

Sample obj1; //调用无参构造函数

Sample obj2(20); //调用有一个参数的构造函数

obj1.display(); //调用成员函数

obj2.display();

} //程序结束前调用析构函数

参考答案:

constructing normally

constructing with a number:20

display a number:0

display a number:20

destructing

destructing

考查内容:构造函数和析构函数

2.#include

class MyClass {

public:

int number;

void set(int i);

};

int number=3;

void MyClass::set (int i)

{

number=i;

}

void main()

{

MyClass my1; //调用默认构造函数

int number=10; //定义普通局部变量

my1.set(5); //调用成员函数,给成员变量赋值

cout<

my1.set(number);

cout<

my1.set(::number); // ::numer表示全局变量

cout<

}

参考答案:

5

10

3

考查内容:普通局部变量、成员变量、全局变量的区别

三、完成程序

1.下面列出了由三个文件main.cpp、MyClass.h和MyClass.cpp组成的一个程序。文件main.cpp中实现了主函数;文件MyClass.h中定义了类MyClass;文件MyClass.cpp中实现了类MyClass的成员函数。仔细阅读所给的程序,根据题意补充文件MyClass.h和文件MyClass.cpp的内容。要求:

a.将成员变量定义为私有的;

b.不要增加题中没有用到的类成员。

相关文档
最新文档