1、二级 C+笔试-376 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.静态成员函数没有( )。(分数:2.00)A.返回值B.this指针C.指针参数D.返回类型2.设有如下三个关系表:(分数:2.00)A.TRSB.TRSC.TRSD.TR/S3.数据库系统的核心的是( )。(分数:2.00)A.数据模型B.数据库管理系统C.数据库D.数据库管理员4.C+语言中关于构造函数的说法正确的是( )。(分数:2.00)A.构造函数的函数名不必和类名相同B.构造函数只能每一个C.每个类必定有构造函数D.构造函数必有返回值5.有以下程序:#inc
2、ludeiostreamusing namespace Std;Class Rpublic:R(int r1,int r2)R1r1;R2r2;void print();void print()const;private:int R1,R2;roid R:print()coutR1“,”R2endl;void R:print()consteoutR1“,”R2endl;int main()R a(5,4);const R b(20,52);bprint();return 0;执行后的输出结果是( )。(分数:2.00)A.5,4B.20,52C.0,0D.4,56.在下面的运算符重载函数的原型
3、中,错误的是( )。(分数:2.00)A.Volume operator-(double,dpible);B.double Volume:operator-(double);C.Volume Volume:operator-(Volume);D.Volume operator-(Volume);7.若有说明:inta34;则对 a数组元素的非法引用是( )。(分数:2.00)A.a02*1B.a13C.a4-20D.a048.为了使模块尽可能独立,要求( )。(分数:2.00)A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C.模
4、块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强9.下面关于虚函数的描述中正确的是( )。(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型10.对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )。(分数:2.00)A.冒泡排序 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/211.下列表达式的值为 false的是( )。(分数:2.00)A.
5、13*p=20;r=sizeof(*p);coutrendldelete p;(分数:2.00)A.程序错误B.内存为 20地址的大小C.20D.413.下列表示纯虚函数的成员函数是( )。(分数:2.00)A.virtual int func(int);B.void func(int)=0;C.virtual void func0;D.virtual void func(int)14.若有以下程序:#includeiostreamusing namespace std;class Aprivate:int a;public:A(int i)a=i;void disp()couta“,”;cl
6、ass Bprivate:int b;public:B(int jbj;void disp()coutb“,”;class C:public B,public Aprivate:int C;public:C(int k);A(k-2),B(k+2)ck;void disp()Accdisp();B:disp();coutcendl;int main()C obj(10);Obj.disp();return 0;程序执行后的输出结果是( )。(分数:2.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,1015.实体是信息世界中广泛使用的一个术语,它用于表示( )。(
7、分数:2.00)A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物16.所有在函数中定义的变量及函数的形式参数,都属于( )。(分数:2.00)A.全局变量B.局部变量C.静态变量D.常量17.有如下程序:#includeiostreamUsing namespace std;Class TestClassprivate:int X,y;public:TestClass(int i,int j)xi;yj;void print()cout“printl”endl;void print()constcout“print2”endl;int main()const TestClass
8、a(1,2);(分数:2.00)A.print();return 0;br18.有如下函数模板声明:templatetypename TT Max(T a,T b)return(a)b)?a:b;下列对函数模板 Max()的调用中错误的是( )。(分数:2.00)A.Max(3.5,4.5)B.Max(3.5,4)C.Max(double)(3.5,4.5)D.Max(double)(3.5,4)19.执行下列语句序列:int i=0;while(i25)i+=3;couti;输出结果是( )。(分数:2.00)A.24B.25C.27D.2820.设有两个串 p和 q,求 q在 p中首次出现
9、位置的运算称为( )。(分数:2.00)A.连接B.模式匹配C.求子串D.求串长21.以下 for语句中不是死循环的是( )。(分数:2.00)A.for(int i0;i1;+i);B.for(int i0;+i);C.for(int i=1;i0;+i);D.for(;);22.有如下程序:#include(iostream)using namespace std;class TestClassprotected:TestClass()couti(coutx;TestClass(char c)coutc;;class TestClassl:publicTestClasspublic:Tes
10、tClassl(char c)coutc;int main()TestClassl d1(y);return 0;执行这个程序,屏幕上格显示输出( )。(分数:2.00)A.yB.yxC.xyD.yy23.在软件设计中,不属于过程设计工具的是( )。(分数:2.00)A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图24.下列选项中不符合良好程序设计风格的是( )。(分数:2.00)A.源程序要文档化B.数据说明的次序要规范化C.避免滥用 goto语句D.模块设计要保证高耦合、高内聚25.有如下程序:#includeiostreamusing namespace std;Class
11、 TestClassint a;public:TestClass(int x)ax;void show()couta;class TestClass1:public TestClassint b;public:TestClass1(int i):TestClass(i+1),b(i)void show()coutb;int main()TestClass b(5),*p;TestClass1 d(1);pClass Basepublic:Base()x0;int x;class Derivedl:virtua1 public Basepublic:Derived1()x10;class Der
12、ived2:virtual1 public Basepublic:Derived2()x20;class Derived:public Derivedl,protected Derived2 ;int main()Derived obj;coutobjxend1;return 0;该程序运行后的输出结果是( )。(分数:2.00)A.20B.30C.10D.035.( )既可重载为一元运算符,又可重载为二元运算符。(分数:2.00)A.“*”B.“=”C.“”和“*”D.“*”和“*+”二、填空题(总题数:15,分数:30.00)36.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对
13、象。(分数:2.00)填空项 1:_37.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于 1。(分数:2.00)填空项 1:_38.顺序存储方法是把逻辑上相邻的结点存储在物理位置 1 的存储单元中。(分数:2.00)填空项 1:_39.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 1。(分数:2.00)填空项 1:_40.数据管理技术发展过程经过人工管理、文件系统和数据库系统 3个阶段,其中数据独立性最高的是 1阶段。(分数:2.00)填空项 1:_41.为了表明一个函数不带返回值,应在定义函数时指定该函数类型为 1。(分数:2.00)填空项 1:_42.语句
14、int *;inewint10,释放指针 i的语句是 1。(分数:2.00)填空项 1:_43.在类的对象被创建时, 1 函数会被自动调用。(分数:2.00)填空项 1:_44.请将下列类定义补充完整。classBasepublic:void fun()cout“Base:fun”endl;class Derived:public Basepublic:void fun()_/显式调用基类的 fun函数cout“Derived:fun”endl;(分数:2.00)填空项 1:_45.有以下程序:#include”iostream.h”void main()int i10;int j5;cout
15、(j+i+endl;的结果为_。(分数:2.00)填空项 1:_46.根据下面的主程序,完成类的一种构造函数的最简单形式。#includeiostream.hclass baseprivate:int num;public:_;void main()base try(6);(分数:2.00)填空项 1:_47.下列程序的运行结果是_。#inclUde(iostreamh)Class Apublic:Virtual void use()cout“inA/n”;class B:public Apublic:virtual void use()cout“inB/n”;;class C:public
16、Bpublic:Virtual void use()cout“in C/n”;void main()A *obj;Obj=new C;Obj-use();delete obj;(分数:2.00)填空项 1:_48.有以下程序:#includeiostreamusing namespace std;class MyClasspublic:MyClass();MyClass();static int s;void SetValue(int val););int MyClass:s0;MyClass:MyClass()-s+; Void MyClass:SetValue(int val)3Val;i
17、nt main()MyClass my3,*p;pmy;for(int k0;k3;k+)p-SetValue(k+1);p+;coutMyClass:sendl;return 0;运行后的输出结果是_。(分数:2.00)填空项 1:_49.下面是复数类 complex的定义,其中作为友元函数重载的运算符“-”的功能是将参数对象的实部减1,然后返回对该对象的引用;请补充完整。class complexprivate:int real;int imag;public:complex(int r0,int i0):real(r),imag(i)void show()cout(real(imag0?
18、”-”:”+”)(imagi;_;complex和 long DBL(long n)return n+n是一个函数模板的两个实例,则该函数模板的定义是 1。(分数:2.00)填空项 1:_二级 C+笔试-376 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.静态成员函数没有( )。(分数:2.00)A.返回值B.this指针 C.指针参数D.返回类型解析:解析 this 指针是系统隐含的用于指向当前对象的指针。由于静态函数是同类中所以对象都共事的函数,在内存当中只存在一份,不属于某个对象所有,所以静态函数没有 this指针。2.设有如下三个
19、关系表:(分数:2.00)A.TRSB.TRSC.TRS D.TR/S解析:解析 关系代数中的集合运算有并、差、交和笛卡尔积 4种。根据本题关系 T中的元组可知,它是由关系 R和关系 S进行笛卡尔积运算得到的。3.数据库系统的核心的是( )。(分数:2.00)A.数据模型B.数据库管理系统 C.数据库D.数据库管理员解析:解析 数据库系统由数据库、数据库管理系统、数据库应用系统、数据库管理员和用户构成。所谓数据库是指长期存储在计算机内的、有组织的;可共事的数据集合,数据库管理系统是位于用户与操作系统之间的一层数据管理软件,是数据库系统的核心组成部分,可以管理数据,并提供用户操作的接口。4.C+
20、语言中关于构造函数的说法正确的是( )。(分数:2.00)A.构造函数的函数名不必和类名相同B.构造函数只能每一个C.每个类必定有构造函数 D.构造函数必有返回值解析:解析 本题考查构造函数的概念。构造函数可以被重载,构造函数的函数名必须和类名相同:构造函数可以有一个,也可以有多个,构造函数没有返回值。5.有以下程序:#includeiostreamusing namespace Std;Class Rpublic:R(int r1,int r2)R1r1;R2r2;void print();void print()const;private:int R1,R2;roid R:print()c
21、outR1“,”R2endl;void R:print()consteoutR1“,”R2endl;int main()R a(5,4);const R b(20,52);bprint();return 0;执行后的输出结果是( )。(分数:2.00)A.5,4B.20,52 C.0,0D.4,5解析:解析 使用 const关键字修饰的对象成为常对象,题中对象 b被声明为类 R的常对象。使用const关键宇说明的成员函数称为常成员函数,类 R中用 const重载了函数 print()。在使用常对象和常成员函数时应注意的是:const 是函数类型的一个组成部分,因此在常成员函数部分也要带 con
22、st关键宇;常成员函数不能更新对象的数据成员,也不能调用该类中没有用 const修饰的成员函数;如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数;const 关键字可以参与区分重载函数。6.在下面的运算符重载函数的原型中,错误的是( )。(分数:2.00)A.Volume operator-(double,dpible); B.double Volume:operator-(double);C.Volume Volume:operator-(Volume);D.Volume operator-(Volume);解析:解析 C+把重载的运算符视为特殊的函数
23、,称为运算符函数,函数名就是在运算符前面保留宇operator。运算符重载的定义格式:返回类型operator运算符号(参数说明);运算符”-”是二元运算符,A 选项中重载函数的形参列表都是 double,而重载函数的返回类型为类 Volume,显然是错误的。7.若有说明:inta34;则对 a数组元素的非法引用是( )。(分数:2.00)A.a02*1B.a13C.a4-20D.a04 解析:解析 数组的下标是从 0开始,至 n-1为止,因此选项 D是正确答案。8.为了使模块尽可能独立,要求( )。(分数:2.00)A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要
24、尽量高,且各模块间的耦合程度要尽量弱 C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强解析:解析 耦合是指模块之间的关联程度,而内聚是指模块内部各部分的聚合程度。模块之间的关联程度越小,模块内部的聚合程度越高,就越容易维护。在程序设计中应追求高内柬低耦合。9.下面关于虚函数的描述中正确的是( )。(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 解析:解析 本题考查虚函数的概念。虚函数是非静态
25、的成员函数,它不能是友元函数,但可以在另一个类中被声明为友元函数。虚函数必须是类的成员函数,虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。10.对于长度为 n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )。(分数:2.00)A.冒泡排序 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/2 解析:解析 本题主要考查对排序算法的理解。冒泡排序法首先
26、将第一个记录的关键宇与第二个记录的关键宇进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第 n-1个与第 n个记录的关键宇进行比较。第一趟冒泡排序使最大的关键宇元素放到最后。以此类推,进行第 2n 次冒泡排序。如果在排序过程中不存在逆序,则排序结束。在最坏情况下,冒泡排序中,若初始序列为“逆序”序列,需要比较 n(n-1)/2次。快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键宇比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。对于快速排序,若初始记录序列按关键宇有序或基本有序时,快速
27、排序退化冒泡排序,最坏情况下比较次数为 n(n-1)/2。11.下列表达式的值为 false的是( )。(分数:2.00)A.13*p=20;r=sizeof(*p);coutrendldelete p;(分数:2.00)A.程序错误B.内存为 20地址的大小C.20D.4 解析:解析 考查指针和运算符 sizeof的运用。理解 sizeof的用法,它可以运算出各种数据类型所占内存空间的多少。选项 C中是指针 p所指向的内存地址中内容是 20。在用完申请后的内存应立刻释放。13.下列表示纯虚函数的成员函数是( )。(分数:2.00)A.virtual int func(int);B.void
28、func(int)=0;C.virtual void func0; D.virtual void func(int)解析:解析 本题考查纯虚函数的定义形式。由于纯虚函数在最后要有“=0”,故据此排除 A和 D。而B中没有出现 virtual关键词故正确答案为 C。14.若有以下程序:#includeiostreamusing namespace std;class Aprivate:int a;public:A(int i)a=i;void disp()couta“,”;class Bprivate:int b;public:B(int jbj;void disp()coutb“,”;clas
29、s C:public B,public Aprivate:int C;public:C(int k);A(k-2),B(k+2)ck;void disp()Accdisp();B:disp();coutcendl;int main()C obj(10);Obj.disp();return 0;程序执行后的输出结果是( )。(分数:2.00)A.10,10,10B.10,12,14C.8,10,12D.8,12,10 解析:解析 本题考查派生类构造函数的使用。派生类 C具有多重继承关系,所以在派生类 C的构造函数中应该包含基类 A和 B的成员初始化列表。15.实体是信息世界中广泛使用的一个术语,
30、它用于表示( )。(分数:2.00)A.有生命的事物B.无生命的事物C.实际存在的事物 D.一切事物解析:解析 实体是客观存在且可以相互区别的事物。实体可以是具体的对象,如一个人,也可以是抽象的事件,如拔河比赛等。因此,实体既可以是有生命的事物,也可以是无生命的事物,但它必须是客观存在且可以相互区别的。16.所有在函数中定义的变量及函数的形式参数,都属于( )。(分数:2.00)A.全局变量B.局部变量 C.静态变量D.常量解析:解析 全局变量是在所有函数定义、类定义和程序块之外声明的变量,局部变量是在某个函数定义、类定义或程序块之内声明的变量。用关键字 Static声明的局部变量称为静态变量
31、,故正确答案为 B项。17.有如下程序:#includeiostreamUsing namespace std;Class TestClassprivate:int X,y;public:TestClass(int i,int j)xi;yj;void print()cout“printl”endl;void print()constcout“print2”endl;int main()const TestClass a(1,2);(分数:2.00)A.print();return 0;br解析:解析 本题由主函数 main入手,定义 TestClass型的常对象 a,然后调用对象 a中的成员
32、函数print()。因为在 C+中,如果一个对象被声明为常对象,则不能调用该对象中的非 const型的成员函数。所以,这里调用的是对象中的 eonst型成员函数“void prmt()eonst”,输出为 print2。18.有如下函数模板声明:templatetypename TT Max(T a,T b)return(a)b)?a:b;下列对函数模板 Max()的调用中错误的是( )。(分数:2.00)A.Max(3.5,4.5)B.Max(3.5,4) C.Max(double)(3.5,4.5)D.Max(double)(3.5,4)解析:解析 本题考查的是函数模板的引用。引用模板函数
33、和引用一般函数在语法形式上基本相同。需要注意的是,说明一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的类型来确认是否调用函数模板中的对应形参。本意选项 B中,编译系统从第一个参数“3.5”获得信息“double 型数据”和从第二个参数获得信息“int 型数据”两者矛盾,19.执行下列语句序列:int i=0;while(i25)i+=3;couti;输出结果是( )。(分数:2.00)A.24B.25C.27 D.28解析:解析 本题考查的是循环语句 while的使用。i 为 3的倍数,当 i=24时;i25,执行 while的循环体 i+3,则 i=27,不满足 i25
34、的条件,结束循环。20.设有两个串 p和 q,求 q在 p中首次出现位置的运算称为( )。(分数:2.00)A.连接B.模式匹配 C.求子串D.求串长解析:解析 字串的定位操作通常称为串的模式匹配,是各种串处理系统中最重要的操作之一。21.以下 for语句中不是死循环的是( )。(分数:2.00)A.for(int i0;i1;+i); B.for(int i0;+i);C.for(int i=1;i0;+i);D.for(;);解析:解析 考查循环语句 for的使用。for 循环开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循
35、环后,重新判断终止条件。在 for语句中,如果省略了终止条件判断部分,并且在语句中没有 break,或者是终止条件判断部分始终没有终止,都将出现死循环。22.有如下程序:#include(iostream)using namespace std;class TestClassprotected:TestClass()couti(coutx;TestClass(char c)coutc;;class TestClassl:publicTestClasspublic:TestClassl(char c)coutc;int main()TestClassl d1(y);return 0;执行这个程序
36、,屏幕上格显示输出( )。(分数:2.00)A.yB.yxC.xy D.yy解析:解析 本题中类 TestClass为基类,TestClass1 为 TestClass的派生类。由 main主函数入手,定义 TestClassl类型的对象 dl,参数值为 y。TestClassl 类继承 TestClass,所以主函数中“TestClassldl(y);”语句首先调用“TestClass1 (char c)coutc;”然后调用基类中的“TestClass()coutx;”输出 x,然后执行“TestClass(charc)eoutc;”输出 y,即答案为“xy”。23.在软件设计中,不属于过
37、程设计工具的是( )。(分数:2.00)A.PDL(过程设计语言)B.PAD图C.N-S图D.DFD图 解析:解析 PDL 是过程设计语言(Procedure Desig n Language)的简写,也称程序描述语言,用于描述模块算法设计和处理细节的语官,N-S 图是编程过程中常用的一种分析工具,提出了最初分析阿题方法PAD是问题分析图(ProblemAnalysis Diagram)的简写,它用二维树型结构的图表示程序的控制流,将这种图转换为程序代码比较容易;DFD(数据流图)是描述数据处理过程的工具。24.下列选项中不符合良好程序设计风格的是( )。(分数:2.00)A.源程序要文档化B
38、.数据说明的次序要规范化C.避免滥用 goto语句D.模块设计要保证高耦合、高内聚 解析:解析 对于软件设计中的模块设计要保证高内聚和低耦合,源程序要有文档说明,同时对程序中数据的说明要规范化。goto 语句破坏程序的结构,要尽量避免使用。25.有如下程序:#includeiostreamusing namespace std;Class TestClassint a;public:TestClass(int x)ax;void show()couta;class TestClass1:public TestClassint b;public:TestClass1(int i):TestCla
39、ss(i+1),b(i)void show()coutb;int main()TestClass b(5),*p;TestClass1 d(1);pClass Basepublic:Base()x0;int x;class Derivedl:virtua1 public Basepublic:Derived1()x10;class Derived2:virtual1 public Basepublic:Derived2()x20;class Derived:public Derivedl,protected Derived2 ;int main()Derived obj;coutobjxend
40、1;return 0;该程序运行后的输出结果是( )。(分数:2.00)A.20 B.30C.10D.0解析:解析 本题考查虚基类的应用。虽然 Derived1和 Derived2都是由共同的基类 x派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本,这时数据成员 x只存在一份拷贝,不论在类Derivedl中修改,还是在 De- rived2中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derivedob“”时,就会先调用虚基类 Base的构造函数,使得 x=0,然后执行类 Derived1的构造函数使得 x10,再执行类 Derived2的构造函数,使得 x20。最后输
41、出 x的值为 20。35.( )既可重载为一元运算符,又可重载为二元运算符。(分数:2.00)A.“*” B.“=”C.“”和“*”D.“*”和“*+”解析:解析 本题考查的是运算符的有关概念。“*”是二元运算符,既可以用于间接访问:也可用于两数相乘;而“”和“*+”都是一元运算符。二、填空题(总题数:15,分数:30.00)36.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_ (正确答案:类。)解析:解析 类是具有相同特征的对象的抽象,描述的是具有相似属性与操作的一组对象。对象是类的实例。37.数据模型分为格式化模型与非格式化模型,层次模型与网
42、状模型属于 1。(分数:2.00)填空项 1:_ (正确答案:格式化模型。)解析:解析 数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于格式化模型。38.顺序存储方法是把逻辑上相邻的结点存储在物理位置 1 的存储单元中。(分数:2.00)填空项 1:_ (正确答案:相邻。)解析:解析 顺序存储属于数据的存储结构的一种,它是指数据结构(数据的逻辑结构)在计算机中的表示,是把逻辑上相邻的结点存储在物理位置相邻的存储单元中。39.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 1。(分数:2.00)填空项 1:_ (正确答案:软件生命周期。)解析:解析 软件产品从考虑其概
43、念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究与需求分析、设计、实现、测试、交付使用及维护等活动。40.数据管理技术发展过程经过人工管理、文件系统和数据库系统 3个阶段,其中数据独立性最高的是 1阶段。(分数:2.00)填空项 1:_ (正确答案:数据库系统。)解析:解析 相对于文件系统人工管理和数据项管理,数据库系统的数据独立性大大增加。41.为了表明一个函数不带返回值,应在定义函数时指定该函数类型为 1。(分数:2.00)填空项 1:_ (正确答案:void。)解析:解析 void 表明该函数不带返回值,如果没有 void,则系统会返回一个默认类型的随机值
44、,这对程序可能造成不必要的问题。42.语句 int *;inewint10,释放指针 i的语句是 1。(分数:2.00)填空项 1:_ (正确答案:deletei;。)解析:解析 本题考查 new和 delete的用法。申请内存空间时用 new,释放内存空间用 delete。43.在类的对象被创建时, 1 函数会被自动调用。(分数:2.00)填空项 1:_ (正确答案:构造。)解析:解析 本题考查的是构造函数的应用。构造函数的作用是在对象被创建时利用特定的值构造对象,构造函数在对象被创建封由系统自动调用。44.请将下列类定义补充完整。classBasepublic:void fun()cout
45、“Base:fun”endl;class Derived:public Basepublic:void fun()_/显式调用基类的 fun函数cout“Derived:fun”endl;(分数:2.00)填空项 1:_ (正确答案:Base:fun();。)解析:解析 本题考查的是虚基类的使用。使用符号“:”可以用来限定要访问的成员所在类的名称。在派生类中对基类成员的访问应读是唯一的,多继承情况下就需要通过使用对象作用域分辨来解决这种对基类成员访问的二义性问题;45.有以下程序:#include”iostream.h”void main()int i10;int j5;cout(j+i+en
46、dl;的结果为_。(分数:2.00)填空项 1:_ (正确答案:15。)解析:解析 考查+运算符的用法,各种运算符的应用,注意+,-。i+为先做与 i有关的运算后,i自加 1,而+i 是先给 i加 1再进行与 i有关的操作。46.根据下面的主程序,完成类的一种构造函数的最简单形式。#includeiostream.hclass baseprivate:int num;public:_;void main()base try(6);(分数:2.00)填空项 1:_ (正确答案:base(int n)。)解析:解析 根据 main函数中对类 base的使用情况可知,base 类必须提供整型单参构造函数,同时要求构造其最简单的形式,故函数体为空。47.下列程序的运行结果是_。#inclUde(iostreamh)Class Apublic:Virtual void use()cout“inA/n”;class B:public Apublic:virtual void use()cout“inB/n”;;class C:public Bpublic:Virtual void use()cout