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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】二级C++笔试59及答案解析.doc

1、二级 C+笔试 59及答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:30,分数:60.00)1.软件生命周期是指( )。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程B.软件产品从提出、实现到使用维护的过程C.软件产品从提出到实现的过程D.软件产品从提出、实现到使用的过程2.下面的描述中,( )是正确的。(分数:2.00)A.virtual可以用来声明虚函数B.含有纯虚函数的类是不可以用宋创建对象的,因为它是虚基类C.即使基类的构造函数没有参数,派生类也必须建立构造函数D.静态数据成员可以通过成员初始化成员列表来初始化3.在 ios ba

2、se类中定义了 3个用于文件流定位的枚举常量,下列枚举常量不属于此类的是( )。(分数:2.00)A.ios_ase:begB.ios_base:curC.ios_base:endD.ios_base:ate4.数据库的数据模型所描述的内容有三个部分,它们是( )。(分数:2.00)A.数据结构、数据操作和数据约束B.概念数据模型、逻辑数据模型和物理数据模型C.现实世界、信息世界和计算机世界D.概念模式、外模式和内模式6.下面有关重载函数的说明中,正确的是( )。(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表D.重载函数名可

3、以不同7.知大写字母 A的 ASCII码是 65,小写 a的;ASCII 码值是 97,则用八进制表示字符常量/101为( )。(分数:2.00)A.字符 AB.字符 aC.字符 eD.非法常量8.若有以下程序: #includeiostream using namespace std; int main() int data4,i,j,temp; for (i=O; idatai; for (i=1; itemp j-; dataj+1 = temp; for(i=O;iA.2843B.2348C.8243D.843210.若有以下程序: #include iostream using na

4、mespace std; class A private: int x; public: int z; void setx(int i) x=i; int getx () return x; ; class B : public A private: int m; public: int p; void setvalue(int a,int b, int C) setx (A) ; z=b; m=c; void display() coutgetx()“,“z“,“mend1; ; int main ( ) B obj; obj.setvalue(2,3,4); obj.display();

5、return 0; 程序运行以后的输出结果是( )。(分数:2.00)A.产生语法错误B.2,3,4C.2,2,2D.4,3,211.在下列排序方法中,平均时间性能为 O(nlogn)且空间性能最好的是( )。(分数:2.00)A.快速排序B.堆排序C.归并排序D.基数排序12.下列虚基类的声明中,正确的是( )。(分数:2.00)A.class virtualB:public AB.virtual classB:public AC.class B:public A virtualD.class B:virtual public A14.若有以下程序: #include iostream us

6、ing namespace std; class sample private: int n; public: sample() sample(int m) n=m; void addvalue(int m) sample s; s.n=n+m; *this=s; void disp() cout“n=“nend1; ; int main() sample s(10); s.addvalue(5); s.disp(); return 0; 程序运行后的输出结果是( )。(分数:2.00)A.n=10B.n=5C.n=15D.n=2015.对于常成员函数,下面描述正确的是( )。(分数:2.00

7、)A.常成员函数只能修改常数据成员B.常成员函数只能修改一般数据成员C.常成员函数不能修改任何数据成员D.常成员函数只能通过常对象调用16.下列关于 C+运算符结合性的说法中,错误的是( )。(分数:2.00)A.赋值运算符是右结合性的B.复合运算符是右结合的C.单目运算符是左结合的D.双目算术运算符是左结合的17.若有以下程序: #include iostream using namespace std; class sample private: int i; public: void setvalue(int m) i=m; void fun(int m) i+=m; void disp

8、() coutiend1; ; int main() sample *ps; ps=new sample; ps-setvalue(20); ps-fun(5); ps-disp(); return 0; 程序运行后,输出的结果是( )。(分数:2.00)A.15B.20C.25D.3018.C+源程序文件的扩展名为( )。(分数:2.00)ACPPBCCDLLDEXE19.采用面向对象技术开发的应用系统的特点是( )。(分数:2.00)A.重用性更强B.运行速度更快C.占用存储量小D.维护更复杂20.用树形结构来表示实体之间联系的模型称为( )。(分数:2.00)A.关系模型B.层次模型C.

9、网状模型D.数据模型21.下列有关算法的描述中,错误的是( )。(分数:2.00)A.所谓算法是指解题方案的准确而完整的描述B.算法的基本特征有:可行性、确定性、有穷性和拥有足够的情报等C.算法的复杂度主要包括时间复杂度和空间复杂度D.算法的时间复杂度是指执行算法程序所需要的时间22.下列叙述中,正确的是( )。(分数:2.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是是线性结构23.以下程序段的输出结果是( )。 int x=5; do coutx-end1; while(!x);(分数:2.00)A.5B.无任何输出C.4D.陷入死循环24.栈是限定

10、在一端进行插入与删除的线性表,那么其组织数据的原则是( )。(分数:2.00)A.FISOB.FIFOC.LILOD.FILO25.下列对基类和派生类关系的描述中,错误的是( )。(分数:2.00)A.派生类是基类的具体化B.派生类是基类的子集C.派生类是基类定义的延续D.派生类是基类的组合26.软件需求分析阶段的工作,可以分为 4个方面:需求获取、需求分析、编写需求分析说明书和( )。(分数:2.00)A.阶段性报告B.需求评审C.总结D.都不正确27.有如下程序: #include iostream using namespace std; class Base private: char

11、 c; public: Base(char n) :c(n) Base ( ) coutc; ; class Derived : public Base private: char c; public: Derived(char n) :Base(n+1),c(n) Derived () coutc; ; int main ( ) Derived obj (x); return 0; 执行上面的程序将输出( )。(分数:2.00)A.xyB.yxC.xD.y28.执行下面的程序段后,变量 k的值为( )。 int k=3,s2; s0=k; k=s1*10;(分数:2.00)A.不定值B.33

12、C.30D.1029.一个队列的进队列顺序是 1,2,3,4,则出队列顺序为( )。(分数:2.00)A.4,3,2,1B.2,4,3,1C.1,2,3,4D.3,2,1,430.有以下程序: #include iostream using namespace std; class A public: virtual void setx(int i,int j=0) x=i; y=j; virtual void print()=0; protected: int x,y; ; class B : public A public: void print() coutx*x“, “; ; clas

13、s C : public A public: void print() coutx*x*xend1; ; int main() A *pa; B b; C c; pa= pa-setx(5); pa-print (); pa= pa-setx(2); pa-print(); return 0; 程序运行后的输出结果是( )。(分数:2.00)A.25,8B.2,5C.5,2D.8,25二、B填空题/B(总题数:14,分数:28.00)31.已知序列17,18,60,40,7,32,73,65,85,采用冒泡排序法对该序列作降序排序时,第 4趟的结果是U 【1】 /U。(分数:2.00)填空项

14、1:_32.U【2】 /U是按照程序语句行的自然顺序,依次执行语句。(分数:2.00)填空项 1:_33.调试方法中的U 【3】 /U最适合小规模程序的排错。(分数:2.00)填空项 1:_34.实体联系模型是一种常用的高级U 【4】 /U模型,而U 【5】 /U是实体联系模型中的核心。(分数:2.00)填空项 1:_35.若 a=12,b=14,c=0,则表达式“(y=(aB) ?a:B) C) ?y:c”的值为U 【6】 /U。(分数:2.00)填空项 1:_36.求 1100 的和,可写成“for(s=0,i=1;U 【7】 /U;i+) s+=i;”的形式。(分数:2.00)填空项 1

15、:_37.以下程序调用 findmax()函数返回数组中的最大值。请填空完成此函数。 #includeiostream using namespace std; int findmax(int*a,int n) int +p、*s; for(p=a,s=a;p-an;p+) if(u 【8】 /u) *s=*p; return(*S); int main() int x5=12,21,14,16; coutfindmax(X,5)end1; return 0; (分数:2.00)填空项 1:_38.下面程序的输出结果是u 【9】/u。 #include iostream using names

16、pace std; void f(int x) if(x) coutput(0+x%10); f(x10); int main() f(11001); return 0; (分数:2.00)填空项 1:_39.非成员函数只有在声明为类的U 【10】 /U才能访问这个类的所有 private成员。(分数:2.00)填空项 1:_40.有一种特殊的虚函数,重定义时不要求同名,这种虚函数是U 【11】 /U。(分数:2.00)填空项 1:_41.cout是 IO 流库预定义的U 【12】 /U。(分数:2.00)填空项 1:_42.以下程序实现栈的入栈和出栈的操作。其中有两个类:一个是节点类 nod

17、e,它包含点值和指向上一个节点的指针 prev;另一个类是栈类 stack, 它包含栈的头指针 top。 生成的链式栈如下图所示。 IMG onClick=over(this) title=放大 src=“tp/jsj/2jc+j28.1.gif“ 下面是实现程序,请填空完成此程序。#include iostream using namespace std; class stack; class node int data; node *prev; public: node(int d, node *n) data=d; prev=n; friend class stack; ; class

18、stack node *top; /栈头 public: stack() top=0; void push(int i) node *n=u 【13】 /u; top=n; int pop() node *t=top; if (top) top=top-prev; int c= t-data; delete t; return c; return 0; int main () stack s; s.push(6); s.push(3); s.push (1); return 0; (分数:2.00)填空项 1:_43.在下面的程序的横线处填上适当的语句,使该程序的输出为 12。 #includ

19、e iostream using namespace std; class Base public: int a; Base(int i) a=i; ; class Derived : public Base int a; public: Derived(int x) : Base(x),b(x+1) void show() u 【14】 /u; /输出基类数据成员 a的值 coutbend1; ; int main() Derived d(1); d.show(); return 0; (分数:2.00)填空项 1:_44.若有以下程序: #includeiostream using nam

20、espace std; class Base public: Base ( ) x=0; int x; ; class Derived1 : virtual public Base public: Derived1() x=10; ; class Derived2 : virtual public Base public: Derived2() x=20; ; class Derived : public Derived1,protected Derived2 ; int main() Derived obj; coutobj.xend1; return 0; 该程序运行后的输出结果是u 【1

21、5】 /u。(分数:2.00)填空项 1:_二级 C+笔试 59答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:30,分数:60.00)1.软件生命周期是指( )。(分数:2.00)A.软件产品从提出、实现、使用维护到停止使用退役的过程 B.软件产品从提出、实现到使用维护的过程C.软件产品从提出到实现的过程D.软件产品从提出、实现到使用的过程解析:解析 软件生命周期是一个重要概念,考生应很好掌握。它是指软件产品从提出、实现、使用维护到停止使用退役的整个过程。一般包括可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。2.下面的描述中,( )是正确的。(分

22、数:2.00)A.virtual可以用来声明虚函数 B.含有纯虚函数的类是不可以用宋创建对象的,因为它是虚基类C.即使基类的构造函数没有参数,派生类也必须建立构造函数D.静态数据成员可以通过成员初始化成员列表来初始化解析:解析 本题考核 C+中各知识点的应用。 virtual 关键词既可以用来声明虚基类,也可以用来声明虚函数。所以选项 A的描述是正确的。 C+规定,含有纯虚函数的类是抽象类,它不能用来定义对象。选项 B的描述中,前半句是正确的,但后半句是错误的。 在 C+中,如果所有的基类和子对象构造函数都不需要参数,派生也不需要参数初始化,则派生类中,可以不定义构造函数。所以选项 C的描述是

