欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【学历类职业资格】C++程序设计自考题模拟12及答案解析.doc

    • 资源ID:1367345       资源大小:77.50KB        全文页数:21页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【学历类职业资格】C++程序设计自考题模拟12及答案解析.doc

    1、C+程序设计自考题模拟 12 及答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分数:20.00)1.在类中声明的成员可以使用以下哪个关键字进行修饰_(分数:1.00)A.externB.autoC.regusterD.void2.下列关于构造函数的描述中,正确的是_(分数:1.00)A.构造函数不可以设置默认的参数B.构造函数不可以是内联函数C.构造函数在定义类对象时自动执行D.构造函数不可以重载3.用于表明类其后的成员函数属于这个特定类的运算符是_(分数:1.00)AB.-C.:D.void4.在定义一个派生类时,若不使用保留字显式地规定采用何种继承方

    2、法,则默认为_方式。(分数:1.00)A.公有继承B.私有继承C.保护继承D.非私有5.类对象的指针可以通过_运算符访问对象的成员。(分数:1.00)AB.-C.:D.void6.下列关于复制构造函数的说法中错误的是_(分数:1.00)A.复制构造函数是一种特殊的构造函数,函数名与类名相同B.若自定义派生类的复制构造函数,那么也必须自定义基类的复制构造函数C.复制构造函数只能有一个参数D.复制构造函数不允许在函数体中使用 return 语句7.运算符_与析构函数一起工作来删除一个动态对象。(分数:1.00)A.deleteB.cutC.clearD.cancel8.下列不属于实例连接的方式的为

    3、_(分数:1.00)A.一对一B.一对多C.多对一D.多对多9.下列关于类的描述中,错误的是_(分数:1.00)A.类是一组对象的模板B.类是抽象数据的实现C.类是数据和方法的封装体D.类是对象的实例10.下面哪个关键字不属于修饰类特殊成员函数的关键字_(分数:1.00)A.constB.volatileC.staticD.public11.下述静态成员的特性中,正确的是_(分数:1.00)A.静态成员函数可以利用 this 指针B.静态数据成员要在类体内进行初始化C.引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符D.静态数据成员不是所有对象所共有的12.下列关于静态成员函数与一

    4、般成员函数的不同点不正确的是_(分数:1.00)A.静态成员是类的成员,不是对象的成员B.静态成员的生成在建立对象之后C.静态成员函数不能被说明为虚函数D.静态成员函数不能直接访问非静态函数13.类的派生和继承是面向对象程序设计方法的重要特征之一,下面关于它的叙述正确的是_(分数:1.00)A.派生类不能访问基类的保护成员B.作为虚基类的类不能被实例化C.派生类应当向基类的构造函数传递参数D.虚函数必须在派生类中重新实现14.下面关于类模板的叙述正确的是_(分数:1.00)A.不可以通过一个类派生类模板B.可以从一个类模板派生出一个新的类模板C.类模板不支持单一继承D.类模板不可以有多个参数1

    5、5.下列关于向量的描述中,不正确的是_(分数:1.00)A.size()方法指返回当前向量中已经存放的对象的个数B.erase(iterator it)方法是删除 it 所指向的容器对象C.向量可以改变赋值目标的大小D.向量是类模板,具有成员函数,但它不可以使用构造类型16.下面关于向量和数组的叙述不正确的是_(分数:1.00)A.向量是一维数组的类版本,它与数组相似B.向量的元素项是连续存储的C.向量中存储元素的多少可以在运行中根据需要动态地增加或减少D.可以使用 length()方法获得 vector 对象当前存储元素的数量17.有如下函数模板定义: template T func(T x

    6、, T y) return x*x+y*y; 在下列对 func 的调用中,错误的是_(分数:1.00)A.func(1,2)B.func(1,1.1)C.func(1.1,2.1)D.func(1.1f,1.2f)18.关于向量最基本的操作方法,不正确的叙述是_(分数:1.00)A.max_size()方法返回向量可以容纳最多对象的个数B.pop_back()方法删除向量中最后一个对象C.operator()方法返回向量中的第 n 个对象D.clear()方法删除向量中所有对象19.下列关于模板类说法中,正确的是_(分数:1.00)A.模板类的基类不可以是非模板类B.模板类的派生类不可以是模

    7、板类C.根据建立对象时的实际数据类型,编译器把类模板实例化为模板类D.不可以从构造函数参数列表推断出模板实例化参数类型20.下列叙述不符合赋值兼容规则的是_(分数:1.00)A.派生类的对象可以赋给基类的对象B.基类的对象可以赋给派生类的对象C.派生类的对象可以初始化基类的引用D.派生类的对象的地址可以赋给指向基类的指针二、第部分 非选择题(总题数:20,分数:20.00)21.类中定义的数据和函数称为这个类的成员,即 1 和 2。 (分数:1.00)22.如果用户没有一个类定义任何构造函数,则 C+编译器自动生成一个 1 构造函数。 (分数:1.00)23.类成员的访问权限有 1、 2、 3

    8、。 (分数:1.00)24.设 A 为 Sample 类的对象且赋有初值,则语句 Sample B(A);表示 1。 (分数:1.00)25.使用关键字 1 将成员函数定义为内联函数。 (分数:1.00)26.在类内部定义的 1 和 2 数据不能被类外部的成员函数来存取;定义为 3 的数据,可以在类外部进行存取。 (分数:1.00)27.在对象消失时,应使用 1 释放由构造函数分配的内存。 (分数:1.00)28.在继承机制下,当对象消亡时,编译系统执行析构函数的顺序是 1。 (分数:1.00)29.在程序中,使用关键字 1 引用一个指向调用该函数的对象的指针。 (分数:1.00)30.已定义

    9、类 A,若要把函数 ffun()定义为类 A 的友元函数,则应在类 A 的定义中声明函数的语句为 1。 (分数:1.00)31.在多文件设计中,point.h 可能会被嵌套包含,这时候为了避免重复编译类的同一个头文件,可以使用 1。 (分数:1.00)32.友元函数可以存取类的 1。 (分数:1.00)33.当一个类要和另一个类协同工作时,使一个类成为另一个类的 1 很有用。 (分数:1.00)34.在多继承问题中,若多个基类及其派生类中都定义了同名函数成员,要访问相应函数时,就需要在函数名前加上 1 和类区分符,来避免二义性。 (分数:1.00)35.从一个或者多个以前定义的类产生新类的过程

    10、成为 1。 (分数:1.00)36.请在横线处填写正确的内容,使复制构造函数的声明完整。 class MyClass private: int num; public: MyClass(int value); /构造函数 MyClass(coast 1 another Object);/复制构造函数 ; (分数:1.00)37.常量成员包括常数据成员、静态常数据成员和 1。 (分数:1.00)38.当一个成员函数被调用时,this 指针指向当前调用该成员函数调用命令的 1。 (分数:1.00)39.对象传递的消息一般由三部分组成:接收对象名、调用操作名、 1。 (分数:1.00)40.用户为类

    11、 AB 定义了一个含两个参数的构造函数“AB(int aa, int bb=0)a=aa; b=bb“,则定义该类的对象时,其实参表中至少带有 1 个实参。 (分数:1.00)三、改错题(总题数:5,分数:20.00)41.class Sample public: static void f(Sample my); private: int n; ; void Sample:f(Sample my) coutnendl; (分数:4.00)42.class Sample int num; public: void set(int); ; int nunber=num; void Sample:

    12、set(int i) num=i; (分数:4.00)43.class B int x, y; public: void B(int m, int n); ; (分数:4.00)44.class Sample1 int x; friend class Sample2; ; class Sample2 friend class Sample3; class Sample3 void func(Samplel*p); ; void Sample3:func(A*p) p-x+; (分数:4.00)45.指出错误语句,并说明出错原因。 class base public: int x; ; clas

    13、s One: public base; class Two: public base; class Three public One, public Two public: int func 1; ; void main 2 Three p; p.base:x; (分数:4.00)四、完成程序题(总题数:5,分数:20.00)46.程序的输出结果如下: 1,2 5,6 30 请根据输出结果在下面程序中的下画线处填写正确的语句。 #includeiostream using namespace std; class M public: void Set(int i, int j)m1=i; m2

    14、=j; void Print()coutm1“, “m2endl; protected: int m1, m2; ; class N: public M public: void Set()n=m1*m2; void Print()coutnendl; private: int n; ; void main() M m; _ ; m.Print(); N n; _ ; n.M:Print(); n.Set(); n.Print(); (分数:4.00)_47.在下面横线处填上正确的内容,完成类的定义。 #includeiostream using namespace std; class Po

    15、int private: int x, y; public: Point(int=0, int=0); _/声明析构函数 ; Point:point(int a, int b):x(a), y(b) cout“Initializing“a“, “bendl; void main() Point * ptr=new Point2; Deleteptr; (分数:4.00)_48.在下面横线处填上正确的内容,完成类的定义。 class sample int x; static const int b; public: sample(int, int); const int ; _b=15; sam

    16、ple:sample(int i, int j):_ (分数:4.00)_49.类 One 的对象可以通过任意一个成员函数访问类 Two 的对象的私有数据。 #includeiostream using namespace std; class Two int y; public: _/声明 One 为 Two 的友元 ; class One int x; public: One(int a, Two x=a; r.y=b; _/可以访问类 Two 的成员的成员函数的声明 ; void One:Display(Two void main() Two Obj2; One Obj1(23, Obj

    17、2, 55); Obj1.Display(Obj2); /输出 23 55 (分数:4.00)_50.一个处理日期的类 Date,它有 3 个私有数据成员:Month,Day,Year 和若干个公有成员函数,并实现了如下要求:(1)构造函数重载;(2)成员函数设置默认参数;(3)定义一个友元函数来打印日期;(4)定义一个非静态成员函数设置日期;(5)可使用不同的构造函数来创建不同的对象。请完成下面的程序。 #includeiostream using namespace std; class Date public: Date() Year=1990; Month=1; Day=1; Date

    18、(int y, int m=1, int d=1) Year=y, Month=m; Day=d; _ void SetDate(int sy, int sm, int sd) Year=sy; Month=sm; Day=sd; private: int Month, Day, Year; ; void Print( _ ) coutobj.Year“-“obj.Month“-“obj.Dayendl; void main() Date a1, a2(2013, 7, 8), a3(2005); Print(a1); Print(a2); Print(a3); a3.SetDate(2005

    19、, 11, 28); Print(a3); (分数:4.00)_五、程序分析题(总题数:2,分数:10.00)51.给出下面程序的输出结果。 #includeiostream using naillespace std; class Base private: int a; public: void set(int x)a=x; void show()cout“a=“a“, “; ; class Sample: public Base private: int b; public: void set(int x=0)Base:set(x); b=x+10; void set(int x, in

    20、t y)Base:set(x); b=y; void show()Base:show(); cout“b=“bendl; ; void main() Sample b; Sample.set(10); Sample.show() Sample.set(30, 50); Sample.show() (分数:5.00)_52.#includeiostream using namespace std; class Base private: int x, y; const int p; public: Base(int m, int n, int d):p(d) /通过初始化列表来获得初值 x=m;

    21、 y=n; void show(); void show() const; ; void Base:show() coutx“, “y“p=“pendl; void Base:show const coutx“, “y“const p=“pendl; void main() Base a(1, 2, 3); const Base b(2, 1, 4); b.show(); a.show(); (分数:5.00)_六、程序设计题(总题数:1,分数:10.00)53.定义一个 Rectangle 类,在该类定义中包括以下数据成员:长 length,宽 width,高 height。构造函数 Rec

    22、tangle 设置长方形的长、宽和高,函数 Volume 计算并输出长方形的体积。 在 main 函数中,要求创建 Rectangle 对象,并求长方形的体积。 (分数:10.00)_C+程序设计自考题模拟 12 答案解析(总分:100.00,做题时间:90 分钟)一、第部分 选择题(总题数:20,分数:20.00)1.在类中声明的成员可以使用以下哪个关键字进行修饰_(分数:1.00)A.externB.autoC.regusterD.void 解析:考点 C+类的声明 解析 类是具有唯一标识符的实体,在类中声明的任何成员不能使用 extern、auto、register 关键字进行修饰。2.

    23、下列关于构造函数的描述中,正确的是_(分数:1.00)A.构造函数不可以设置默认的参数B.构造函数不可以是内联函数C.构造函数在定义类对象时自动执行 D.构造函数不可以重载解析:考点 构造函数 解析 构造函数可以设置默认的参数,可以是内联函数,可以重载,所以 ABD 项错误,C 项正确。3.用于表明类其后的成员函数属于这个特定类的运算符是_(分数:1.00)AB.-C.: D.void解析:考点 C+类成员函数的定义 解析 类名:成员函数名的意思是对属于“类名”的成员函数进行定义。4.在定义一个派生类时,若不使用保留字显式地规定采用何种继承方法,则默认为_方式。(分数:1.00)A.公有继承B

    24、.私有继承 C.保护继承D.非私有解析:考点 派生类默认的继承方式 解析 在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认 private(私有)方式。5.类对象的指针可以通过_运算符访问对象的成员。(分数:1.00)AB.- C.:D.void解析:考点 C+类对象指针的使用 解析 对象指针名-对象成员名,类对象指针可以访问对象的成员。6.下列关于复制构造函数的说法中错误的是_(分数:1.00)A.复制构造函数是一种特殊的构造函数,函数名与类名相同B.若自定义派生类的复制构造函数,那么也必须自定义基类的复制构造函数 C.复制构造函数只能有一个参数D.复制构造函数不允许在函

    25、数体中使用 return 语句解析:考点 复制构造函数 解析 复制构造函数是一种特殊的构造函数,函数名与类名相同,且不能指定函数返回类型;复制构造函数只有一个参数,是对同类的某个对象的引用。A、C、D 项正确。B 项错误。7.运算符_与析构函数一起工作来删除一个动态对象。(分数:1.00)A.delete B.cutC.clearD.cancel解析:考点 本题考查的知识点是析构函数和运算符 delete 解析 当使用运算符 delete 删除一个动态对象时,它首先为这个对象调用析构函数,然后再释放这个动态对象占用的内存。8.下列不属于实例连接的方式的为_(分数:1.00)A.一对一B.一对多

    26、C.多对一 D.多对多解析:考点 UML 实例连接的方式 解析 实例连接反应对象之间的静态关系,有一对一、一对多、多对多三种连接方式。9.下列关于类的描述中,错误的是_(分数:1.00)A.类是一组对象的模板B.类是抽象数据的实现C.类是数据和方法的封装体D.类是对象的实例 解析:考点 类的定义 解析 类是一组对象的模板,所有对象是类的实例,所以 D 项是错误的。10.下面哪个关键字不属于修饰类特殊成员函数的关键字_(分数:1.00)A.constB.volatileC.staticD.public 解析:考点 类的特殊成员函数 解析 函数的声明如果包含 const、volatile、stat

    27、ic 关键字,则为类的特殊函数。11.下述静态成员的特性中,正确的是_(分数:1.00)A.静态成员函数可以利用 this 指针B.静态数据成员要在类体内进行初始化C.引用静态数据成员时,要在静态数据成员名前加类名和作用域运算符 D.静态数据成员不是所有对象所共有的解析:考点 静态成员 解析 静态成员函数属于整个类,是类的所有对象共享的成员函数,它与一般成员函数不同,没有指向调用该成员函数的对象的 this 指针,A 项错误;静态数据成员的初始化应在类体外进行,B 项错误;静态数据成员是属于整个类的,因此可以不通过对象名,而直接使用类名和作用域运算符表明其所属的类即可,C 项正确;静态数据成员

    28、被类的所有对象所共享,D 项错误。12.下列关于静态成员函数与一般成员函数的不同点不正确的是_(分数:1.00)A.静态成员是类的成员,不是对象的成员B.静态成员的生成在建立对象之后 C.静态成员函数不能被说明为虚函数D.静态成员函数不能直接访问非静态函数解析:考点 静态成员函数与一般成员函数的不同点 解析 在没有建立对象之前,静态成员就已经存在,所以 B 是错误的。13.类的派生和继承是面向对象程序设计方法的重要特征之一,下面关于它的叙述正确的是_(分数:1.00)A.派生类不能访问基类的保护成员B.作为虚基类的类不能被实例化C.派生类应当向基类的构造函数传递参数 D.虚函数必须在派生类中重

    29、新实现解析:考点 继承和派生 解析 派生类可以访问基类的保护成员;抽象类不能被实例化,而作为虚基类的类能被实例化;虚函数不必在派生类中重新实现。故 A、B、D 错误,C 项说法正确。14.下面关于类模板的叙述正确的是_(分数:1.00)A.不可以通过一个类派生类模板B.可以从一个类模板派生出一个新的类模板 C.类模板不支持单一继承D.类模板不可以有多个参数解析:考点 类模板的派生与继承 解析 类模板可以继承,继承方法和普通类一样。模板类的基类和派生类都可以是模板(非模板)类,由此可以推断出,答案选择 B。15.下列关于向量的描述中,不正确的是_(分数:1.00)A.size()方法指返回当前向

    30、量中已经存放的对象的个数B.erase(iterator it)方法是删除 it 所指向的容器对象C.向量可以改变赋值目标的大小D.向量是类模板,具有成员函数,但它不可以使用构造类型 解析:考点 向量 解析 向量可以使用构造类型,它提供了四种构造函数,用来定义由各元素组成的列表,所以 D 选项有误。16.下面关于向量和数组的叙述不正确的是_(分数:1.00)A.向量是一维数组的类版本,它与数组相似B.向量的元素项是连续存储的C.向量中存储元素的多少可以在运行中根据需要动态地增加或减少D.可以使用 length()方法获得 vector 对象当前存储元素的数量 解析:考点 向量与数组的知识 解析

    31、 向量是类模板,具有成员函数,是使用 size()方法动态地获得 vector 对象当前存储元素的数量。17.有如下函数模板定义: template T func(T x, T y) return x*x+y*y; 在下列对 func 的调用中,错误的是_(分数:1.00)A.func(1,2)B.func(1,1.1) C.func(1.1,2.1)D.func(1.1f,1.2f)解析:考点 函数模板的应用 解析 函数模板 func(Tx,Ty),要求参数 x、y 为同一类型的,所以 B 项是错误的。18.关于向量最基本的操作方法,不正确的叙述是_(分数:1.00)A.max_size()

    32、方法返回向量可以容纳最多对象的个数B.pop_back()方法删除向量中最后一个对象C.operator()方法返回向量中的第 n 个对象 D.clear()方法删除向量中所有对象解析:考点 向量的基本操作方法 解析 operator(size_type,n)返回的是向量中第 n+1 个对象,即下标为 n 的向量元素。19.下列关于模板类说法中,正确的是_(分数:1.00)A.模板类的基类不可以是非模板类B.模板类的派生类不可以是模板类C.根据建立对象时的实际数据类型,编译器把类模板实例化为模板类 D.不可以从构造函数参数列表推断出模板实例化参数类型解析:考点 类模板 解析 模板实例化参数类型

    33、包括数据类型和值,编译器不能从构造函数参数列表推断出模板实例化参数类型,所以必须显式地给出对象的参数类型。20.下列叙述不符合赋值兼容规则的是_(分数:1.00)A.派生类的对象可以赋给基类的对象B.基类的对象可以赋给派生类的对象 C.派生类的对象可以初始化基类的引用D.派生类的对象的地址可以赋给指向基类的指针解析:考点 赋值兼容规则 解析 赋值兼容规则是指如下三种情况:(1)派生类的对象可以赋值给基类的对象;(2)派生类的对象可以初始化基类的引用;(3)派生类的对象的地址可以赋给指向基类的指针。二、第部分 非选择题(总题数:20,分数:20.00)21.类中定义的数据和函数称为这个类的成员,

    34、即 1 和 2。 (分数:1.00)解析:数据成员 成员函数 考点 C+类的定义 解析 类和其他数据类型不同的是,组成这种类型的不仅有数据,而且可以有对数据进行操作的函数,它们分别叫做类的数据成员和类的成员函数。22.如果用户没有一个类定义任何构造函数,则 C+编译器自动生成一个 1 构造函数。 (分数:1.00)解析:无参数的默认 考点 类的默认构造函数 解析 当没有为一个类定义任何构造函数的情况下,C+编译器总要自己建立一个不带参数的构造函数。23.类成员的访问权限有 1、 2、 3。 (分数:1.00)解析:私有 公有 保护 考点 类成员的访问权限 解析 类成员前面均有一个关键字来定义,

    35、private、public、protected 分别为私有、公有、保护。24.设 A 为 Sample 类的对象且赋有初值,则语句 Sample B(A);表示 1。 (分数:1.00)解析:用对象 A 初始化对象 B 考点 类的对象的初始化 解析 A、B Sample 类的对象,已知 A 赋有初值,初始化 B 时可令其直接等于 A 来赋值 B。25.使用关键字 1 将成员函数定义为内联函数。 (分数:1.00)解析:inline 考点 类的内联函数 解析 在声明类的同时,在类体内给出成员函数的定义,默认为内联函数。26.在类内部定义的 1 和 2 数据不能被类外部的成员函数来存取;定义为

    36、3 的数据,可以在类外部进行存取。 (分数:1.00)解析:private protected public 考点 C+类的数据成员的访问权限 解析 类中的私有数据成员和保护数据成员只能被该类的成员函数所存取,类中公有数据成员可以在类的外部进行存取。27.在对象消失时,应使用 1 释放由构造函数分配的内存。 (分数:1.00)解析:析构函数 考点 对象的析构函数 解析 析构函数会在对象生存期结束时被自动调用,由它来释放构造函数分配的内存。28.在继承机制下,当对象消亡时,编译系统执行析构函数的顺序是 1。 (分数:1.00)解析:先派生类,后派生类中子对象类,最后是基类 考点 C+类中析构函数

    37、的执行过程 解析 在对象消失时,使用析构函数释放由构造函数分配的内存,其执行过程与构造函数正好相反。构造函数的执行过程是基类,然后是派生类中子对象类,接着是派生类,所以答案与这个过程相反。29.在程序中,使用关键字 1 引用一个指向调用该函数的对象的指针。 (分数:1.00)解析:this 考点 this 指针的功能 解析 C+指针是实现封装的一种机制,它将对象和该对象调用的成员函数连接在一起。写成如下形式:this-x=a。30.已定义类 A,若要把函数 ffun()定义为类 A 的友元函数,则应在类 A 的定义中声明函数的语句为 1。 (分数:1.00)解析:friend void ffu

    38、n() 考点 C+类友元函数的定义 解析 把 void ffun()定义为类 A 的友元函数,类 A 定义如下: class A public: friend void ffun(); 31.在多文件设计中,point.h 可能会被嵌套包含,这时候为了避免重复编译类的同一个头文件,可以使用 1。 (分数:1.00)解析:条件编译 考点 在头文件中使用条件编译 解析 为了避免重复编译类的同一个头文件,不引起变量及类的重复定义,可对该头文件使用条件编译。32.友元函数可以存取类的 1。 (分数:1.00)解析:所有成员 考点 C+类的友元函数 解析 友元函数不是当前类的成员函数,是独立于当前类的外

    39、部函数,但它可以访问该类的所有成员,包括私有成员、保护成员、公共成员。33.当一个类要和另一个类协同工作时,使一个类成为另一个类的 1 很有用。 (分数:1.00)解析:友元 考点 将一个类说明为另一个类的友元 解析 设计两个类为友元类,可以有效地解决两个类之间的协作问题。34.在多继承问题中,若多个基类及其派生类中都定义了同名函数成员,要访问相应函数时,就需要在函数名前加上 1 和类区分符,来避免二义性。 (分数:1.00)解析:类名 考点 C+派生类与基类中二义性的问题 解析 程序设计过程中,一定要注意避免定义的二义性,可以使用作用域分辨运算符“:”和类名限定解决二义性。35.从一个或者多

    40、个以前定义的类产生新类的过程成为 1。 (分数:1.00)解析:派生 考点 派生的基本概念 解析 类的派生是面向对象程序设计方法重要的特征。由一个或者多个基类产生新类的过程称为派生,这个新类称为派生类。36.请在横线处填写正确的内容,使复制构造函数的声明完整。 class MyClass private: int num; public: MyClass(int value); /构造函数 MyClass(coast 1 another Object);/复制构造函数 ; (分数:1.00)解析:MyClass b=bb“,则定义该类的对象时,其实参表中至少带有 1 个实参。 (分数:1.00

    41、)解析:1 考点 C+中构造函数的定义和使用方法 解析 用户为类 AB 定义的构造函数是一个带有两个参数的,并使用初始化列表的形式在函数体内定义,所以定义该类的对象时,其实参表中至少带有 1 个实参。三、改错题(总题数:5,分数:20.00)41.class Sample public: static void f(Sample my); private: int n; ; void Sample:f(Sample my) coutnendl; (分数:4.00)解析:void Sample:f(Sample my)coutmy.nendl; 考点 C+成员函数中私有数据成员的引用 解析 成员

    42、函数 f(Sample)的实现中对私有数据成员 n 的引用方式不正确。42.class Sample int num; public: void set(int); ; int nunber=num; void Sample:set(int i) num=i; (分数:4.00)解析:int number=num; 考点 类的作用域 解析 在类作用域中声明的标识符只在类中可见。43.class B int x, y; public: void B(int m, int n); ; (分数:4.00)解析:void B(int m, int n)改为 B(int m, int n) 考点 C+构

    43、造函数的定义 解析 C+在定义构造函数时不能指定返回类型,即使是 void 类型也不可以。44.class Sample1 int x; friend class Sample2; ; class Sample2 friend class Sample3; class Sample3 void func(Samplel*p); ; void Sample3:func(A*p) p-x+; (分数:4.00)解析:语句p-x+;出错( 考点 友元函数的使用 解析 友元关系不可传递,类 Sample3 不是类 Sample1 的友元,不能访问 Sample1 的成员。45.指出错误语句,并说明出错

    44、原因。 class base public: int x; ; class One: public base; class Two: public base; class Three public One, public Two public: int func 1; ; void main 2 Three p; p.base:x; (分数:4.00)解析:语句 p.base:x,出错,出现二义性 考点 基类成员访问的二义性 解析 因为类 Three 公有派生类 One 和类 Two,类 One 和类 Two 中均有成员 x,难以区分调用哪一个类。四、完成程序题(总题数:5,分数:20.00)46.程序的输出结果如下: 1,2 5,6 30 请根据输出结果在下面程序中的下画线处填写正确的语句。 #includeiostream using namespace std; class M public: void Set(int i, int j)m1=i; m2=j; void Print()coutm1“, “m2endl; protected: int m1, m2; ; class N: public M public: void Set()n=m1*m2; void Print()coutnendl; private: int n


    注意事项

    本文(【学历类职业资格】C++程序设计自考题模拟12及答案解析.doc)为本站会员(fuellot230)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开