大学MOOC 面向对象程序设计C++(上海电力大学)1452608172 最新慕课完整章节测试答案
第0课 课程说明及知识预备
文章目录
开课说明投票(兼具开课签到功能)
1、判断题:
请问你是否已观看完开课说明并已知晓课程整体安排?
选项:
A: 正确
B: 错误
答案: 【 正确】
第1课 类和对象(1)
第1课 单元测验
1、单选题:
下列关于类和对象的描述中,错误的是
选项:
A: 一个类只能有一个对象
B: 对象是类的具体实例
C: 类和对象的关系是一种数据类型与变量的关系
D: 类是对某一类对象的抽象
答案: 【 一个类只能有一个对象】
2、单选题:
没有指明访问权限的类成员,其访问权限默认为
选项:
A: public
B: private
C: protected
D: static
答案: 【 private】
3、单选题:
关于封装,下列说法中不正确的是
选项:
A: 通过封装,可以将对象的属性和操作合在一起,形成一个整体
B: 通过封装,对象的属性都是不可见的
C: 通过封装,隐藏对象的属性和实现细节,仅对外公开接口
D: 通过封装,每个对象都成为相对独立的实体
答案: 【 通过封装,对象的属性都是不可见的】
4、单选题:
不能作为类的成员的是( )
选项:
A: 本类对象
B: 另一个类的对象
C: 另一个类对象的指针
D: 本类对象的指针
答案: 【 本类对象】
5、单选题:
A为一个类,a为该类的一个对象,f为该类的公有数据成员,则通过( )可以访问a对象中数据成员f
选项:
A: a.f()
B: a.f
C: a->f
D: (*a).f()
答案: 【 a.f】
6、单选题:
下列代码中,正确的是( )
选项:
A: class A{ int x=15; public: void show(){cout<<x;} };
B: class A{ int x; public: void show(){cout<<x;} }
C: class A{ int x; public: void show(){cout<<x;} };x=25;
D: class A{ int x; public: void setA(int x){ x=25;} };
答案: 【 class A{ int x; public: void setA(int x){ x=25;} };】
7、单选题:
在类中声明成员的访问属性时,可以使用关键字的是( )
选项:
A: static
B: inline
C: public
D: register
答案: 【 public】
8、单选题:
假定ClassA为一个类,int f( )为该类的一个成员函数,若该成员函数在类定义体外定义,则定义的函数头为
选项:
A: int f()
B: int ClassA::f()
C: ClassA::int f()
D: int f::ClassA()
答案: 【 int ClassA::f()】
9、填空题:
声明类的关键字是 。
答案: 【 class】
10、填空题:
在面向对象程序设计中,将一组对象的共同特性和行为抽象出来形成______
答案: 【 类】
第1课 单元测验(前面截止时间选错了,请做这一份)
1、单选题:
下列关于类和对象的描述中,错误的是
选项:
A: 一个类只能有一个对象
B: 对象是类的具体实例
C: 类和对象的关系是一种数据类型与变量的关系
D: 类是对某一类对象的抽象
答案: 【 一个类只能有一个对象】
2、单选题:
没有指明访问权限的类成员,其访问权限默认为
选项:
A: public
B: private
C: protected
D: static
答案: 【 private】
3、单选题:
关于封装,下列说法中不正确的是
选项:
A: 通过封装,对象的属性都是不可见的
B: 通过封装,可以将对象的属性和操作合在一起,形成一个整体
C: 通过封装,可以隐藏对象的属性和实现细节,仅对外公开接口
D: 通过封装,每个对象都成为相对独立的实体
答案: 【 通过封装,对象的属性都是不可见的】
4、单选题:
不能作为类的成员的是( )
选项:
A: 本类对象
B: 另一个类的对象
C: 另一个类对象的指针
D: 本类对象的指针
答案: 【 本类对象】
5、单选题:
A为一个类,a为该类的一个对象,f为该类的公有数据成员,则通过( )可以访问a对象中数据成员f
选项:
A: a.f()
B: a.f
C: a->f
D: (*a).f()
答案: 【 a.f】
6、单选题:
下列代码中,正确的是( )
选项:
A: class A{ int x=15; public: void show(){cout<<x;} };
B: class A{ int x; public: void show(){cout<<x;} }
C: class A{ int x; public: void show(){cout<<x;} };x=25;
D: class A{ int x; public: void setA(int x){ x=25;} };
答案: 【 class A{ int x; public: void setA(int x){ x=25;} };】
7、单选题:
在类中声明成员的访问属性时,可以使用关键字的是( )
选项:
A: static
B: inline
C: public
D: register
答案: 【 public】
8、单选题:
假定ClassA为一个类,int f( )为该类的一个成员函数,若该成员函数在类定义体外定义,则定义的函数头为
选项:
A: int f()
B: int ClassA::f()
C: int f::ClassA()
D: ClassA::int f()
答案: 【 int ClassA::f()】
9、填空题:
声明类的关键字是 。
答案: 【 class】
10、填空题:
在面向对象程序设计中,将一组对象的共同特性和行为抽象出来形成______
答案: 【 类】
随堂测验
1、单选题:
下列关于C++语言类的描述中错误的是
选项:
A: 类用于描述事物的属性和对事物的操作
B: 类与类之间通过封装而具有明确的独立性
C: 类与类之间必须是平等的关系,而不能组成层次结构
D: 类与类之间可以通过一些方法进行通信和联络
答案: 【 类与类之间必须是平等的关系,而不能组成层次结构】
2、单选题:
什么是成员
选项:
A: 类的特征
B: 类的方法
C: 类的事件
D: 以上全是
答案: 【 以上全是】
3、单选题:
假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为
选项:
A: x.a
B: x.a()
C: x->a
D: x->a()
答案: 【 x.a()】
4、单选题:
在用关键字class定义的类中,以下叙述正确的是
选项:
A: 在类中,不作特别说明的数据成员均为私有类型
B: 在类中,不作特别说明的数据成员均为公有类型
C: 类成员的定义必须是成员变量定义在前,成员函数定义在后
D: 类的成员定义必须放在类定义体内部
答案: 【 在类中,不作特别说明的数据成员均为私有类型】
5、单选题:
下列有关类的说法不正确的是
选项:
A: 对象是类的一个实例
B: 任何一个对象只能属于一个具体的类
C: 一个类只能有一个对象
D: 类与对象的关系和数据类型与变量的关系相似
答案: 【 一个类只能有一个对象】
6、单选题:
下面关于类的概念的描述中错误的是
选项:
A: 类是抽象数据类型的实现
B: 类是具有共同行为的若干对象的统一描述体
C: 类是创建对象的样板
D: 类就是C语言中的结构体类型
答案: 【 类就是C语言中的结构体类型】
7、单选题:
作用域运算符的功能是
选项:
A: 标识作用域的级别
B: 指出对象的大小
C: 标识某个成员是属于哪一类的
D: 给出类的范围
答案: 【 标识某个成员是属于哪一类的】
8、单选题:
下列关于成员函数特征的描述中,错误的是
选项:
A: 成员函数一定是内联函数
B: 成员函数可以重载
C: 成员函数可以设置参数的默认值
D: 成员函数可以是静态的
答案: 【 成员函数一定是内联函数】
9、单选题:
在面向对象设计中,对象有很多基本特点,其中“一个系统中通常包含很多类,这些类之间呈树形结构”这一性质指的是对象的
选项:
A: 分类性
B: 标识唯一性
C: 继承性
D: 封装性
答案: 【 继承性】
10、单选题:
为了使得类中的某个成员不能被类的对象通过成员操作符访问,则不能把该成员的访问权限定义为:
选项:
A: public
B: protected
C: private
D: static
答案: 【 public】
第2课 类和对象(2)
第2课 单元测验
1、单选题:
一个类的构造函数应被定义为该类的( )成员
选项:
A: 私有
B: 保护
C: 公有
D: 友元
答案: 【 公有】
2、单选题:
类的析构函数的作用是( )
选项:
A: 一般成员函数的初始化
B: 类的初始化
C: 对象的初始化
D: 对象生存期结束时作些清理工作
答案: 【 对象生存期结束时作些清理工作】
3、单选题:
在下面有关析构函数的描述中,错误的是( )
选项:
A: 析构函数的名字可以任意定义
B: 析构函数不能带有参数
C: 如果没有定义类的析构函数,系统会帮我们创建一个析构函数
D: 一个类中只能定义一个析构函数
答案: 【 析构函数的名字可以任意定义】
4、单选题:
假如A是一个类,a,b,c是它的对象,有函数A func(A aa);下列过程中没有调用拷贝构造函数的是( )
选项:
A: A a(b);
B: A a=b;
C: c=func(a);
D: b=a;
答案: 【 b=a;】
5、单选题:
假定A为一个类,则执行A a,b(5),*p;语句时,自动调用该类构造函数( )次
选项:
A: 2
B: 3
C: 4
D: 5
答案: 【 2】
6、单选题:
下面( )是正确的构造函数和析构函数的函数头部分。
选项:
A: void AA:: AA () void AA::~ AA ()
B: AA:: AA (参数列表) AA::~ AA ()
C: AA:: AA (参数列表) AA::~ AA (参数列表)
D: void AA:: AA (参数列表) void AA::~ AA (参数列表)
答案: 【 AA:: AA (参数列表) AA::~ AA ()】
7、单选题:
下面关于构造函数的说法中,不正确的是( )
选项:
A: 构造函数没有返回值
B: 默认的构造函数没有参数
C: 构造函数在对象创建时被自动调用
D: 如果类中没有定义默认构造函数,则系统会为该类生成一个默认构造函数
答案: 【 如果类中没有定义默认构造函数,则系统会为该类生成一个默认构造函数】
8、单选题:
假定A为一个类,则执行“A a1[3] , a2(0) ,*p[2] ;”语句时,自动调用该类构造函数的次数为( )。
选项:
A: 3
B: 4
C: 5
D: 6
答案: 【 4】
9、单选题:
下列说法错误的是( )
选项:
A: 系统生成的默认拷贝构造函数只能实现浅拷贝的功能
B: 如果只是对象值复制,采用系统生成的拷贝构造函数就够了
C: 如果自己不定义拷贝构造函数,系统会生成一个什么也不做的拷贝构造函数
D: 深拷贝使得不同的对象拥有不同的资源
答案: 【 如果自己不定义拷贝构造函数,系统会生成一个什么也不做的拷贝构造函数】
10、单选题:
假定A为一个类,则执行A a,b(5),*p;语句时,自动调用该类构造函数( )次
选项:
A: 2
B: 3
C: 4
D: 5
答案: 【 2】
随堂测验
1、单选题:
类的构造函数被自动调用执行的情况是在定义该类的
选项:
A: 成员函数时
B: 数据成员时
C: 对象时
D: 友元函数时
答案: 【 对象时】
2、单选题:
假定一个类的构造函数为“A(int aa=1, int bb=0) {a=aa; b=bb;}”, 则执行“A x (4);”语句后,x.a和x.b的值分别为
选项:
A: 1和0
B: 1和4
C: 4和0
D: 4和1
答案: 【 4和0】
3、单选题:
构造函数不具备的特征的是
选项:
A: 构造函数的函数名与类名相同
B: 构造函数可以重载
C: 构造函数可以设置默认参数
D: 构造函数必须指定类型说明
答案: 【 构造函数必须指定类型说明】
4、单选题:
通常,复制构造函数的参数是
选项:
A: 某个对象名
B: 某个对象的成员名
C: 某个对象的引用名
D: 某个对象的指针名
答案: 【 某个对象的引用名】
5、单选题:
下列情况中,不会调用复制构造函数的是
选项:
A: 用一个对象去初始化同一类的另一个新对象时
B: 将类的一个对象赋值给该类的另一个对象时
C: 函数的形参是类的对象,调用函数进行形参和实参相结合
D: 函数的返回值是类的对象,函数执行返回调用时
答案: 【