23、错误的。 在 C+中,静态数据成员的初始化必须在类体外进行。所以选项 D的描述是错误的。3.在 ios base类中定义了 3个用于文件流定位的枚举常量,下列枚举常量不属于此类的是( )。(分数:2.00)A.ios_ase:begB.ios_base:curC.ios_base:endD.ios_base:ate 解析:解析 C+文件流的定位方式有 3种,被定义为 ios_base:seek_dir 中的一组枚举符号: ios base:beg 相对于文件首 ios base:cur 相对于当前位置(负数表示当前位置之前) ios_base:end 相对于文件尾4.数据库的数据模型所描述的内

24、容有三个部分,它们是( )。(分数:2.00)A.数据结构、数据操作和数据约束 B.概念数据模型、逻辑数据模型和物理数据模型C.现实世界、信息世界和计算机世界D.概念模式、外模式和内模式解析:解析 数据模型是数据特征的抽象,它所描述的内容有三个部分,它们是数据结构、数据操作和数据约束。解析:解析 本题考核静态数据成员的应用。分析程序: 类 visited中,定义了两个私有成员:整型变量 number和指针变量 name。两个公有成员:静态数据变量 glob和函数 set mes()。 在函数 set mes中,把传入的字符串保存在类的私有成员 name中,并把静态数据成员 glob自加,同时赋

