ImageVerifierCode 换一换
格式:DOC , 页数:25 ,大小:89.50KB ,
资源ID:1324418      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1324418.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

1、二级 C+模拟 489及答案解析(总分:170.50,做题时间:90 分钟)一、选择题(总题数:40,分数:70.50)1.为了使模块尽可能独立,要求_。(分数:2.50)A.内聚程度要尽量高,耦合程度要尽量强B.内聚程度要尽量高,耦合程度要尽量弱C.内聚程度要尽量低,耦合程度要尽量弱D.内聚程度要尽量低,耦合程度要尽量强2.为了提高函数调用的实际运行速度,可以将较简单的函数定义为_。(分数:2.50)A.内联函数B.重载函数C.递归函数D.函数模板3.以下定义数组中错误的是(分数:2.00)A.int a10;B.int a2120;C.int a20;D.int a;4.运算符重载是对已有

2、的运算符赋予多重含义,因此_。(分数:2.00)A.可以对基本类型(如 int类型)的数据,重新定义“+”运算符的含义B.可以改变一个已有运算符的优先级和操作数个数C.只能重载 C+中已经有的运算符,不能定义新运算符D.C+中已经有的所有运算符都可以重载5.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.不能改变重载运算符的优先级B.运算符只能重载为类的成员函数C.C+中已有的任何运算符都可以重载D.可以为重载运算符函数的参数设置默认值6.有如下类定义: class Foo public: Foo(int v):value(v) / Foo() / private: Foo()

3、/ int value=0; / ; 其中存在语法错误的行是_。(分数:1.00)A.B.C.D.7.有如下程序: #includeiostream using namespace std; class Point public: static int number; public: Point() number+; Point() number -; ; int Point:number=0; int main() Point *ptr; Point A, B; Point *ptr_point=new Point3; ptr=ptr_point; Point C; coutPoint:nu

