【计算机类职业资格】二级C++-171及答案解析.doc
《【计算机类职业资格】二级C++-171及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-171及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+-171 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:10,分数:30.00)1.已知类 X 成功地重载了-、=、+和这几个运算符,则其中肯定属于成员函数的运算符是_。(分数:3.00)A.+和=B.和后置-C.=和D.前置-和2.在下列成对的表达式中,运算符“/”的意义相同的一对是_。(分数:3.00)A.8/3 和 8.0/3.0B.8/3.0 和 8/3C.8.0/3 和 8/3D.8.0/3.0 和 8.0/33.在重载一个运算符函数时,其参数表中没有任何参数,这说明该运算符是_。(分数:3.00)A.一元非成员运算符B.一元成员运算符C.二元非
2、成员运算符D.二元成员运算符4.如果表达式-x/y 中的“-”和“/”都是作为友元函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为_。(分数:3.00)A.operator/(x.operator-(),y)B.operator/(operator-(x),y)C.operator-().operator/(y)D.operator/(operator-(x)5.如果表达式 y*x+中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为_。(分数:3.00)A.operator+(0).operator*(y)B.oper
3、ator*(x.operator+(0),y)C.operator*(operator+(x,0)D.operator*(operator+(x,0),y)6.已知类 Myst 有一个只需要一个 double 型参数的构造函数,且将运算符“-”重载为友元函数。要使语句序列 Myst x(3.2), y(5.5), z(0.0); z=8.9-y; y=x-6.3; 能够正常运行,运算符函数 operator-应在类中声明为_。(分数:3.00)A.friend Myst operator-(MystB.friend Myst operator-(Myst, Myst);C.friend Mys
4、t operator-(Myst, MystD.friend Myst operator-(Myst7.关于关键字 class 和 typename,下列表述正确的是_。(分数:3.00)A.程序中所有的 class 都可以替换为 typenameB.程序中所有的 typename 都可以替换为 classC.A 和 B 都可以D.A 和 B 都不可以8.关于在调用模板函数时模板实参的使用,下列表述中正确的是_。(分数:3.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,
5、则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略9.关于类模板,下列表述中不正确的是_。(分数:3.00)A.类模板中声明的类称为模板类B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数10.有如下函数模板定义: templateclass T T func(T x,T y)return x*x+y*y; 在下列对 func 的调用中不正确的是_。(分数:3.00)A.func(3,5)B.func(3,5)C.func(3,5.5)D.funcint(3,5.5)二、填
6、空题(总题数:28,分数:61.00)11.类继承中,默认的继承方式是 1。 (分数:3.00)12.如果类 Alpha 继承了类 Beta,则类 Alpha 称为 1 类,类 Beta 称为 2 类。 (分数:2.00)13.对基类数据成员的初始化必须在派生类构造函数中的 1 处执行。 (分数:2.00)14.设置虚基类的目的是 1,可通过 2 标识虚基类。 (分数:2.00)15.已知下面的程序框架,按注释中的提示补充细节。 #include iostream using namespace std; class planet protected: double distance; /行星
7、距太阳的距离 int revolve; /行星的公转周期 public: planet(douhle d,int r) distance=d; revolve=r; ; class earth:public planet double circumference; /地球绕太阳公转的轨道周长 public: /定义构造函数 earth(double d,int r),并计算地球绕太阳公转的轨道周长。 /假定:circumference=2d3.1416 1 /定义 show()函数显示所有信息 2 ; int main() earth ob(9300000,365); ob.show(); r
8、eturn 0; (分数:2.00)16.多态性可分为两类: 1 和 2。 (分数:2.00)17.对虚函数的调用有两种方式: 1 和 2。 (分数:2.00)18.实现编译时多态性的机制称为 1,实现运行时多态性的机制称为 2。 (分数:2.00)19.在 C+中,编译时的多态性是通过 1 和模板体现的。 (分数:2.00)20.在 C+中,运行时的多态性是通过 1 体现的。 (分数:2.00)21.含有纯虚函数的类称为 1。 (分数:2.00)22.一个纯虚函数声明中最后三个字符是 1。 (分数:2.00)23.重载的运算符仍然保持其原来的操作数个数、优先级和 1 不变。 (分数:2.00
9、)24.经常和一个运算符连用,构成一个运算符函数名的 C+关键字是 1。 (分数:2.00)25.如果表达式 x=y*z 中的“*”是作为成员函数重载的运算符,采用运算符函数调用格式时,该表达式应表示为 1。 (分数:2.00)26.表达式 x=operator-(y,z)还可以表示为 1。 (分数:2.00)27.如果表达式-x 中的“-”是重载的类成员函数运算符,采用运算符函数调用格式时,该表达式应表示为 1。 (分数:2.00)28.表达式 operator+(x,int)还可以表示为 1。 (分数:2.00)29.下面是“复数”类 complex 的定义,其中作为友元函数重载的运算符“
10、-”的功能是将参数对象的实部减 1,然后返回对该对象的引用;请补充完整下列代码: class complex int real; /实部 int imag; /虚部 public: complex(int r=0,int i=0):real(r),imag(i) void show()coutreal(imag0?“-“:“+“)imag“i“; 1 operator-(complex ; 2 operator-(complex return 3; (分数:2.00)30.下面是“二维向量”vector2D 的定义,其中作为成员函数重载的运算符“+”的功能是将两向量的分量 x 和 y 对应相加
11、,然后返回作为相加结果的新对象;请补充完整下列代码: class vector2D double x; /x 分量 double y; /y 分量 public: vector2D (double x0=0, double y0=0):x(x0),y(y0) void show() cout“(“x“,“y“)“; vector2D operator+(vector2D); ; vector2D 1 operator+(vector2D a) return vector2D( 2); (分数:2.00)31.已知: int DBL(int n)return n+n; 和 long DBL(lo
12、ng n)return n+n; 是一个函数模板的两个实例,则该函数模板的定义是 1。 (分数:2.50)32.在下面程序横线处填上适当内容,以使该程序执行结果为: 25 24 23 22 21 0 7.5 6.4 5.3 4.2 3.1 #include iostream using namespace std; templateclass T void f( 1) 2; for(int i=0;in/2;i+) t=ai,ai=an-1-i,an-1-i=t; int main() int a5=21,22,23,24,25; double d6=3.1,4.2,5.3,6.4,7.5;
13、f(a,5);f(d,6); for(int i=0;i5;i+) coutai“; coutendl; for(i=0;i6;i+) coutdi“; Coutendl; return 0; (分数:2.50)33.在下面程序横线处填上适当内容,以使该程序执行结果为: The pair is(21,55) The pair is(21.7,85.4) #include iostream using namespace std; templateclass T class pair public: T x,y; void show() cout“The pair is(“x “,“ y“)“e
14、ndl; ; int main() 1; c1. show(); 2 c2. show(); return 0; (分数:2.50)34.有如下程序: #include iostream using namespace std; templatetypename T T total(T * data) T s=0; while(*data)s+=*data+; return s; int main() int x=2,4,6,8,0,12,14,16,18; couttotal(x); return 0; 执行上面程序的输出是 1。 (分数:2.50)35.在下面程序横线处填上适当内容,以使该
15、程序执行结果为:5.5。 #include iostream using namespace std; templatetypename T T average(T *data) T s=0; 1; ; while(datai) s+=datai+; return 2; ; int main() double x=2.5,4.5,6.5,8.5,0.0,12.5,14.5,16.5,18.5; coutaverage(x); return 0; (分数:2.50)36.在下面程序横线处填上适当内容,以使程序的输出为:9 8 7 6。 #include iostream using namesp
16、ace std; templateclass T void f( 1, 2) 3; for(int i=0;in/2;i+) t=ai,ai=an-1-i,an-1-i=t, int main() int x=6,7,8,9; f(x,4); for(int i=0;i4;i+)coutxi; return 0; (分数:2.50)37.有如下的类模板定义: template typename TYPE class MyClass TYPE n; public: MyClass(TYPE k); . ; 其中构造函数 MyClass 用 k 的值初始化数据成员 n。因此在模板类体外,构造函数
17、MyClass 应定义为 1。 (分数:2.50)38.在下面程序横线处填上适当内容,以使程序的输出为:5 5 5 9 9。 #include iostream using namespace std; templateclass TYPE class HisClass TYPE data; public: HisClass(TYPE a,TYPE bdh TYPE c); TYPE getData() return data; ; templateclass TYPE 1 HisClass(TYPE a,TYPE b,TYPE c) 2; else if(bc) data=b; else d
18、ata=c; int main() HisClassint x1(3,4 ,5),x2(5,3 ,4),x3(4,5,3),x4(7,9,8),x5(8,7,9); coutx1.gelData()x2.getData()x3.getData() x4.getData()x5.getData(); return 0; (分数:2.50)三、阅读程序题(总题数:3,分数:9.00)39.写出下列程序的运行结果。 #include iostream using namespace std; class Person public: Person() cout“Constructor of Pers
19、on“endl; Person() cout“Destructor of Person“endl; ; class Student: public Person public: Student() cout“Constructor of Student“ endl; Student() cout“Destructor of Student“endl; ; class Teacher: public Person public: Teacher() cout“Constructor of Teacher“endl; Teacher() cout“Destructor of Teacher“end
20、l; ; int main() Student s; Teacher t; return0; (分数:3.00)_40.写出下列程序的运行结果。 #include iostream using namespace std; class Data public: Data (int x) Data:x=x; cout“ Data cons. “endl; Data() cout“Data des.“endl; private: int x; ; class Base public: Base(int x) :d1(x) cout“Base cons.“endl; Base() cout“Base
21、 des.“endl; private: Data d1; ; class Derived:public Base public: Derived (int x): Base(x),d2(x) cout“Derived cons.“ endl; Derived() cout“Derived des.“endl; private: Data d2; ; int main() Derived obj(5); return0; (分数:3.00)_41.写出下列程序的运行结果。 #include iostream using namespace std; class Base public: Bas
22、e(int x,int y) a=x; b=y; void Show() cout“ Base: “a“,“bendl; private: int a.b: ; class Derived: public Base public: Derived(int x,int y,int z):Base(x,y),c(z) void Show() cout“Derived:“cendl; private: int c: ; int main() Base b(50,50),*pb; Derived d(10,20,30); pb= pb-Show(); pb= pb-Show(); return 0;
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C171 答案 解析 DOC
