MOOC 面向对象程序设计(C++)-01-齐光磊(北京邮电大学世纪学院)1450912164 最新慕课完整章节测试答案
第一周 从 C 到C++
第一周 测验
1、单选题:
下面程序片段哪个没错?
选项:
A: int n = 4; int & r = n * 5;
B: int n = 6; const int & r = n; r = 7;
C: int n = 8; const int & r1 = n; int & r2 = r1;
D: int n = 8; int & r1 = n; const int r2 = r1;
答案: 【 int n = 8; int & r1 = n; const int r2 = r1;】
2、单选题:
下面程序片段输出结果是什么? int a = 1,b = 2; int & r = a; r = b; r = 7; cout << a << endl;
选项:
A: 1
B: 2
C: 7
D: 8
答案: 【 7】
3、单选题:
下面说法哪种是对的?
选项:
A: 常引用所引用的变量,其值不能被修改
B: 不能通过常量指针,去修改其指向的变量
C: 常量指针一旦指向某个变量,就不能再指向其他变量
D: 1+1 = 3
答案: 【 不能通过常量指针,去修改其指向的变量】
4、单选题:
表达式 “new int”的返回值类型是:
选项:
A: int
B: int *
C: int &
D: void
答案: 【 int *】
5、单选题:
下面小段程序,哪个是正确的:
选项:
A: char * p = new char[10]; p[0] = 'K'; delete [] p;
B: int *p = new int[25]; p[10] = 100; delete p
C: char * p = new int; p = 'a'; delete p;
D: int * p = new char[20];
答案: 【 char * p = new char[10]; p[0] = 'K'; delete [] p;】
第二周 类和对象基础
第二周测验
1、单选题:
下列字符串中可以用作C++标识符的是
选项:
A: A: 2009var
B: B: goto
C: C: test-2009
D: D: _123
答案: 【 D: _123】
2、单选题:
下列字符串常量中,错误的表示是( )。
选项:
A: A: ""Yes" or"No" "
B: B: "abcdn"
C: C: ′ABC′
D: D: "tOK!"
答案: 【 C: ′ABC′】
3、单选题:
关于C++和c 语言的描述中,错误的是__________。
选项:
A: A: C 语言是C++的一个子集
B: B: C 语言和C++是兼容的
C: C: C++对C 语言进行了一些改进
D: D: C 语言和C++都是面向对象的
答案: 【 D: C 语言和C++都是面向对象的】
4、单选题:
关于源程序中注释部分的说法,___________是正确的。
选项:
A: A: 注释参加编译,出现在目标程序中
B: B: 注释参加编译,但不出现在目标程序中
C: C: 注释不参加编译,但出现在目标程序中
D: D: 注释不参加编译,也不出现在目标程序中
答案: 【 D: 注释不参加编译,也不出现在目标程序中】
5、单选题:
C++源程序文件的扩展名为 。
选项:
A: A: .CPP
B: B: .C
C: C: .DLL
D: D: .EXE
答案: 【 A: .CPP】
第三周 类和对象提高
第三周测验
1、单选题:
在面向对象程序设计中,实现信息隐蔽是靠__________。
选项:
A: 对象的继承
B: 对象的封装
C: 对象的分类
D: 对象的多态
答案: 【 对象的封装】
2、单选题:
有关类与对象的说法不正确的是______。
选项:
A: 类是同类对象的定义
B: 对象是类的具体化实例
C: 类包含对象的具体属性值
D: 类包含同类对象的属性名
答案: 【 类包含对象的具体属性值】
3、单选题:
下面有关类与对象的说法中,错误的是________。
选项:
A: 对象是类的实例
B: 一个对象只能属于一个具体的类
C: 一个类只能有一个对象
D: 类和对象的关系与数据类型和变量的关系相似
答案: 【 一个类只能有一个对象】
4、单选题:
设有以下类和对象的定义:</p>class A</p>{</p>public:</p> intk;</p>};</p>A x1,x2,*p1,*p2;</p>则下面针对成员变量k 的引用,正确的是( )。</p>
选项:
A: x1->k=1;
B: x2.k=2;
C: p1.k=3;
D: (*p2)->k=4;
答案: 【 x2.k=2;】
5、单选题:
设MClass 是一个类,有以下定义:MClass dd,*pp=ⅆ则指针变量pp 可以通过( )访问对象dd 的成员。</p>
选项:
A: ∷
B: .
C: &
D: ->
答案: 【 ->】
第四周 运算符重载
第七周测验
1、单选题:
下面对于友元函数描述正确的是( )。
选项:
A: 友元函数的实现必须在类的内部定义
B: 友元函数是类的成员
C: 友元函数破坏了类的封装性和隐藏性
D: 友元函数不能访问类的私有成员
答案: 【 友元函数破坏了类的封装性和隐藏性】
2、单选题:
下面对静态数据成员的描述中,正确的是( )。
选项:
A: 静态数据成员可以在类体内进行初始化
B: 静态数据成员不可以在类体内进行初始化
C: 静态数据成员不能受private 控制符的作用
D: 静态数据成员不可以直接用类名调用
答案: 【 静态数据成员不可以在类体内进行初始化】
3、单选题:
关于友元的描述中,( )是错误的。
选项:
A: 友元函数是成员函数,它被说明在类体内</p>
B: 友元函数可直接访问类中的私有成员</p>
C: 友元函数破坏封装性,使用时尽量少用</p>
D: 友元类中的所有成员函数都是友元函数</p>
答案: 【 友元函数是成员函数,它被说明在类体内</p>】
4、单选题:
若要把函数void f()定义为类aClass 的友元函数,则应该在类aClass定义中加入的语句是()。
选项:
A: void f()
B: static void f()
C: friend f()
D: friend void f()
答案: 【 friend void f()】
5、单选题:
关于友元,下列说法正确的是( )。
选项:
A: a 类为 b 类的友元类,则 a 类中的所有函数就可以访问 b 类中的所有成员
B: 友元函数的定义在类体中
C: 友元只能是类
D: 友元只能是函数
答案: 【 a 类为 b 类的友元类,则 a 类中的所有函数就可以访问 b 类中的所有成员】
6、填空题:
在面向过程的程序设计中,程序功能模块由函数实现;在面向对象的程序设计中,程序模块由 ()实现。
答案: 【 类】
7、填空题:
在 C++中定义类时,通常用()描述对象的特征,利用成员函数(方法)描述对象的行为或功能。
答案: 【 数据成员##%_YZPRLFH_%##成员变量】
8、填空题:
可存储小数的基本数据类型为()和双精度实型。
答案: 【 单精度实型##%_YZPRLFH_%##float】
9、填空题:
变量的基本类型有()、实型、字符型和枚举型。
答案: 【 整型】
10、填空题:
VC++源程序文件的扩展名为(),可执行程序的扩展名为exe
答案: 【 cpp##%_YZPRLFH_%##.cpp】
11、填空题:
字符和字符串常数的定界符分别为()和双引号(")。(注意:使用中文答案)
答案: 【 单引号】
12、填空题:
Visual C++6.0 的集成开发环境(IDE)集编辑、()、链接和调试运行于一体。
答案: 【 编译】
13、填空题:
当一个对象定义时,C++编译系统自动调用()建立该对象并进行初始化。
答案: 【 构造函数】
14、填空题:
如果不做特殊说明,类成员的默认访问权限是()。
答案: 【 私有##%_YZPRLFH_%##private】
15、填空题:
当一个对象的生命周期结束时,C++编译系统自动调用()撤销该对象并进行清理工作。
答案: 【 析构函数】
第九周测验
1、单选题:
将运算符重载为类成员函数时,其参数表中没有参数,说明该运算符是
选项:
A: 不合法的运算符
B: 一元运算符
C: 无操作数的运算符
D: 二元运算符
答案: 【 一元运算符】
2、单选题:
下列关于运算符函数的描述中,错误的是( )。
选项:
A: 运算符函数的名称总是以operator 为前缀
B: 运算符函数的参数可以是对象
C: 运算符函数只能定义为类的成员函数
D: 在表达式中使用重载的运算符相当于调用运算符重载函数
答案: 【 运算符函数只能定义为类的成员函数】
3、单选题:
运算符重载时不需要保持的性质是
选项:
A: 操作数个数
B: 操作数类型
C: 优先级
D: 结合性