4、mberendl; deleteptr; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.3B.4C.6D.78.下列对于线性链表的描述中正确的是(分数:2.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的9.有如下程序: #includeiostream using namespace std; class Sample friend long fun(Sample s); public: Samp

5、le(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; 执行这个程序的输出结果是_。(分数:1.00)A.120B.16C.154D.3410.有如下程序: #includeiostream using namespace std; class XX int x; public: XX(int

6、 xx=0):x(xx) int getX()return x; ; class YY:public XX int y; public: YY(int xx, int yy):x(xx), y(yy) int getV()return getX()+y; ; int main() YY c(3, 4); coutc.getV()+c.getX()endl; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.3B.4C.7D.1011.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:

7、1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值12.有如下头文件: int f1(); static int f2(); class MA public: int f3(); static int f4(); ; 在所描述的函数中,具有隐含的 this指针的是_。(分数:1.00)Af1Bf2Cf3Df413.有如下程序: int x =3; do x- =2; cout x; while(! (-x); 执行这个程序的输出结果是 _ 。(分数:1.00)A.1B.30C.1-2D.死循环14.有关

8、类和对象的说法不正确的是 _ 。(分数:1.00)A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象D.类与对象的关系和数据类型和变量的关系相似15.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是_。(分数:2.00)A.fstreamB.istreamC.cstdlibD.iomanip16.下面类的定义,有 _ 处错误。 class MyClass public: void MyClass(); MyClass(int value); private: int i0;(分数:2.00)A.1B.2C.3D.417.下列关于 C+函数的说

9、明中,正确的是_。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return语句C.标准 C+要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式18.下列关于构造函数的描述中,错误的是_。(分数:2.50)A.构造函数名与类名相同B.构造函数可以有返回值C.构造函数可以重载D.每个类都有构造函数19.将运算符“+”重载为非成员函数,下列原型声明中,错误的是_。(分数:2.50)A.MyClock operator+(MyClock, long);B.MyClock operator+(MyCl

10、ock, MyClock);C.MyClock operator+(long, long);D.MyClock operator+(long, MyClock);20.下列关于模板形参的描述中,错误的是_。(分数:2.50)A.模板形参表必须在关键字 template之后B.模板形参表必须用括弧()括起来C.可以用 class修饰模板形参D.可以用 typename修饰模板形参21.下列关于函数重载的叙述中,错误的是_。(分数:2.50)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同D.重载函数的参数个数或参数类型必须有所不同22.一个满二叉树其深

11、度为 4,则其叶子节点的个数为 _ 。(分数:1.00)A.8B.16C.32D.423.下面程序的运行结果为 _ 。 #includeiostream.h void main() char a=“3“; switch(a) case“3“: cout“3”: case“2“: cout“2”; break; default:cout“1”: (分数:1.00)A.3B.321C.31D.3224.如果一个类至少有一个纯虚函数,那么就称该类为 _ 。(分数:2.00)A.抽象类B.虚基类C.派生类D.以上三者都不对25.有如下程序: #includeiostream using namespa

12、ce std; class Point public: Point(int xx=0,int yy=0):x(xx),y(yy) void SetX(int xx)x=xx; void SetY(int yy)y=yy; private: int x,y; ; class Circle:Point public: Circle(int r):radius(r) int GetRadius()return radius; private: void SetRadius(int r)radius=r; int radius; ; int main() Circle c1(5); c1.SetX(1

13、); / c1.SetY(2); / c1.SetRadius(10); / coutc1.GetRadius(); / return 0; 在标注号码的语句行中不存在语法错误的是_。(分数:1.00)A.B.C.D.26.有下列程序: #include stdio.h void fun(char*a,char*b) while(*a=“*“)a+; while(*b=*a)b+;a+; void main() char+s=“*a+b*“,t80; fun(s,t);puts(t) 程序的运行结果是_。(分数:2.50)A.*a*bB.a*bC.a*b*D.ab27.若 MyClass为一个

14、类,执行“MyClass a4, *p5;”语句时会自动调用该类的构造函数的次数是_。(分数:2.50)A.2B.5C.4D.928.下列叙述中正确的是_。(分数:1.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性29.有如下两个类定义 class XX private: double x1; protected: double x2; public: double x3; ; cla

15、ss YY:protected XX private: double y1; potected: double y2; punic: double y3; ; 在类 YY中保护成员变量的个数是_。(分数:2.00)A.1B.2C.3D.430.下面程序的输出结果是 _ 。 #includeiostream.h Class example int a; public: example(int B.a=b+; void print()aa+1 couta“; void print()constcouta“; ; void main() example x(3); Const example y(2

16、); x.print(); y.print(); (分数:2.00)A.2 2B.4 3C.4 2D.3 231.下列关于 this指针的描述中,正确的是_。(分数:1.00)A.类的成员函数都有 this指针B.类的友元函数都有 this指针C.任何与类相关的函数都有 this指针D.类的非静态成员函数都有 this指针32.有如下程序: #includeiostream using namespace std; int main() int*p; *p=9; cout“the value at p:“*p; return 0; 编译运行程序将出现的情况是_。(分数:1.00)A.编译时出现

17、语法错误,不能生成可执行文件B.运行时一定输出:The value at p:9C.运行时一定输出:The value at p:*9D.运行时有可能出错33.数据流程图(DFD)是_。(分数:2.50)A.软件概要设计的工具B.软件详细设计的丁具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具34.下列对变量的引用中,错误的是 _ 。(分数:1.00)A.int a; int class CD public: CD() cout“C“; private: char name80; ; int main() CD a,*b,d2;return 0; 运行时的输出结果是(分数:2.00

18、)A.CCCCB.CCCC.CCDC36.在 32位的计算机中,一个 char型数据所占的内存长度的字节是_。(分数:2.50)A.4B.1C.2D.837.通常的拷贝初始化构造函数的参数是 _ 。(分数:1.00)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名38.下列字符串可以用作 C+标识符的是_。(分数:2.50)A.2009vatB.gotoC.test-2009D._12339.若已经声明了函数原型“bool fun(bool a,int b=0);”,则下列重载函数声明中正确的是_。(分数:1.00)A.bool fun(bool a=true,int

19、 b=0);B.int fun(bool a,int );C.void fun(double a,int );D.void fun(bool a,int b=0);40.下列虚基类的声明中正确的是 _。(分数:2.00)A.class virtual B: public AB.class B: public A virtualC.class B: public virtual AD.virtual class B: public A二、基本操作题(总题数:1,分数:30.00)41.请使用 VC6或使用答题菜单打开 proj1 下的工程 proj1,该工程含有一个源程序文件 prw1. cpp

20、。其中位于每个注释“/ERROR *found*”之后的一行语句存在错误。请改正这些错误,使程序的输出结果为: The value is 10 注意:只修改注释“/ERROR *found*”的下一行语句,不要改动程序中的其他内容。 /proj1. cpp #include iostream using namespace std; class MyClass int value; public: /ERROR *found* void MyClass(int val): value(val) int GetValue()const return value; void SetValue(in

21、t val); ; /ERROR *found* inline void SetValue(int val) value=val; int main() MyClass obj(0); obj. SetValue(10); /ERROR *found*下列语句功能是输出 obj的成员 value的值 cout“The value is“obj. valueendl; return 0; (分数:30.00)_三、简单应用题(总题数:1,分数:30.00)42.使用 VC+6.0打开 下的源程序文件 2.cpp。阅读下列函数说明和代码,补充空出的代码。函数fun(doubleA55)返回二维数组

22、中大于本行平均数的所有数之和。 注意:部分代码已经实现,请勿改动 main函数代码。 试题程序: #includeiostream.h double fun(double A55) void main() double A55= 4431.3,45.56,5697.65,768.678,122.45, 444.4,34.545,5667.656,2548.678,1562.45, 537.3,655.5456,5677.65,7168.678,1242.45, 134.3,454.5486,5637.65,7687.678,1322.45, 189.3,445.5786,5677.65,752

23、8.678,142.45 ; coutfun(A)endl; return; (分数:30.00)_四、综合应用题(总题数:1,分数:40.00)43.请使用 VC6或使用【答题】菜单打开 proj3 下的工程 proj3,其中声明的 CDeepCopy是一个用于表示矩阵的类。请编写这个类的赋值运算符成员函数 operator=,以实现深层复制。 要求: 补充编制的内容写在“/ *333*”与“/ *666*”之间。不得修改程序的其他部分。 注意:程序最后将结果输出到文件 out.dat中。输出函数 writeToFile已经编译为 obj文件,并且在本程序中调用。 /CDeepCopy.h

24、#include iostream #include string using namespace std; class CDeepCopy public: int n; /动态数组的元素个数 int *p; /动态数组首地址 CDeepCopy(int); CDeepCopy(); CDeepCopy /赋值运算符函数 ; void writeToFile(char *); /main.cpp #include “CDeepCopy.h“ CDeepCopy:CDeepCopy() delete p; CDeepCopy:CDeepCopy(int k) n=k; p=new intn; /

25、构造函数实现 CDeepCopy a.p0 = 1; d.p0 = 666; /对象 a,d数组元算的赋值 CDeepCopy b(3); a.p0 = 88; b = a; /调用赋值运算符函数 cout b.p0; /显示内层局部对象的数组元素 cout d.p0; /显示 d数组元算 a.p0的值 cout “d fade away; /n“; cout a.p0; /显示 a数组元素 a.p0的值 writeToFile(“ “); return 0; (分数:40.00)_二级 C+模拟 489答案解析(总分:170.50,做题时间:90 分钟)一、选择题(总题数:40,分数:70.

26、50)1.为了使模块尽可能独立,要求_。(分数:2.50)A.内聚程度要尽量高,耦合程度要尽量强B.内聚程度要尽量高,耦合程度要尽量弱 C.内聚程度要尽量低,耦合程度要尽量弱D.内聚程度要尽量低,耦合程度要尽量强解析:解析 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。2.为了提高函数调用的实际运行速度,可以将较简单的函数定义

27、为_。(分数:2.50)A.内联函数 B.重载函数C.递归函数D.函数模板解析:3.以下定义数组中错误的是(分数:2.00)A.int a10;B.int a2120;C.int a20; D.int a;解析:解析 考查数组的定义方法。 解题要点 定义一个二维数组时,可以不定义行数,但一定要定义列数,也就是说,选项 C)若写成 int20,则是正确的。 考点链接 数组的下标是从零开始的。4.运算符重载是对已有的运算符赋予多重含义,因此_。(分数:2.00)A.可以对基本类型(如 int类型)的数据,重新定义“+”运算符的含义B.可以改变一个已有运算符的优先级和操作数个数C.只能重载 C+中已

