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

    【计算机类职业资格】二级C++分类模拟281及答案解析.doc

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

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

    【计算机类职业资格】二级C++分类模拟281及答案解析.doc

    1、二级 C+分类模拟 281 及答案解析(总分:73.00,做题时间:90 分钟)一、选择题(总题数:40,分数:73.00)1.有如下程序: #includeiostream using namespace std; class A public: A(int i) x=i; void dispa() coutx“,“; private: int x; ; class B: public A public: B(int i): A(i+10) x=i; void dispb() dispa(); coutxendl; private: int x; ; int main() B b(2); b

    2、. dispb(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.10, 2B.12, 10C.12,2D.2, 22.若有以下程序: #include iostream using namespace std; class point private: int x, y; public: point ( ) x=0; y=0; void setpoint(int x1,int y1) x=x1; y=y1; void dispoint () cout“x=“x“ , “y=“yend1; ; int main ( ) point *p=new point; p-se

    3、tpoint (5, 12); p-dispoint (); return 0; 程序运行后的输出结果是( )。(分数:1.00)A.x=12,y=12B.x=5,y=5C.x=12,y=5D.x=5,y=123.下面程序的运行结果是_。 #includeiostream.h class base protected: int a: public: base()cout“0“; ; class base1:virtual base public: base1()cout“1“; ; class base2:virtual basc public: base2()cout“2“; ; class

    4、 derived: public base1,public base2 public: derived()cout“3“; ; void main() derived obj; coutendl; (分数:1.00)A.0123B.3120C.0312D.30124.下列叙述中正确的是_。(分数:2.50)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构5.下列关于模板的叙述中,错误的是_。(分数:2.00)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义D.类模板的实例是一个类对象6.为了

    5、提高函数调用的实际运行速度,可以将较简单的函数定义为_。(分数:2.50)A.内联函数B.重载函数C.递归函数D.函数模板7.有如下程序: #includeiostream using namespace gtd; class Sample public: Sample() Sample()cout“*“; ; int main() Sample temp2,*pTemp2; return 0; 运行这个程序输出星号*的个数为_。(分数:1.00)A.1B.2C.3D.48.执行语句:coutsetfill(“*“)setw(10)setfill(“#“)left123“OK“endl;ret

    6、urn 0;)后将输出 _ 。(分数:2.00)A.123*OKB.123#OKC.123*OK*D.123#OK#9.执行下列语句序列: int i=0;while(125)i+=3;couti; 输出结果是_。(分数:1.00)A.24B.25C.27D.2810.将 E-R 图转换为关系模式时,实体和联系都可以表示为_。(分数:2.00)A.属性B键C.关系D域11.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if

    7、(a=0) ) B.语句部分可以是一个 if 语句,例如 if()if() C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while() 12.关于运算符重载,下列表述中正确的是_。(分数:1.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符13.以下 _ 特征不是面向对象思想中的主要特征。(分数:2.00)A.多态B.继承C.封装D.垃圾回收14.已知类模板 Test 定义如下:

    8、templatetypename T1, typename T2 Class Test public: void foo(T2 t); ; 则以下针对 foo 函数的类外定义中语法正确的是_。(分数:2.50)A.templatetypename T1, typename T2void Test:fooT2(T2 t)B.templatetypename T1, typename T2void Test:fooT1, T2(T2 t)C.templatetypename T1, typename T2void TestT2:foo(T2 t)D.templatetypename T1, typ

    9、ename T2void TestT1, T2:foo(T2 t)15.有如下程序: #includeiostream Using namespace std; Class Amount int amount; public; Amount(int n=0):amount(n) Int getAmount()constreturn amount; Amount return ; ; int main() Amount x(3),y(7); x+=y; coutx.getAmount()endl; return 0; 已知程序的运行结果是 10,则下划线处缺失的表达式是_。(分数:2.00)A.

    10、*thisB.thisC. 下列语句中输出结果不是 2 的是_。(分数:2.00)A.cout*arr+1endl;B.cout*(arr+1)endl;C.coutarr1endl;D.cout*arrendl;18.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是_。(分数:2.50)A.整型表达式B.整型常量C.整型常量或整型表达式D.任何类型的表达式19.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:1.00)A.5B.6C.7D.820.已知在一个类体中包含如下函数原型:VOLUME operator-(V

    11、OLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:3.00)A.这是运算符-的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值21.关于类模板,下列表述中不正确的是 _ 。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只能有虚拟类型参数D.用类模板定义一个对象时,不能省略实参22.数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(分数:2.50)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段23

    12、.下面关于虚函数的描述中正确的是_。(分数:1.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型24.下列程序的输出结果是 _ 。 #includeiostream.h main() int m=5; if(m+5) coutm; else coutm-; (分数:2.00)A.7B.6C.5D.425.有如下程序: #includeiostream using namespace std; class Sample friend long fun(Sample s)

    13、; public: Sample(long a)x=a; private: long x; ; long fun(Sample s) if(s.x2)return 1: return s.x*fun(Sample(s.x-1): int main() int sum=0; for(int i=0;i6;i+)sum+=fun(Sample(i); coutsum; return 0; 运行时输出的结果是_。(分数:2.00)A.120B.16C.154D.3426.有如下程序: #includeiostream using namespace std; class Point public:

    14、static int number; public: Pointonumber+; Point()number-;) ; int Point:number-0; void mainO Point*ptr; PointA,B; Point*ptr_point=new Point3; ptx=ptr_point; Point C; Gout+Point:number+endl; deleteptr; 运行时输出的结果是_。(分数:2.00)A.3B.4C.6D.727.下列有关类成员的叙述中,正确的是_。(分数:2.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须

    15、声明为公有的D.类的静态数据成员不能是常成员28.下列有关类成员的叙述中,正确的是_。(分数:1.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员29.下列选项中,错误的 C+表达式是_。(分数:2.00)A.a+B.“b“=10C.double(3/5)D.x+!=3|y30.下面关于虚函数的描述,错误的是(分数:1.00)A.在成员函数声明的前面加上 virtual 修饰,就可把该函数声明为虚函数B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数C.虚函数可以是另一个类的友元函数,但不能是静态成员函数

    16、D.基类中说明的纯虚函数在其任何派生类中都必须实现31.下面程序的运行结果是 _。 #includeiostream.h class A public virtual、() cout”call A: A()”end1; ; class B:public A B(int i)p=new chari: -B() delete)p; Cout”call B: B()”; ; void main() A*a=new B(8); Delete a; (分数:2.00)A.call B: B()B.call B: B()C.call A:A()D.call A:A()32.下列叙述中错误的是_。(分数:2

    17、.50)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX 是合法的宏定义命令行D.C 程序中预处理命令行的处理是在程序执行的过程中进行的33.对于常成员函数,下面描述正确的是_。(分数:2.50)A.常成员函数只能修改常数据成员B.常成员函数只能修改一般数据成员C.常成员函数不能修改任何数据成员D.常成员函数只能通过常对象调用34.对 C+编译器区分重载函数无任何意义的信息是_。(分数:1.00)A.参数类型B.参数个数C.返回值类型D.常成员函数关键字 const35.设置虚基类的目的是 _ 。(分数:1.00)A.简化程

    18、序B.消除二义性C.提高运行效率D.减少目标代码36.软件详细设计产生的图如下: (分数:2.50)A.N-S 图B.PAD 图C.程序流程图D.E-R 图37.与语句“coutendl;”不等价的是_。(分数:2.50)A.cout“n“B.cout“/12“C.cout“/xA“D.cout“/0“38.有如下程序: # includc iostream using namespace std; class Test public: Test() Test(const Testt)cout1; ; Test fun(Testu)Test t=u;return t; int main()Te

    19、st x,y;x=fun(y);return 0; 运行这个程序的输出结果是_。(分数:2.50)A.无输出B.1C.11D.11139.下列叙述中正确的是(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队尾指针共同决定的40.有如下程序: int x =3; do x- =2; cout x; while(! (-x); 执行这个程序的输出结果是 _ 。(分数:1.00)A.1B.30C.1-2D.

    20、死循环二级 C+分类模拟 281 答案解析(总分:73.00,做题时间:90 分钟)一、选择题(总题数:40,分数:73.00)1.有如下程序: #includeiostream using namespace std; class A public: A(int i) x=i; void dispa() coutx“,“; private: int x; ; class B: public A public: B(int i): A(i+10) x=i; void dispb() dispa(); coutxendl; private: int x; ; int main() B b(2);

    21、 b. dispb(); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.10, 2B.12, 10C.12,2 D.2, 2解析:解析 本题考查派生类的构造函数和基类的构造函数。本题中类 B 继承类 A,定义了一个类 B 的对象并初始化 b(2),此时会执行类 B 的构造函数,执行的结果是继承类 A 中的私有成员赋值了 12,给类B 自身的数据成员 x 赋值了 2,执行 b. dispb()后,输出类 A 的私有成员 x,输出类 B 自身的数据成员,所以答案为 C。2.若有以下程序: #include iostream using namespace std; clas

    22、s point private: int x, y; public: point ( ) x=0; y=0; void setpoint(int x1,int y1) x=x1; y=y1; void dispoint () cout“x=“x“ , “y=“yend1; ; int main ( ) point *p=new point; p-setpoint (5, 12); p-dispoint (); return 0; 程序运行后的输出结果是( )。(分数:1.00)A.x=12,y=12B.x=5,y=5C.x=12,y=5D.x=5,y=12 解析:解析 本题考核对象指针的定义与

    23、使用。分析程序: 程序首先定义一个类 point,类 point 中有两个私有成员,整型变量 x 和 y,还有两个公有成员函数setpoint(int x1,int y1)和 dispoint()。函数 setpoint()用来设置私有成员 x 和 y 的值,而函数dispoint()用来显示私有成员 x 和 y 的值。 主函数中,首先定义了类 point 的指针对象 p,并申请了内存空间,然后调用对象 p 中公有成员 setpoint给对象 p 中的私有成员 x 和 y 赋值,然后调用成员函数 dispoint 显示 x 和 y 的值。 由此可知,最后输出的值应该是 5,12。3.下面程序的

    24、运行结果是_。 #includeiostream.h class base protected: int a: public: base()cout“0“; ; class base1:virtual base public: base1()cout“1“; ; class base2:virtual basc public: base2()cout“2“; ; class derived: public base1,public base2 public: derived()cout“3“; ; void main() derived obj; coutendl; (分数:1.00)A.01

    25、23 B.3120C.0312D.3012解析:解析 本题考查的是含有虚基类的继承中构造函数的调用顺序,应该先调用基类的构造函数,接着是按照派生类继承列表的顺序依次调用虚基类的构造函数,最后调用派生类自己的构造函数。4.下列叙述中正确的是_。(分数:2.50)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析 分析:线性表是一个线性结构。数据元素在线性表中的位置只取决于它们自己的序号。栈是限定在一端进行插入与删除的线性表。队列是指允许在一端进行插入、而在另一端进行删除的线性表。链式存储方式既可用于表示线性结构,也可用于表示非线性结构。树是一种简

    26、单的非线性结构。5.下列关于模板的叙述中,错误的是_。(分数:2.00)A.调用模板函数时,有时可以省略模板实参B.函数模板的每个实例就是一个函数定义C.类模板的每个实例就是一个类定义D.类模板的实例是一个类对象 解析:解析 在定义对象的过程中,编译系统会自动地根据需要生成相应的类定义,这种依据类模板生成类定义的过程称为类模板的实例化。类模板实例化所生成的每一个类定义就是相应类模板的一个实例。6.为了提高函数调用的实际运行速度,可以将较简单的函数定义为_。(分数:2.50)A.内联函数 B.重载函数C.递归函数D.函数模板解析:7.有如下程序: #includeiostream using n

    27、amespace gtd; class Sample public: Sample() Sample()cout“*“; ; int main() Sample temp2,*pTemp2; return 0; 运行这个程序输出星号*的个数为_。(分数:1.00)A.1B.2 C.3D.4解析:解析 本题考查构造函数和析构函数,题中定义了对象数组,那么析构时就析构两次,输出两个*。答案为 B。8.执行语句:coutsetfill(“*“)setw(10)setfill(“#“)left123“OK“endl;return 0;)后将输出 _ 。(分数:2.00)A.123*OKB.123#OK

    28、 C.123*OK*D.123#OK#解析:9.执行下列语句序列: int i=0;while(125)i+=3;couti; 输出结果是_。(分数:1.00)A.24B.25C.27 D.28解析:解析 本题考查循环语句 while 的使用。i 为 3 的倍数,当 i=24 时,i25,执行 while 的循环体 i+=3,则 i=27,不满足 i25 的条件,结束循环。10.将 E-R 图转换为关系模式时,实体和联系都可以表示为_。(分数:2.00)A.属性B键C.关系 D域解析:解析 从 E-R 图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R 图中属性也可以转换成关系

    29、的属性。11.if 语句的语法格式可描述为: 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1else语句 2 关于上面的语法格式,下列表述中错误的是_。(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0) ) B.语句部分可以是一个 if 语句,例如 if()if() C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while() 解析:解析 此题考查的是 if 语句。If 语句的条件部分是一个表达式而不是语句,因此选项 A 叙述错误。12.关于运算符重载,下列表述中正确的是

    30、_。(分数:1.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型 D.可以通过运算符重载来创建 C+中原来没有的运算符解析:解析 重载运算符的规则如下:C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载;C+不能重载的运算符只有 5 个;重载不能改变运算符运算对象的个数;重载不能改变运算符的优先级和结合性;重载运算符的函数不能有默认的参数;重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C+的标准类型。故本题答案为C。13.以下 _ 特征不是面向对

    31、象思想中的主要特征。(分数:2.00)A.多态B.继承C.封装D.垃圾回收 解析:14.已知类模板 Test 定义如下: templatetypename T1, typename T2 Class Test public: void foo(T2 t); ; 则以下针对 foo 函数的类外定义中语法正确的是_。(分数:2.50)A.templatetypename T1, typename T2void Test:fooT2(T2 t)B.templatetypename T1, typename T2void Test:fooT1, T2(T2 t)C.templatetypename T

    32、1, typename T2void TestT2:foo(T2 t)D.templatetypename T1, typename T2void TestT1, T2:foo(T2 t) 解析:解析 本题考查的是类外部定义的成员函数额相关知识。声明一个函数模板的格式是: template模板形参表函数声明 类外部定义的成员函数的一般格式是: 返回类型类名:成员函数名(参数表) 函数体 根据公式,可以判断应该选择 D。15.有如下程序: #includeiostream Using namespace std; Class Amount int amount; public; Amount(i

    33、nt n=0):amount(n) Int getAmount()constreturn amount; Amount return ; ; int main() Amount x(3),y(7); x+=y; coutx.getAmount()endl; return 0; 已知程序的运行结果是 10,则下划线处缺失的表达式是_。(分数:2.00)A.*this B.thisC. 下列语句中输出结果不是 2 的是_。(分数:2.00)A.cout*arr+1endl;B.cout*(arr+1)endl;C.coutarr1endl;D.cout*arrendl; 解析:18.在 C 语言中

    34、,引用数组元素时,其数组下标的数据类型允许是_。(分数:2.50)A.整型表达式B.整型常量C.整型常量或整型表达式 D.任何类型的表达式解析:解析 在 C 语言中,引用数组元素时,其数组下标的数据类型可以是整型常量,也可以是整型表达式。19.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:1.00)A.5B.6C.7D.8 解析:解析 根据给定的条件,在树中,各结点的分支总数为:41+22+13+41=15:树中的总结点数为:15(各结点的分支总数)+1(根结点)=16:非叶子结点总数为: 4+2+1+1=8。因此,叶子结点数

    35、为16(总结点数)-8(非叶子结点总数)=8。因此,本题的正确答案为 D。20.已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:3.00)A.这是运算符-的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 此题考查的是运算符的重载。运算符“-”有一元和二元两种,在本题中它作为一个二元运算符,所以它不能更新对象的数据成员,也不能调用该类中没有 const 修饰的成员函数。21.关于类模板,下列表述中不正确的是 _ 。(分数:2

    36、.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只能有虚拟类型参数 D.用类模板定义一个对象时,不能省略实参解析:解析 C+中可以为类模板的参数设置默认值,所以选项是 C 不正确的。22.数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(分数:2.50)A.需求分析阶段 B.逻辑设计阶段C.概念设计阶段D.物理设计阶段解析:解析 本题考查的知识点是 E-R 图。E-R 图也即实体联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-

    37、R 图设计属于数据库设计的需求分析阶段。23.下面关于虚函数的描述中正确的是_。(分数:1.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 解析:解析 本题考查虚函数的概念。虚函数是非静态的成员函数,它不能是友元函数,但可以在另一个类中被声明为友元函数。虚函数必须是类的成员函数,虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相

    38、同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。24.下列程序的输出结果是 _ 。 #includeiostream.h main() int m=5; if(m+5) coutm; else coutm-; (分数:2.00)A.7B.6 C.5D.4解析:解析 此题中,因为 m+5 成立(此时 m 的值变为 6),所以执行语句 coutm;输出结果为6。25.有如下程序: #includeiostream using namespace std; class Sample friend long fun(Sample s); public: Sample(long a)x=

    39、a; private: long x; ; long fun(Sample s) if(s.x2)return 1: return s.x*fun(Sample(s.x-1): int main() int sum=0; for(int i=0;i6;i+)sum+=fun(Sample(i); coutsum; return 0; 运行时输出的结果是_。(分数:2.00)A.120B.16C.154 D.34解析:解析 此题考查的是友元函数和递归函数。因为 fun 函数是 Sample 类的友元函数,所以 fun 函数可以直接访问 Sample 类对象的私有成员 x。主函数调用 fun 函数

    40、,构造参数为 05。当 n 小于 2 时,fun函数返回 1,其余返回值为 n*fun(n-1)。n 取 05 的值时 fun(n)依次为 1,1,2,6,24,120,累加结果为 154。26.有如下程序: #includeiostream using namespace std; class Point public: static int number; public: Pointonumber+; Point()number-;) ; int Point:number-0; void mainO Point*ptr; PointA,B; Point*ptr_point=new Poin

    41、t3; ptx=ptr_point; Point C; Gout+Point:number+endl; deleteptr; 运行时输出的结果是_。(分数:2.00)A.3B.4C.6 D.7解析:解析 此题是静态成员、对象的构造和对象的生存期等知识点的综合考查。此题定义了一个静态成员变量 number,初始值为 0。主函数中第 2 行定义了 2 个 Point 对象,此时 number 变为 2;随后 new运算符又定义了一个包含 3 个 Point 对象元素的数组,其通过 delete 结束后 number 的值变为 5;然后又定义了一个 Point 对象 C,number 变为 6;最后

    42、输出 number 的内容。27.下列有关类成员的叙述中,正确的是_。(分数:2.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的 C.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员解析:解析 此题考查的是类成员的有关概念。类的友元函数可以直接访问该类的所有成员,但它不是类的成员函数,故选项 A 错误;类成员函数的访问权限可以声明为公有、保护、私有,故选项 C 错误;静态数据成员的声明是使用关键字 static,它可以是常成员,故选项 D 错误。28.下列有关类成员的叙述中,正确的是_。(分数:1.00)A.友元函数是类的成员函数B.类成员的默认访问权限是私有的 C

    43、.类成员函数必须声明为公有的D.类的静态数据成员不能是常成员解析:解析 友元函数是指某些虽然不是类成员却能访问类的所有成员的函数,故友元函数不是类的成员函数。类成员的默认访问权限是私有的,类的成员函数可以是 3 种权限中的一种,静态数据成员可以为常成员。故本题答案为 B。29.下列选项中,错误的 C+表达式是_。(分数:2.00)A.a+B.“b“=10 C.double(3/5)D.x+!=3|y解析:30.下面关于虚函数的描述,错误的是(分数:1.00)A.在成员函数声明的前面加上 virtual 修饰,就可把该函数声明为虚函数B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数

    44、 C.虚函数可以是另一个类的友元函数,但不能是静态成员函数D.基类中说明的纯虚函数在其任何派生类中都必须实现解析:解析 基类中说明的虚函数,在派生类中自然就是虚函数,对于纯虚函数必须在后面继承的派生类中给出具体的实现;静态成员函数不能进行动态联编,所以虚函数不能是静态的。31.下面程序的运行结果是 _。 #includeiostream.h class A public virtual、() cout”call A: A()”end1; ; class B:public A B(int i)p=new chari: -B() delete)p; Cout”call B: B()”; ; voi

    45、d main() A*a=new B(8); Delete a; (分数:2.00)A.call B: B() B.call B: B()C.call A:A()D.call A:A()解析:32.下列叙述中错误的是_。(分数:2.50)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX 是合法的宏定义命令行D.C 程序中预处理命令行的处理是在程序执行的过程中进行的 解析:解析 预处理命令是以“#”开始的语句,每一条预处理命令必须单独占用一行,由于不是 C 语言的语句,并且命令行的最后不能以分号表示结束,定义格式为“#de-fine 标识符字符串”,预处理命令行是系统对源程序进行编译之前进行处理的,不是在程序执行的过程中。33.对于常成员函数,下面描述正确的是_。(分数:2.50)A.常成员函数只能修改常数据成员B.常成员函数只能修改一般数据成员C.常成员函数不能修改任何数据成员 D.常成员函数只能通过常对象调用解析:34.对 C+编译器区分重载函数无任何意义的信息是_。(分数:1.00)A.参数类型B.参数个数C.返回值类型 D.常成员函数关键字 const解析:解析 所谓函数重载是指同一个函数名可以对应多个函数的实现。每种实现对应一个函数体,这些函数的名字相同,其参数类型或个数不同,但不能出现


    注意事项

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




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

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

    收起
    展开