作业(2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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.不要增加题中没有用到的类成员。