28、经有的运算符,不能定义新运算符 D.C+中已经有的所有运算符都可以重载解析:解析 此题考查的是运算符重载。运算符重载是针对 C+语言原有的运算符进行的,并不能创造新的运算符。5.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.不能改变重载运算符的优先级 B.运算符只能重载为类的成员函数C.C+中已有的任何运算符都可以重载D.可以为重载运算符函数的参数设置默认值解析:6.有如下类定义: class Foo public: Foo(int v):value(v) / Foo() / private: Foo() / int value=0; / ; 其中存在语法错误的行是_。(分数:

29、1.00)A.B.C.D. 解析:解析 本题考查类的定义。C+语言规定,在类体内不允许对所定义的数据成员进行初始化。7.有如下程序: #includeiostream using namespace std; class Point public: static int number; public: Point() number+; Point() number -; ; int Point:number=0; int main() Point *ptr; Point A, B; Point *ptr_point=new Point3; ptr=ptr_point; Point C; cou

30、tPoint:numberendl; deleteptr; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.3B.4C.6 D.7解析:解析 本题考查默认构造函数,题目中定义一个对象 A、B 以及对象数组 Point3,又定义了对象 C,共执行 6次构造函数,number 变为了 6,所以本题答案为 C。8.下列对于线性链表的描述中正确的是(分数:2.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的 B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的

31、解析:解析 在链式存储结构中,存储数据的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,数据元素之间的逻辑关系,是由指针域来确定的。由此可见,选项 A的描述正确。9.有如下程序: #includeiostream using namespace std; class Sample friend long fun(Sample s); 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 m

32、ain() int sum=0; for(int i=0;i6;i+) sum+=fun(Sample(i); coutsum; return 0; 执行这个程序的输出结果是_。(分数:1.00)A.120B.16C.154 D.34解析:解析 本题考查默认构造函数,当 i=0、1 时,fun(Sample(i)为 1;当 i=2时,fun(Sample(i)为 2;当 i=3时,fun(Sample(i)为 6;当 i=4时,fun(Sample(i)为 24;当 i=5时,fun(Sample(i)为120。所以总和为 154。10.有如下程序: #includeiostream usin

33、g namespace std; class XX int x; public: XX(int xx=0):x(xx) int getX()return x; ; class YY:public XX int y; public: YY(int xx, int yy):x(xx), y(yy) int getV()return getX()+y; ; int main() YY c(3, 4); coutc.getV()+c.getX()endl; return 0; 运行这个程序的输出结果是_。(分数:2.50)A.3B.4C.7 D.10解析:解析 该题考查的是析构函数的问题。11.已知在

34、一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 本题考核运算符的重载。题中语句为运算符一这是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用 const修饰的成员函数。12.有如下头文件: int f1(); static int f2(); class MA public: int f3(); stati

35、c int f4(); ; 在所描述的函数中,具有隐含的 this指针的是_。(分数:1.00)Af1Bf2Cf3 Df4解析:解析 只有类的非静态成员函数才隐含 this指针,其作用域是类内部,当类的非静态成员函数中访问类的非静态成员时,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,而不必一定写上this。所以本题答案为 C。13.有如下程序: int x =3; do x- =2; cout x; while(! (-x); 执行这个程序的输出结果是 _ 。(分数:1.00)A.1B.30C.1-2 D.死循环解析:解析 本题考查 do. while语句,执行 do. while

36、语句时,先执行循环体内的语句,然后判断 while中表达式的值,表达式为非零时,返回重新执行循环体语句。在本题中,先执行循环体内的语句,输出 2,然后判断表达式,为非零,且此时 x为 0;再次执行循环体时,输出-2,然后判断表达式为 0,不执行,退出,所以答案为 C。14.有关类和对象的说法不正确的是 _ 。(分数:1.00)A.对象是类的一个实例B.任何一个对象只能属于一个具体的类C.一个类只能有一个对象 D.类与对象的关系和数据类型和变量的关系相似解析:15.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是_。(分数:2.00)A.fstreamB.istreamC.c

37、stdlibD.iomanip 解析:16.下面类的定义,有 _ 处错误。 class MyClass public: void MyClass(); MyClass(int value); private: int i0;(分数:2.00)A.1B.2C.3 D.4解析:解析 上述类的定义共有 3处错误。(1) 类的成员变量不能在定义时进行初始化;(2) 类的:构造函数不能有返回值(包括 void类型);(3) 类的析构函数不能有参数。17.下列关于 C+函数的说明中,正确的是_。(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return语句C

38、.标准 C+要求在调用一个函数之前,必须先声明其原型 D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式解析:18.下列关于构造函数的描述中,错误的是_。(分数:2.50)A.构造函数名与类名相同B.构造函数可以有返回值 C.构造函数可以重载D.每个类都有构造函数解析:解析 构造函数不指定返回类型,它隐含有返回值,由系统内部使用。本题答案为 B。19.将运算符“+”重载为非成员函数,下列原型声明中,错误的是_。(分数:2.50)A.MyClock operator+(MyClock, long);B.MyClock operator+(MyClock, MyClock);C.My

39、Clock operator+(long, long); D.MyClock operator+(long, MyClock);解析:解析 运算符重载不能改变当运算符作用于 C+内部类型的对象时的含义,例如不能改变运算符“+”作用于两个 long型数据的含义,即运算符函数的参数中至少存在一个用户自定义对象。20.下列关于模板形参的描述中,错误的是_。(分数:2.50)A.模板形参表必须在关键字 template之后B.模板形参表必须用括弧()括起来 C.可以用 class修饰模板形参D.可以用 typename修饰模板形参解析:解析 主要考查函数模板的定义。声明一个函数模板的格式为“tcmpl

40、ate模板形参表声明函数声明”,其中具有 typename参数名、class参数名、类型修饰参数名三种形式,形参用“”括起来。21.下列关于函数重载的叙述中,错误的是_。(分数:2.50)A.重载函数的参数个数可以不同B.重载函数的参数类型可以不同C.重载函数的返回值类型必须不同 D.重载函数的参数个数或参数类型必须有所不同解析:解析 重载函数是函数的一种特殊情况,为方便使用,C+允许在同一范围中声明几个功能类似的函数同名,但是这些同名函数的形式参数(指参数的个数、类型或者顺序)必须不同,也就是说用同一个运算符完成不同的运算功能。22.一个满二叉树其深度为 4,则其叶子节点的个数为 _ 。(分

41、数:1.00)A.8 B.16C.32D.4解析:解析 若深度为 k,则叶子节点的个数为 2k-1,这是满二叉树的性质之一。23.下面程序的运行结果为 _ 。 #includeiostream.h void main() char a=“3“; switch(a) case“3“: cout“3”: case“2“: cout“2”; break; default:cout“1”: (分数:1.00)A.3B.321C.31D.32 解析:24.如果一个类至少有一个纯虚函数,那么就称该类为 _ 。(分数:2.00)A.抽象类 B.虚基类C.派生类D.以上三者都不对解析:解析 抽象类至少含有一个

42、纯虚函数。25.有如下程序: #includeiostream using namespace std; class Point public: Point(int xx=0,int yy=0):x(xx),y(yy) void SetX(int xx)x=xx; void SetY(int yy)y=yy; private: int x,y; ; class Circle:Point public: Circle(int r):radius(r) int GetRadius()return radius; private: void SetRadius(int r)radius=r; int

43、 radius; ; int main() Circle c1(5); c1.SetX(1); / c1.SetY(2); / c1.SetRadius(10); / coutc1.GetRadius(); / return 0; 在标注号码的语句行中不存在语法错误的是_。(分数:1.00)A.B.C.D. 解析:解析 本题考查对象成员的引用,在类外引用对象的数据成员时,只能访问 public成员而不能访问 private成员所以 C选项错误,D 选项正确,派生类公有继承基类,但是不能继承基类的私有成员,所以执行 c1.SetX(1)错误,同理 B选项错误。26.有下列程序: #include

44、 stdio.h void fun(char*a,char*b) while(*a=“*“)a+; while(*b=*a)b+;a+; void main() char+s=“*a+b*“,t80; fun(s,t);puts(t) 程序的运行结果是_。(分数:2.50)A.*a*bB.a*bC.a*b* D.ab解析:解析 在程序的主函数中,maon 定义了一个指向字符串的指针和一个字符数组,然后调用fun(s,t),在 fun()中第一个 while语句判断*a 中的值为“*”时继续扫描,如果不是“*”终止,第二个 while循环,将*a 中从“a”开始的后续所有字符都赋予*b,也就是

45、t80中的内容为“a*b*”,所以此时的运行结果为选项 C。27.若 MyClass为一个类,执行“MyClass a4, *p5;”语句时会自动调用该类的构造函数的次数是_。(分数:2.50)A.2B.5C.4 D.9解析:解析 在定义数组对象时,因为数组长度为 4,因此要 4次调用构造函数。在定义指向对象的指针时,由于指针没有实例化,故不调用构造函数。因此 C项是正确的。28.下列叙述中正确的是_。(分数:1.00)A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D.线性表的链式存储结构与顺序存储结构在存储空间的需求上没有可比性解析:解析 线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。29.有如下两个类定义 class XX private: d

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