计算机二级考试C++试题_第1页
计算机二级考试C++试题_第2页
计算机二级考试C++试题_第3页
计算机二级考试C++试题_第4页
计算机二级考试C++试题_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页计算机二级考试C++试题

1[单项选择题]已知函数FA调用函数FB,假设要把这两个函数定义在同一个文件中,那么()。

A.FA需要定义在FB之前

B.FB需要定义在FA之前

C.假设FA定义在FB之后,那么FA的原型需要涌现在FB的定义之前

D.假设FB定义在FA之后,那么FB的原型需要涌现在FA的定义之前

参考答案:D

参考解析:假如运用用户自己定义的函数,而该函数与调用它的函数(即主调用函数)在同一程序单元中,且位置在主调用函数之后,那么需要在调用此函数之前对被凋用的函数作声明。

2[单项选择题]单个用户运用的数据视图的描述称为

A.外模式B.概念模式C.内模式D.存储模式

参考答案:A

3[单项选择题]生成派生类对象时,派生类构造函数调用基类构造函数的条件是()。

A.无需任何条件

B.基类中显式定义了构造函数

C.派生类中显式定义了构造函数

D.派生类构造函数明确调用了基类构造函数

参考答案:D

参考解析:派生类的构造函数需要通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时除了对自己的数据成员进行初始化外,还需要负责调用基类构造函数使基类的数据成员得以初始化。

4[单项选择题]以下表达中正确的选项是()。

A.在面对对象的.程序设计中,各个对象之间具有亲密的关系

B.在面对对象的程序设计中,各个对象都是公用的

C.在面对对象的程序设计中,各个对象之间相对独立,相互依靠性小

D.上述三种说法都不对

参考答案:C

参考解析:面对对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依靠性小,通过消息来实现对象之间的相互联系。

5[简答题]有以下两个程序,分析它们的执行结果有什么不同。

程序1:

#include

classPoint

{

int*,y;

public:

Point(){*=y=0;}

Point(inti,intj){*=i;y=j;}

Pointoperator+(Point);

voiddisp()(cout”(”

}

PointPoint::operator+(PointP)

{

this-*+=P.*;this-y+=p.y;

return*this;

}

voidmain()

{

Pointpl(2,3),p2(3,4),p3;

cout”p1:”;p1.disp();

cout”p2:”;p2.disp();

p3=pl+p2;

cout”执行p3=p1+p2后”

cout”p1:”,p1.disp();

cout”p2:”;p2.disp();

cout”p3:”;p3.disp();

}

程序2:

#include

classPoint{

int*,Y;

public:

Point(){*=y=O;}

Point(inti,intj){*=i,y=j;}

Pointoperator+(Point);

voiddispf){cout”(”

}

PointPoint::operator+(PointP)

{

Points;

s.*=*+p.*;s.y=y+p.y;

returns;

}

voidmain()

{

Pointpl(2,3),p2(3,4),p3;

cout”p1:”;p1.disp();

cout”p2:”;p2.disp();

p3=pl+p2;

cout”执行p3=p1+p2后”

cout”p1:”;p1.disp();

cout”p2:”;p2.disp();

cout”p3:”;p3.disp();

}

参考解析:这两个程序中的main函数完全相同,类Point中的运算符重载均采纳成员函数方式实现,只是程序1的运算符重载函数运用this指针,而程序2的运算符重载函数运用局部对象。

p3=p1+p2等价于p3=p1.operator+(p2)。对于程序1,this指针指向p1对象,执行this-*+=p.*;this-y十一p.y;语句,修改pl对象的*和y成员值,执行return*this;语句,将pl对象赋给p3。所以p1和p3两个对象的*、Y值相同,即p3=pl+p2等价于p1=p1+p2,p3:p1,其运行结果如下:

p1:(2,3)

p2:(3,4)

执行p3=pl+p2后

P1:(5,7)

p2:(3,4)

P3:(5,7)

对于程序2,执行运算符重载函数,Points;语句定义一个对象,s.*=*+p.*;s.y=y+p.y;语句用于修改s对象的*、Y值,ret%i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论