25、值给私有成员 number。 通过以上分析可知,函数 set mes()用来记录输入的名字(即来访者的姓名),静态数据变量glob用来记录有多少来访者。 在主函数中,输入 5个字符串(即 5个来访者的姓名)后,用来记录来访者数目的静态数据成员 glob的值变成 5。所以程序最后的输出结果是 5。6.下面有关重载函数的说明中,正确的是( )。(分数:2.00)A.重载函数必须具有不同的返回值类型B.重载函数形参个数必须不同C.重载函数必须具有不同的形参列表 D.重载函数名可以不同解析:解析 所谓函数重载,是指同一个函数名可以对应多个函数的实现。进行函数重载时,要求同名函数在参数个数上不同,或者参

26、数类型上不同。即重载函数必须具有不同的形参列表。7.知大写字母 A的 ASCII码是 65,小写 a的;ASCII 码值是 97,则用八进制表示字符常量/101为( )。(分数:2.00)A.字符 A B.字符 aC.字符 eD.非法常量解析:解析 此题考核的知识点是转义字符。此题目的关键是八进制的 101对应的十进制数是多少。八进制 101转换为十进制为 65,也就是大写字母 A的 ASCII码。8.若有以下程序: #includeiostream using namespace std; int main() int data4,i,j,temp; for (i=O; idatai; fo

