2017 面向对象程序设计(C++)(四川师范大学) 最新满分章节测试答案
本答案对应课程为:点我自动跳转查看
本课程起止时间为:2017-09-13到2018-02-13
本篇答案更新状态:已完结
第7章 面向对象程序设计之一(2) 单元测验7-2
1、 问题:下列关于构造函数的描述中,错误的是( )。
选项:
A:定义构造函数的目的主要是为了在创建对象时初始化对象的数据成员
B:构造函数在创建对象时被自动调用。每创建一个对象,构造函数即被调用一次
C:每个类可以定义多个构造函数,以实现不同的初始化方法
D:构造函数应定义为类的私有成员
答案: 【构造函数应定义为类的私有成员】
2、 问题:下列类ABC中所定义的构造函数,错误的是( )。
选项:
A:class ABC
{
private: int x, y;
public:
ABC( ) { x = 0; y = 0; }
ABC(int a, int b) { x = a; y = b; }
};
B:class ABC
{
private: int x, y;
public:
ABC( ) { x = 0; y = 0; }
ABC(int a, int b);
};
ABC::ABC(int a, int b) { x = a; y = b; }
C:class ABC
{
private: int x, y;
public:
ABC(int a = 0, int b = 0);
};
ABC::ABC(int a, int b) { x = a; y = b; }
D:class ABC
{
private: int x = 0, y = 0;
public:
void Abc(int a, int b) { x = a; y = b; }
};
答案: 【class ABC
{
private: int x = 0, y = 0;
public:
void Abc(int a, int b) { x = a; y = b; }
};】
3、 问题:类ABC的默认构造函数是( )。
选项:
A:ABC( ) { }
B:void ABC( ) { }
C:Abc( ) { }
D:ABC( ) { x = 0; y = 0; }
答案: 【ABC( ) { }】
4、 问题:已定义类ABC:class ABC
{
private: int x, y;
public:
ABC( ) { x = 0; y = 0; }
ABC(int a, int b) { x = a; y = b; }
};执行定义对象语句:ABC obj; 则自动调用哪个构造函数?( )
选项:
A:ABC( )
B:ABC(int a, int b)
C:依次调用这2个构造函数
D:不调用任何构造函数
答案: 【ABC( )】
5、 问题:已定义类ABC:class ABC
{
private: int x, y;
public:
ABC(int a, int b) { x = a; y = b; }
};则下列定义对象语句中,错误的是( )。
选项:
A:ABC obj;
B:ABC obj(5, 10);
C:ABC obj(5, 5+5);
D:ABC *pobj = new ABC(5, 10);
答案: 【ABC obj;】
6、 问题:下列关于析构函数的描述中,错误的是( )。
选项:
A:定义析构函数的目的是为了在销毁对象时清理对象的数据成员或其它一些善后工作
B:析构函数在销毁对象时被自动调用。每销毁一个对象,析构函数即被调用一次
C:每个类可以定义多个析构函数,以实现不同的清理方法
D:通常,析构函数应定义为类的公有成员
答案: 【每个类可以定义多个析构函数,以实现不同的清理方法】
7、 问题:下列关于拷贝构造函数的描述中,错误的是( )。
选项:
A:定义拷贝构造函数的目的主要是为了用一个已有的对象来初始化新创建的对象
B:拷贝构造函数与其它构造函数构成重载函数
C:每创建一个对象,拷贝构造函数即被调用一次
D:一个类如果未定义拷贝构造函数,C++将自动为该类添加一个默认拷贝构造函数
答案: 【每创建一个对象,拷贝构造函数即被调用一次】
8、 问题:已定义类ABC:class ABC
{
private: int x, y;
public:
ABC( ) { x = 0; y = 0; }
ABC(int a, int b) { x = a; y = b; }
ABC(ABC &a) { x = a.x; y = a.y; }
};执行定义对象语句:ABC obj1, obj2(obj1); 则将会自动调用哪个构造函数?( )
选项:
A:ABC( )
B:ABC(ABC &a)
C:依次调用ABC( )和ABC(int a, int b)
D:依次调用ABC( )和ABC(ABC&a)
答案: 【依次调用ABC( )和ABC(ABC&a)】
9、 问题:下列关于对象的描述中,错误的是( )。
选项:
A:类可认为是一种数据类型,用类所定义的变量称为对象,也可称为是类的实例
B:执行对象定义语句时,计算机将为程序中的对象分配内存空间
C:可以访问对象中公有数据成员的内存单元
D:可以调用对象中的所有函数成员
答案: 【可以调用对象中的所有函数成员】
10、 问题:类ABC中定义了一个函数成员fun:void fun( ) { …… }。编译器在编译时会将其函数头调整为( )。
选项:
A:void fun( ABC this )
B:void fun( ABC * this )
C:void fun( ABC * const this )
D:不做调整
答案: 【void fun( ABC * const this )】
11、 问题:调用对象obj函数成员fun:obj.fun( ); 编译器在编译时会将其调整为( )。
选项:
A:obj->fun( );
B:obj->fun( &obj );
C:fun( obj );
D:fun( &obj );
答案: 【fun( &obj );】
【作业】第7章 面向对象程序设计之一(2) 单元作业7-2
1、 问题:阅读程序。阅读下列C++程序,对每条语句进行注释,说明其作用。#include
using namespace std;
class CTest
{
private: int x, y;
public:
CTest(int p1 = 0, int p2 = 0) { x = p1; y = p2; }
CTest(CTest &p) { x = p.x; y = p.y; }
void Show( ) { cout << x << “, “ << y << endl; }
};
int main( )
{
CTest obj1;
obj1.Show( );
CTest obj2(2, 5);
obj2.Show( );
CTest obj3(obj2);
obj3.Show( );
return 0;
}
评分规则: 【 从“class CTes”t开始的每条语句都要加注释。未加注释或注释错误,每个扣5分。参考答案:#include
using namespace std;
class CTest // 定义类CTest
{
private: int x, y; // 声明私有数据成员x、y
public:
CTest(int p1 = 0, int p2 = 0) { x = p1; y = p2; } // 带默认形参值的构造函数
CTest(CTest &p) { x = p.x; y = p.y; } // 拷贝构造函数
void Show( ) { cout << x << “, “ << y << endl; } // 显示数据成员的函数
};
int main( ) // 主函数
{
CTest obj1; // 定义对象obj1,自动调用构造函数将数据成员初始化为0
obj1.Show( ); // 显示结果:0, 0
CTest obj2(2, 5); // 定义对象obj2,自动调用构造函数将数据成员初始化为2和5
obj2.Show( ); // 显示结果:2, 5
CTest obj3(obj2); // 定义对象obj3,自动调用拷贝构造函数用obj2初始化obj3
obj3.Show( ); // 显示结果:2, 5
return 0; // 程序结束,返回
}
【作业】第7章 面向对象程序设计之一(3) 单元作业7-3
1、 问题:编写程序。编写一个关于圆形的C++程序。要求用定义一个圆形类Circle,其中包含如下成员:1) 1个私有数据成员(半径)。2) 3个公有函数成员(设置半径、计算面积、计算周长)。3) 3个构造函数(不带参数的构造函数、带参数的构造函数和拷贝构造函数)。主函数main使用圆形类Circle创建圆形对象,要求:1) 定义一个圆对象c1,从键盘输入一个值x并将其设定为c1的半径,计算并显示c1的面积和周长2) 再定义一个圆对象c2,并将半径初始化为2x,计算并显示c2的面积和周长3) 再定义一个圆对象c3,并用c1初始化c3,计算并显示c3的面积和周长
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