筷尉圃尖同隆锋纹劲逼肝呻斜
第一章 从 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;
6、 下面说法正确的是:
A:多个重载函数的参数个数必须不同。
B:两个函数,参数表相同,返回值类型不同,它们是重载关系。
C:调用一个第二个和第三个参数都有有缺省值的函数时,可以不写第二个实参而写第三个实参。
D:使用内联函数的目的是提高程序的运行速度。
答案: 使用内联函数的目的是提高程序的运行速度。
7、 简单的swap 通过码是 ( 请参考公告中的“关于编程作业的说明”完成编程作业(请注意,编程题都要求提交通过码,在openjudge上提交了程序并且通过以后,就可以下载到通过码。)
答案: ad084c8f0745edc6e62e9433c585ad40e36426850567b44fc641c739b6ec20f2
8、 难一点的swap的通过码是
答案: 506381cba28275b2732b85d667220833ef5b4b74ffae84faaa25cf018825df72
9、 好怪异的返回值 通过码是
答案: 550eee0df71f49807310dd8d99619923de82a03bf078ab6da110192ab6234893
10、 神秘的数组初始化 通过码是
答案: 118a291303063da9ed56bbbf89498d3dfd0e0c5b57e85c634b1edac5ae0ce640
第二章类和对象基础 第二章测验
1、 有类A如下定义:class A { int v; public: A ( int n) { v = n; }};下面哪条语句是编译不会出错的?
A:A) A a = new A();
B:B) A a2;
C:C) A * p = new A();
D:D) A a1(3);
答案: D) A a1(3);
2、 假设 A 是一个类的名字,下面的语句生成了几个类A的对象?A * arr[4] = { new A(), NULL,new A() };
A:A) 1
B:B) 2
C:C) 3
D:D) 4
答案: B) 2
3、 假设A 是一个类的名字,下面哪段程序不会用到A的复制构造函数?
A:A) A a1,a2; a1 = a2;
B:B) void func( A a) { cout << “good” << endl; }
C:C) A func( ) { A tmp; return tmp; }
D:D) A a1; A a2(a1);
答案: A) A a1,a2; a1 = a2;
4、 类A定义如下:class A { int v; public: A(int i) { v = i; } A() { }};下面哪段程序不会引发类型转换构造函数被调用?
A:A) A a1(4)
B:B) A a2 = 4;
C:C) A a3; a3 = 9;
D:D) A a1,a2; a1 = a2;
答案: D) A a1,a2; a1 = a2;
5、 假设A是一个类的名字,下面的程序片段会调用类A的调用析构函数几次? int main() { A * p = new A[2]; A * p2 = new A; A a; delete [] p;}
A:A) 1
B:B) 2
C:C) 3
D:D) 4
答案: C) 3
6、 学生信息处理程序 通过码
答案: 764bac47336c8a317d06f4bb0810e521dceda240038ace10a7bd0f620223f2b2
7、 奇怪的类复制 通过码
答案: 5329e5a40d42660a196f82e7e85df0f5ed6934b07997ae31cfb3b5377c0c34c2
8、 超简单的复数类 通过码
答案: aa9d54dc2c83fa8679947502aeef44a58bf2b436cab551547369ed0704d8e22e
9、 哪来的输出 通过码
答案: e248fdecd84dbc7d59521d00c6ac649c4081a7d2dac39d1b8193bb3896faa17f
第三章 类和对象提高 第三章测验
1、 1) 以下说法不正确的是:
A:A) 静态成员函数中不能使用this指针
B:B) this指针就是指向成员函数所作用的对象的指针
C:C) 每个对象的空间中都存放着一个this指针
D:D) 类的非静态成员函数,真实的参数比所写的参数多1
答案: C) 每个对象的空间中都存放着一个this指针
2、 2) 下面说法哪个不正确?
A:A) 静态成员函数内部不能访问同类的非静态成员变量,也不能调用同类的非静态成员函数
B:B) 非静态成员函数不能访问静态成员变量
C:C) 静态成员变量被所有对象所共享
D:D) 在没有任何对象存在的情况下,也可以访问类的静态成员
答案: B) 非静态成员函数不能访问静态成员变量
3、 3) 以下说法正确的是:
A:A) 成员对象都是用无参构造函数初始化的
B:B) 封闭类中成员对象的构造函数先于封闭类的构造函数被调用
C:C) 封闭类中成员对象的析构函数先于封闭类的析构函数被调用
D:D) 若封闭类有多个成员对象,则它们的初始化顺序取决于封闭类构造函数中的成员初始化列表
答案: B) 封闭类中成员对象的构造函数先于封闭类的构造函数被调用
4、 4) 以下关于友元的说法哪个是不正确的?
A:A) 一个类的友元函数中可以访问该类对象的私有成员
B:B) 友元类关系是相互的,即若类A是类B的友元,则类B也是类A的友元
C:C) 在一个类中可以将另一个类的成员函数声明为友元
D:D) 类之间的友元关系不能传递
答案: B) 友元类关系是相互的,即若类A是类B的友元,则类B也是类A的友元
5、 返回什么才好呢 通过码
答案: 4acb5524346477b82ddef8e595af3123961e13d23df0f6ef0c4e6cd5f560e000
6、 Big & Base 封闭类问题 通过码
答案: b2f86beb7e25c4c625fbd617a515138b8daa5f623e1e554f6fcc47094ea1be19
7、 编程填空:统计动物数量 通过码
答案: 3bb7b13bb30f0e6fc84a08bc0908ce2165a935bf2f68c5d444eab75e600a5b96
8、 这个指针哪来的 通过码
答案: 7c66fc3fb76b418b6294226e8f822ceaaa1e6fb6a90c1785540a6a08c3dbad63
9、 魔兽世界之一:备战 通过码
答案: 9dbd14ed27b8fe7a4f5d2f2859e67b587636d3f08feec5e9249966b5f272e419
第四章 运算符重载 第四章测验
1、 1)如果将 [ ] 运算符重载成一个类的成员函数,则该重载函数有几个参数?
A:A) 0
B:B) 1
C:C) 2
D:D) 3
答案: B) 1
2、 2)以下说法正确的是:
A:A) 成员对象都是用无参构造函数初始化的
B:B) 封闭类中成员对象的构造函数先于封闭类的构造函数被调用
C:C) 封闭类中成员对象的析构函数先于封闭类的析构函数被调用
D:D) 若封闭类有多个成员对象,则它们的初始化顺序取决于封闭类构造函数中的成员初始化列表
答案: B) 封闭类中成员对象的构造函数先于封闭类的构造函数被调用
3、 3)重载“<<”用于将自定义的对象通过cout输出时,以下说法哪个是正确的?
A:A) 可以将”<<“重载为 ostream 类的成员函数,返回值类型是 ostream &
B:B) 可以将”<<“重载为全局函数,第一个参数以及返回值,类型都是 ostream
C:C) 可以将”<<“重载为全局函数,第一个参数以及返回值,类型都是 ostream &
D:D) 可以将”<<“重载为 ostream 类的成员函数,返回值类型是 ostream
答案: C) 可以将”<<“重载为全局函数,第一个参数以及返回值,类型都是 ostream &
4、 4)如何区分自增运算符重载的前置形式和后置形式?
A:A) 重载时,前置形式的函数名是 ++ operator,后置形式的函数名是 operator ++
B:B) 后置形式比前置形式多一个 int 类型的参数
C:C) 无法区分,使用时不管前置形式还是后置形式,都调用相同的重载函数
D:D) 前置形式比后置形式多了一个int类型的参数
答案: B) 后置形式比前置形式多一个 int 类型的参数
5、 MyString 通过码
答案: 0c64189acb331891a4a8652433504ee0cc58c42da98ea6309a47aaa3092ac790
6、 看上去好坑的运算符重载 通过码
答案: 41916d07de4080ddb57297cf63b3c5f36284ba73c75847279bcd1ba1a44f3cf5
7、 惊呆!Point竟然能这样输入输出
答案: 3d6112c53792b94f07aba07282d3b819ae1b64124a4f4354f7fc2155e8fe6900
8、 第四周程序填空题3
答案: 25286dd03f7e6aeee27edd2082907babbedb823230ecb1204287bee3e460cda3
9、 别叫,这个大整数已经很简化了! 通过码
答案: f90d8aac33921ccb14c73552af7a0918d2c9243674b465f5049c53b65a2d4c33
如需购买完整答案,请点击下方红字:
点击这里,购买完整答案
获取更多中国大学慕课答案,请点击这里,进入mooc.mengmianren.com
肉坊衰朗挛镣碉苹拼耿缺订芯