27、r (i=1; itemp j-; dataj+1 = temp; for(i=O;iA.2843B.2348 C.8243D.8432解析:解析 本题属于综合题,考查数组和循环语句两方面的知识。此题看起来很复杂,其实不然,根据程序逐步分析: 在程序第 1个 for语句中,为数组 data赋输入的值,即 2,8,4,3。 第 2个for语句是嵌套式循环,循环次数是 3次,即从 1到 3。第 1次循环时, i=1,执行“j=i-1”后,j=0,然后把 data1的值赋给 temp,再进入 while循环。 while 后的条件表达式“datajtemp class A private: int

28、x; public: int z; void setx(int i) x=i; int getx () return x; ; class B : public A private: int m; public: int p; void setvalue(int a,int b, int C) setx (A) ; z=b; m=c; void display() coutgetx()“,“z“,“mend1; ; int main ( ) B obj; obj.setvalue(2,3,4); obj.display(); return 0; 程序运行以后的输出结果是( )。(分数:2.00

29、)A.产生语法错误B.2,3,4 C.2,2,2D.4,3,2解析:解析 本题考核公有继承中的类成员访问权限。当类的继承方式为公有继承时,基类的公有成员和保护成员分别作为派生类的公有成员和保护成员,派生类的其他成员可以直接访问它们。其他外部使用者只能通过派生类的对象访问继承来的公有成员。 在本题中,数据成员 z和函数 setx()都是基类 A的公有成员,它们经过公有继承以后,在派生类 B中还是公有成员,而派生类 B中的函数 setValue()和display()都是公有成员,可以通过对象对它们进行访问。所以程序中对各成员的访问是正确的。本程序的功能是输出已设置的各成员的值。11.在下列排序方

30、法中,平均时间性能为 O(nlogn)且空间性能最好的是( )。(分数:2.00)A.快速排序B.堆排序 C.归并排序D.基数排序解析:解析 堆排序先把序列看成一棵大根堆或小根堆,摘取最大或最小元素后再建成新的根堆,再排序。因此它的平均时间性能为 O(nlogn)且空间性能最好。12.下列虚基类的声明中,正确的是( )。(分数:2.00)A.class virtualB:public AB.virtual classB:public AC.class B:public A virtualD.class B:virtual public A 解析:解析 虚基类说明格式如下:Virtual其中,v

31、irtual 是虚基类的关键词。虚基类的说明是用在定义派生类时,写在派生类名的后面。即:class:Virtual。解析:解析 本题考查的知识点是递归函数的调用。根据程序代码逐步分析: f(n)用来计算 n+(n-1)+1,在 f(n)定义内部又调用 f(n)自身,这就是递归函数。 f(n)=f(n-1)+1,因此必须先计算出f(n-1),而 f(n-1)=f(n-2)+1,又必须计算 f(n-2)。 由此类推,直到 n=1,返回后可以此计算出 f(n),f(n-1),f(1)。 第 1次调用 f(n)时,形参 n接收的值为 1,进入函数体后,由于满足“n=1”,执行 return语句得到 1

32、。第 2次调用 f(n)时,n 的值为 2,不满足条件“n=1”,执行 return f(n-1)+1,在这条语句中又调用 f(n-1)即 f(1),从而得到 f(2)的返回值为 2。所以 j=1+2=3。14.若有以下程序: #include iostream using namespace std; class sample private: int n; public: sample() sample(int m) n=m; void addvalue(int m) sample s; s.n=n+m; *this=s; void disp() cout“n=“nend1; ; int

33、main() sample s(10); s.addvalue(5); s.disp(); return 0; 程序运行后的输出结果是( )。(分数:2.00)A.n=10B.n=5C.n=15 D.n=20解析:解析 本题考核 this指针的应用。本程序中 sample类定义了一个 addvalue非静态成员函数。addvalue()函数的原型是:void addvalue(sample *this,int m);,该函数的第 1个参数是执行该类对象的一个指针,即 this指针。由于这个参数是系统隐含的,所以在定义该成员函数时并没有看到这样一个参数。在成员函数的定义体中,可以通过 this访

34、问这一参数。程序的最后输出结果是 15。15.对于常成员函数,下面描述正确的是( )。(分数:2.00)A.常成员函数只能修改常数据成员B.常成员函数只能修改一般数据成员C.常成员函数不能修改任何数据成员 D.常成员函数只能通过常对象调用解析:解析 对于常成员函数需要注意以下几点: const 是常成员函数类型的一个组成部分,因此在实现部分也要带 const关键词。 常成员函数不更新对象的数据成员,也不能调用该类中没有用 const修饰的成员函数。 如果将一个对象说明为常对象,则通过该对象只能调用它的常成员函数,而不能调用其他的成员函数。 当成员函数是常成员函数时,常对象和一般对象都可以调用它

35、。16.下列关于 C+运算符结合性的说法中,错误的是( )。(分数:2.00)A.赋值运算符是右结合性的B.复合运算符是右结合的C.单目运算符是左结合的 D.双目算术运算符是左结合的解析:解析 运算符的结合方式有两种:左结合和右结合。左结合表示运算符优先与其左边的标识符结合进行运算,如加法;右结合表示运算符优先与其右边的标识符结合,如单目算术运算符+和-。赋值运算符、复合运算符和单目运算符都是右结合的。双目算术运算符是左结合的。所以选项 C是错误的。17.若有以下程序: #include iostream using namespace std; class sample private: i

36、nt i; public: void setvalue(int m) i=m; void fun(int m) i+=m; void disp() coutiend1; ; int main() sample *ps; ps=new sample; ps-setvalue(20); ps-fun(5); ps-disp(); return 0; 程序运行后,输出的结果是( )。(分数:2.00)A.15B.20C.25 D.30解析:解析 本题考核对象指针的应用。程序首先定义了一个类 sample,其中包含一个私有成员 i和 3个公有成员函数。函数 setvalue()的功能是给私有成员 i赋

37、值,函数 fun()的功能是将私有成员 i的值增加 m,函数 disp的功能是输出变量 i的值。在主函数中,先定义了类 sample的一个耐象指针 ps,并申请了一块内存空间。执行 语句 ps-setvalue(20);后,类中 i的值为 20,执行语句“ps-fun(5);”后,类中 i的值为 25。所以程序最后输出 25。18.C+源程序文件的扩展名为( )。(分数:2.00)ACPP BCCDLLDEXE解析:解析 本题考察有关 C+语言中有关 C+程序开发方面的知识点。C+语言源程序的扩展名为CPP,DLL 是动态连接库文件的扩展名,.EXE 是可执行文件的扩展名。19.采用面向对象技

38、术开发的应用系统的特点是( )。(分数:2.00)A.重用性更强 B.运行速度更快C.占用存储量小D.维护更复杂解析:解析 面向对象方法具有很多其他方法不具备的特点,比如多态、继承等。这些特点都决定了面向对象方法支持软件复用。对象类可以派生出新类,类可以产生实例对象,从而实现了对象类数据结构和操作代码的软构件复用。可重用性是面向对象思想的一个重要特征。20.用树形结构来表示实体之间联系的模型称为( )。(分数:2.00)A.关系模型B.层次模型 C.网状模型D.数据模型解析:解析 本题考核几种数据模型的表示方法。其中,关系模型采用二维表来表示,简称表:层次模型用树形结构来表示:网状模型是一个不

39、加任何限制的无向图。21.下列有关算法的描述中,错误的是( )。(分数:2.00)A.所谓算法是指解题方案的准确而完整的描述B.算法的基本特征有:可行性、确定性、有穷性和拥有足够的情报等C.算法的复杂度主要包括时间复杂度和空间复杂度D.算法的时间复杂度是指执行算法程序所需要的时间 解析:解析 算法的时间复杂度是指算法执行过程中所需要的基本运算次数。22.下列叙述中,正确的是( )。(分数:2.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是是线性结构解析:解析 一个线性结构需要满足以下两个条件:一是有且只有一个根节点,二是每个节点最多有一个前件,也最多有

40、一个后件。选项中的线性表、栈与队列、线性链表都满足这两个条件,所以它们都是线性结构,而二叉树虽然只有一个根节点,但它的每个节点可以有两个子树,不满足线性结构的每个节点最多有一个前件,也最多有一个后件这一条件。所以它不是线性结构。23.以下程序段的输出结果是( )。 int x=5; do coutx-end1; while(!x);(分数:2.00)A.5 B.无任何输出C.4D.陷入死循环解析:解析 本题考查循环语句 do-while语句的执行情况。根据 do-while循环语句功能特点可得:首先无条件执行循环体,表达式 x-的值为 5,输出为 5,x 的值变为 4,然后检查条件(!x)为假

41、(false),则循环结束。24.栈是限定在一端进行插入与删除的线性表,那么其组织数据的原则是( )。(分数:2.00)A.FISOB.FIFOC.LILOD.FILO 解析:解析 栈中的栈顶元素总是最后被插入的元素,也是最先被删除的元素。所以栈是按照 FILO,即“先进后出”的原则组织数据的。25.下列对基类和派生类关系的描述中,错误的是( )。(分数:2.00)A.派生类是基类的具体化B.派生类是基类的子集 C.派生类是基类定义的延续D.派生类是基类的组合解析:解析 本题考核基类和派生类的关系。派生类中包含了基类中的成员,它是对基类定义的扩充和延续,是对基类定义的进一步具体化,而不是基类的

42、子集。26.软件需求分析阶段的工作,可以分为 4个方面:需求获取、需求分析、编写需求分析说明书和( )。(分数:2.00)A.阶段性报告B.需求评审 C.总结D.都不正确解析:解析 本题考核软件需求分析的 4个阶段,分别为需求获取、需求分析、编写需求分析说明书和需求评审。27.有如下程序: #include iostream using namespace std; class Base private: char c; public: Base(char n) :c(n) Base ( ) coutc; ; class Derived : public Base private: char

43、c; public: Derived(char n) :Base(n+1),c(n) Derived () coutc; ; int main ( ) Derived obj (x); return 0; 执行上面的程序将输出( )。(分数:2.00)A.xy B.yxC.xD.y解析:解析 在 C+中,由于析构函数不能被继承,因此在执行派生类的析构函数时,基类的析构函数也将被调用。执行顺序是先执行派生类的析构函数,再执行基类的析构函数,其顺序与执行构造函数的顺序正好相反。在此题的程序中,在主函数结束时,派生类 Derived对象。obj 将被删除,所以就会调用对象的析构函数。先调用派生类的析

44、构函数,输出 x,然后调用基类的析构函数,输出 y。28.执行下面的程序段后,变量 k的值为( )。 int k=3,s2; s0=k; k=s1*10;(分数:2.00)A.不定值 B.33C.30D.10解析:解析 解本题考核数组元素的初值及其引用。若数组为 auto型,且没有进行初始化,其元素的值为不确定。本程序中,虽然给 s0赋了一个初值,但 s1的值依旧是不确定的,所以执行语句“k=s1*10”后,k 的值也不确定的。29.一个队列的进队列顺序是 1,2,3,4,则出队列顺序为( )。(分数:2.00)A.4,3,2,1B.2,4,3,1C.1,2,3,4 D.3,2,1,4解析:解

45、析 队列是指允许在一端进行插入,而在另一端进行删除的线性表。因此队列又称为先进先出的线性表。答案为 C。30.有以下程序: #include iostream using namespace std; class A public: virtual void setx(int i,int j=0) x=i; y=j; virtual void print()=0; protected: int x,y; ; class B : public A public: void print() coutx*x“, “; ; class C : public A public: void print()

46、 coutx*x*xend1; ; int main() A *pa; B b; C c; pa= pa-setx(5); pa-print (); pa= pa-setx(2); pa-print(); return 0; 程序运行后的输出结果是( )。(分数:2.00)A.25,8 B.2,5C.5,2D.8,25解析:解析 该程序中定义了 A类、B 类和 C类共 3个类。其中,类 A是抽象类,它的类体内有一个纯虚函数 pnnt()。抽象类不可以定义对象,但可以定义指向对象的指针。类 B和类 C都是类 A的公有派生类,这些类是具体类,它们对 A类中纯虚函数都有不同的实现。该程序的主函数中,定义一个指向类 A对象的指针 pa,又定义了类 B和类 C的 2个对象,并使指针 pa分别指向这些对象。这里,采用动态联编,在运行时选择 print()函数。所以,执行语句序列“pa= class stack; class node int data; node *prev; public: node(int d, no

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