1、二级 C+笔试-402 及答案解析(总分:85.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.00)1.在数据结构中,从逻辑上可以把数据结构分成( )。A动态结构和静态结构 B线性结构和非线性结构C集合结构和非集合结构 D树状结构和图状结构(分数:2.00)A.B.C.D.2.对线性表进行二分法检索,其前提条件是( )。A线性表以顺序方式存储,并按关键码值排好序B线性表以顺序方式存储,并按关键码的检索频率排好序C线性表以链接方式存储,并按关键码值排好序D线性表以链接方式存储,并按关键码的检索频率排好序(分数:2.00)A.B.C.D.3.在软件需求分析过程中,给出需求信息的
2、是( )。A) 程序员 B) 项目管理者 C) 软件分析设计人员 D) 软件用户(分数:2.00)A.B.C.D.4.关于关键字 class和 typename,下列叙述中正确的是 A) 程序中的 typename都可以替换为 class B) 程序中的 class都可以替换为 typename C) 在模板形参表中只能用 typename来声明参数的类型 D) 在模板形参表中只能用 class或 typename来声明参数的类型(分数:2.00)A.B.C.D.5.有如下语句序列:int k0:d0k+5;cout$; while(k19);while(k-0)cout*;执行上面:的语句序
3、列输出字符“$”和“*”的个数分别是( )。A) 4和 20 B) 5和 20C) 4和 21 D) 5和 21(分数:2.00)A.B.C.D.6.有如下程序:#includeiostream.hint func(int a, int b) return(ab) ;void main( ) int x2,y5,z8,r;rfunc(func(x,y) ,z) ;cout r;该程序的输出的结果是A) 12 B) 13 C) 14 D) 15(分数:2.00)A.B.C.D.7.有如下定义int a;float f;double i;则表达式 4+a+i*f的值的数据类型是 _。A) int
4、B) floatC) double D) 不确定(分数:2.00)A.B.C.D.8.派生类的构造函数的成员初始化列表中,不能包含( )。A) 基类的构造函数B) 派生类中子对象的初始化C) 基类的子对象初始化D) 派生类中一般数据成员的初始化(分数:1.00)A.B.C.D.9.需求分析阶段的任务是( )。A) 软件开发方法 B) 软件开发工具 C) 软件开发费用 D) 软件系统功能(分数:2.00)A.B.C.D.10.如果表达式 y*x+十中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为A) x.operator+(0).
5、operator *(y);B) operator * (x.operator+(0),y);C) y.operator * (operator+(x,0)D) operator * (operator+(x,0),y)(分数:1.00)A.B.C.D.11.执行下面程序中的输出语句后,a 的值是main( )int a;cout(a=3*5,a*4,a+5);A) 65 B) 20 C) 15 D) 10(分数:2.00)A.B.C.D.12.通常拷贝构造函数的参数是( )。A) 某个对象名 B) 某个对象的引用 C) 某个对象的指针 D) 某个对象的成员(分数:2.00)A.B.C.D.1
6、3.下列是关于派生类声明的开始部分,其中正确的是( )。Aclass virtual B:public A Bvirtual class B:public ACclass B:public A virtual Dclass B:virtual public A(分数:2.00)A.B.C.D.14.下面程序的输出结果是( )。#includeiostreamusing namespace std;void main()int i=1;while(i=8)if(+i3!=2)continue;else couti;A) 369 B) 258 C) 36 D) 25(分数:2.00)A.B.C.D
7、.15.下列叙述中正确的是( )。A线性链表的各元素在存储空间中的位置必须是连续的B线性链表的头元素一定存储在其他元素的前面C线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面D线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的(分数:2.00)A.B.C.D.16.下列对模板的声明中,正确的是( )。A) templateT B) templateclass T1.T2C) templateclass T1.class T2 D) templateclass T1;class T2(分数:2.00)A.B.C.D.17.下面关
8、于 C+语言变量的叙述错误的是A)C+语言中变量分为 auto,static,extem 和 register四种存储类型B)自动变量和外部变量的作用域为整个程序C)内部静态变量的作用域是定义它的函数D)外部静态变量的作用域是定义它的文件(分数:1.00)A.B.C.D.18.对下列二叉树(分数:1.00)A.B.C.D.19.设以下变量均为 int类型,则值不等于 7的表达式是( )。A(x=y=6,x+y,x+1) B(x=y=6,x+y,y+1)C(x=6,x+1,y=6,x+y) D(y=6,y+1,x=y,x+1)(分数:2.00)A.B.C.D.20.下列表达式的值为 false的
9、是( )。A) 13b=temp:void main()int m,n;m=8;n=9;change(m,n):cout m“ “ n endl;A89 B98 C程序有错误 D99(分数:1.00)A.B.C.D.25.多态性指的是( )。A以任何方式调用一个虚函数B以任何方式调用一个纯虚函数C借助于指向对象的基类指针或引用调用一个虚函数D借助于指向对象的基类指针或引用调用一个纯虚函数(分数:1.00)A.B.C.D.26.以下的 for循环for(x0,y=0,(y! =123)x+);A) 是无限循环 B) 循环次数不定 C) 最多执行 4次 D) 最多执行 3次(分数:2.00)A.B
10、.C.D.27.C语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言?A) ASP B) C C) VB D) Java(分数:2.00)A.B.C.D.28.有如下类的定义。应在空格处填入的语句是 ( )。class MyClass_ int x, y;public:MyClass(int a=0,int b=0)x=a;y=b;static void change)x-=10;y-=10;A) static B) const C) mutable D) 不需要填入内容(分数:1.00)A.B.C.D.29.关系数据库管理系统能实现的专门关系运算包括( )。A) 排序、索引、统计 B)
11、 选择、投影、连接C) 关联、更新、排序 D) 显示、打印、制表(分数:2.00)A.B.C.D.30.在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。AO(n) BO(n2)CO(log 2n)DO(nlog 2n)(分数:2.00)A.B.C.D.31.下列函数模板的定义中,合法的是_。Atemplatetypename TT abs(T X)return x0?-x:x; Btemplate classTT abs(T x)return x0?-x:x; Ctemplate Tclass Tabs(T x)return x0?-x:x; Dtemplate T
12、abs(T x)return x0?-x:x;(分数:2.00)A.B.C.D.32.集簇属于( )。A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:2.00)A.B.C.D.33.有关析构函数的说法不正确的是( )。A) 析构函数有且只有一个B) 析构函数无任何函数类型C) 析构函数和构造函数一样可以有形参D) 析构函数的作用是在对象被撤销时收回先前分配的内存空间(分数:2.00)A.B.C.D.34.若有如下程序:#includeiostreamusing namespaee std;int fun()static int i=0;int s=1;s+=i;i+;return
13、 s;int main()int i,a=0;for(i=0;i5;i+)a+=fun();coutaend1;return 0;程序运行后,输出的结果是( )。A) 20 B) 24C) 25 D) 15(分数:2.00)A.B.C.D.35.已知类 MyClass声明如下:class MyClassint n;public:MyClass(int k):n(k)int getValue( )constreturn n;在下列数组定义中正确的是A) MyClass x12;B) MyClass x22= new MyClass(1),new MyClass(2);C) MyClass*x32
14、;D) MyClass*x42= MyClass(1),MyClass(2);(分数:2.00)A.B.C.D.二、填空题(总题数:14,分数:24.00)36.重载的流运算符函数经常定义为类的 【7】 函数。(分数:2.00)填空项 1:_37.在一个容量为 15的循环队列中,若排头指针 front-6,队尾指针 rear=9,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_38.请在如下程序中的空格处填写正确的语句:#include iostreamusing namespace std;class Base public:void fun() cout“Base fun“
15、endl; ;class Derived: public Base public:void fun() 【11】 ; /调用基类的函数 fun()cout“Derived fun “endl;(分数:2.00)填空项 1:_39.表达式 operator+(x,int)其可以表示为 1。(分数:1.00)填空项 1:_40.以下程序的输出结果是 【10】 。#includeiostreamhunsigned frn(ullsigned num)unsi9ned k=1;dok*=num%10;num/=10; while(num);return k;void main()unsigned n=
16、26;coutfun(n) endl;(分数:1.00)填空项 1:_41.一棵二叉树的中序遍历结果为 DBEAFC,前序遍历结果为 ABDECF,则后序遍历结果为 1。(分数:2.00)填空项 1:_42.数据结构分为逻辑结构与存储结构,循环队列属于 【1】 。(分数:2.00)填空项 1:_43.写出执行完下列代码段之后指定变量的值:bool x=true,y=false,z=false;x=xcoutx-rend1;输出结果为 【8】 。(分数:2.00)填空项 1:_45. 1 是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。(
17、分数:1.00)填空项 1:_46.有以下复数类的声明,请补充完整。 Class complex double real;/实部 double imag;/虚部 public: complex(double x,double y) real=x: imag=y; complex operator+(complex e) /重载加法运算符“+” return complex(_) ;(分数:2.00)填空项 1:_47.如果使用数组名称为函数参数,形实结合时,传递的是 1。(分数:2.00)填空项 1:_48.指针变量所保存的不是一般的数据值,而是程序中另一个对象的 1。(分数:2.00)填空项
18、 1:_49.有 64个结点的完全二叉树的深度 3 (根的层次为 1)。(分数:2.00)填空项 1:_二级 C+笔试-402 答案解析(总分:85.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.00)1.在数据结构中,从逻辑上可以把数据结构分成( )。A动态结构和静态结构 B线性结构和非线性结构C集合结构和非集合结构 D树状结构和图状结构(分数:2.00)A.B. C.D.解析:2.对线性表进行二分法检索,其前提条件是( )。A线性表以顺序方式存储,并按关键码值排好序B线性表以顺序方式存储,并按关键码的检索频率排好序C线性表以链接方式存储,并按关键码值排好序D线性表以链接
19、方式存储,并按关键码的检索频率排好序(分数:2.00)A. B.C.D.解析:3.在软件需求分析过程中,给出需求信息的是( )。A) 程序员 B) 项目管理者 C) 软件分析设计人员 D) 软件用户(分数:2.00)A.B.C.D. 解析:解析 在软件需求分析过程中,需求信息是由软件用户给出的。4.关于关键字 class和 typename,下列叙述中正确的是 A) 程序中的 typename都可以替换为 class B) 程序中的 class都可以替换为 typename C) 在模板形参表中只能用 typename来声明参数的类型 D) 在模板形参表中只能用 class或 typename
20、来声明参数的类型(分数:2.00)A. B.C.D.解析:解析 只有在目标声明中,typename 和 class才可以相互替换,即 typename可以被 class替换,而有的 class,不一定能被 typename替换。5.有如下语句序列:int k0:d0k+5;cout$; while(k19);while(k-0)cout*;执行上面:的语句序列输出字符“$”和“*”的个数分别是( )。A) 4和 20 B) 5和 20C) 4和 21 D) 5和 21(分数:2.00)A. B.C.D.解析:解析 本题首先执行语句 dok+5;cout$; while(k19);,循环执行 4
21、渔翁。;全了 4个“$”,k 的值变为 20;然后执行语句 while(k-O)cout*;,因为其中的 k是后缀自减,所以会输出 20个“*”。6.有如下程序:#includeiostream.hint func(int a, int b) return(ab) ;void main( ) int x2,y5,z8,r;rfunc(func(x,y) ,z) ;cout r;该程序的输出的结果是A) 12 B) 13 C) 14 D) 15(分数:2.00)A.B.C.D. 解析:解析 在语句 rfunc(func(x, y) ,z) ;中,fun(x, y) 是一次调用函数,它的值作为 f
22、unc另一次调用的实参。注意本题调用两次函数。7.有如下定义int a;float f;double i;则表达式 4+a+i*f的值的数据类型是 _。A) int B) floatC) double D) 不确定(分数:2.00)A.B.C. D.解析:8.派生类的构造函数的成员初始化列表中,不能包含( )。A) 基类的构造函数B) 派生类中子对象的初始化C) 基类的子对象初始化D) 派生类中一般数据成员的初始化(分数:1.00)A.B.C. D.解析:解析 在 C+中,构造函数不能被继承,因此;派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时,除
23、了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始化的构造函数。但是它不负责基类中子对象的初始化。9.需求分析阶段的任务是( )。A) 软件开发方法 B) 软件开发工具 C) 软件开发费用 D) 软件系统功能(分数:2.00)A.B.C.D. 解析:解析 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。10.如果表达式 y*x+十中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,
24、采用运算符函数调用格式,该表达式还可表示为A) x.operator+(0).operator *(y);B) operator * (x.operator+(0),y);C) y.operator * (operator+(x,0)D) operator * (operator+(x,0),y)(分数:1.00)A.B.C. D.解析:解析 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符 +,且 c1、c2都是该类的对象,则 c1.operator+(c2)与 c1+c2含义相同。如果+作为该类的非成员函数重载,则operator十(c1,c2)与 c1+c2含义相同。同
25、理,运算符*作为成员函数重载,则广(x+)与yoperator*(x+)含义相同,后缀什作为友元函数重载,那么 x+与 operator+(x,0)含义相同,所以选项 C是正确的。11.执行下面程序中的输出语句后,a 的值是main( )int a;cout(a=3*5,a*4,a+5);A) 65 B) 20 C) 15 D) 10(分数:2.00)A.B. C.D.解析:解析 本题考查逗号表达式的运算特点。逗号表达式是所有表达式中优先级最低的,从左到右结合,其求解过程是:将逗号表达式各表达式按从左到右的顺序依次求值,并将最右边的表达式结果作为整个逗号表达式的结果。这里考生要注意的是,第二个
26、表达式执行完后,a 的值并没有发生变化,依然是15,所以在执行 a+5的时候,结果是 20,而不是 65。正确答案应是 B。12.通常拷贝构造函数的参数是( )。A) 某个对象名 B) 某个对象的引用 C) 某个对象的指针 D) 某个对象的成员(分数:2.00)A.B. C.D.解析:解析 拷贝构造函数 X(Xclass T2(分数:2.00)A.B.C. D.解析:解析 声明一个函数模板的格式为:template模板形参表声明函数声明。调用模板函数时,如果与模板实参中最后的若干个参数有关的信息可以从模板函数的实参中获得,则相关的模板实参可以省略。17.下面关于 C+语言变量的叙述错误的是A)
27、C+语言中变量分为 auto,static,extem 和 register四种存储类型B)自动变量和外部变量的作用域为整个程序C)内部静态变量的作用域是定义它的函数D)外部静态变量的作用域是定义它的文件(分数:1.00)A.B. C.D.解析:解析:自动变量是函数体或分程序内定义的变量,它的作用域在所定义的函数体内或分程序体内。18.对下列二叉树(分数:1.00)A. B.C.D.解析:解析 二叉树的中序遍历递归算法为:如果根不空,则(1)按中序次序访问左子树;(2)访问跟结点;(3)按中序次序访问右子树。否则返回。本题中,根据中序遍历算法,应首先按照中序次序访问以 C为根结点的左子树,然后
28、再访问根结点 P,最后才访问以 E为根结点的右子树。遍历以 C为根结点的左子树同样要遵循中序遍历算法,因此中序遍历结果为 ACBD;然后遍历根结点 F;遍历以 E为根结点的右子树,同样要遵循中序遍历算法,因此中序遍历结果为 EG。最后把这三部分的遍历结果按顺序连接起来,中序遍历结果为 ACBDFEG。因此,本题的正确答案是 A。19.设以下变量均为 int类型,则值不等于 7的表达式是( )。A(x=y=6,x+y,x+1) B(x=y=6,x+y,y+1)C(x=6,x+1,y=6,x+y) D(y=6,y+1,x=y,x+1)(分数:2.00)A.B.C. D.解析:20.下列表达式的值为
29、 false的是( )。A) 13b=temp:void main()int m,n;m=8;n=9;change(m,n):cout m“ “ n endl;A89 B98 C程序有错误 D99(分数:1.00)A. B.C.D.解析:25.多态性指的是( )。A以任何方式调用一个虚函数B以任何方式调用一个纯虚函数C借助于指向对象的基类指针或引用调用一个虚函数D借助于指向对象的基类指针或引用调用一个纯虚函数(分数:1.00)A.B.C. D.解析:26.以下的 for循环for(x0,y=0,(y! =123)x+);A) 是无限循环 B) 循环次数不定 C) 最多执行 4次 D) 最多执行
30、 3次(分数:2.00)A.B.C. D.解析:解析 本题考察 for循环的三个表达式的用法及其执行顺序,本题中 for循环的第三个表达式完成变量自增,以控制 for循环的执行次数。27.C语言是以哪种语言为基础逐渐发展演变而成的一种程序设计语言?A) ASP B) C C) VB D) Java(分数:2.00)A.B. C.D.解析:解析 C语言是对 C语言进行了扩充,继承了它的语法,并增加了面向对象的设计方法。28.有如下类的定义。应在空格处填入的语句是 ( )。class MyClass_ int x, y;public:MyClass(int a=0,int b=0)x=a;y=b;
31、static void change)x-=10;y-=10;A) static B) const C) mutable D) 不需要填入内容(分数:1.00)A. B.C.D.解析:解析 本题考核静态成员函数的使用。由题可知,函数 change()为类 MyClass的静态成员函数。先来了解静态成员函数:静态成员函数与静态数据成员相似,也从属于类,只要类存在,静态成员函数就可以使用,静态成员函数的定义是在一般函数的定义前加上关键词 static。调用静态成员函数的格式如下:类名:静态成员函数名(参数表);静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态
32、数据成员(因为非静态数据成员只有对象存在时才有意义)。但静态数据成员和静态成员函数可由任意访问权限许可的函数访问。和一般成员函数类似,静态成员函数也有访问限制,私有静态成员函数不能由外界访问。由静态成员函数只能访问静态数据成员、静态成员函数和类以外的函数和数据,不能访问类中的非静态数据成员可知,变量 x和 y只能是类 MyClass的静态数据成员,所以 x和 y的定义为“static int x,y;”。29.关系数据库管理系统能实现的专门关系运算包括( )。A) 排序、索引、统计 B) 选择、投影、连接C) 关联、更新、排序 D) 显示、打印、制表(分数:2.00)A.B. C.D.解析:解
33、析 关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。30.在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是( )。AO(n) BO(n2)CO(log 2n)DO(nlog 2n)(分数:2.00)A.B.C. D.解析:解析 本题考查查找的算法,对于长度为 n的有序线性表,在最坏情况下,二分法查找只需比较log2n次。31.下列函数模板的定义中,合法的是_。Atemplatetypename TT abs(T X)return x0?-x:x; Btemplate classTT abs(T x)return x0?-x:x; Ctemplate Tcla
34、ss Tabs(T x)return x0?-x:x; Dtemplate T abs(T x)return x0?-x:x;(分数:2.00)A. B.C.D.解析:本题考查模板函数的基本概念,根据模板函数的定义,所以答案为 A。32.集簇属于( )。A) 模式 B) 内模式 C) 外模式 D) 概念模式(分数:2.00)A.B. C.D.解析:解析 内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及 hash等存取方式与存取路径。33.有关析构函数的说法不正确的是( )。A)
35、析构函数有且只有一个B) 析构函数无任何函数类型C) 析构函数和构造函数一样可以有形参D) 析构函数的作用是在对象被撤销时收回先前分配的内存空间(分数:2.00)A.B.C.D. 解析:解析 析构函数是在对象被撤销之前执行,但析构函数本身并不会收回先前分配的内存空间。34.若有如下程序:#includeiostreamusing namespaee std;int fun()static int i=0;int s=1;s+=i;i+;return s;int main()int i,a=0;for(i=0;i5;i+)a+=fun();coutaend1;return 0;程序运行后,输出的
36、结果是( )。A) 20 B) 24C) 25 D) 15(分数:2.00)A.B.C.D. 解析:解析 由主函数入手,在 for循环中调用 fun函数,其中调用次数为 5次。fun 中 i为静态变量,有效到文件结束。第一次调用 fun后为 s=1,a=1;第二次调用后 s=2,a=3;第三次 s=3,a=6;第四次 s=4,a=10;第五次 s=5,a=15。35.已知类 MyClass声明如下:class MyClassint n;public:MyClass(int k):n(k)int getValue( )constreturn n;在下列数组定义中正确的是A) MyClass x1
37、2;B) MyClass x22= new MyClass(1),new MyClass(2);C) MyClass*x32;D) MyClass*x42= MyClass(1),MyClass(2);(分数:2.00)A.B.C. D.解析:二、填空题(总题数:14,分数:24.00)36.重载的流运算符函数经常定义为类的 【7】 函数。(分数:2.00)填空项 1:_ (正确答案:友元)解析:37.在一个容量为 15的循环队列中,若排头指针 front-6,队尾指针 rear=9,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_ (正确答案:3)解析:解析 在循环队列中,用
38、队尾指针 rear指向队列中的队尾元素,用排头指针 front指向排头元素的前一个位置,因此,从排头指针 front指向的后一个位置到队尾指针 rear指向的位置之间的所有元素均为队列中的元素。38.请在如下程序中的空格处填写正确的语句:#include iostreamusing namespace std;class Base public:void fun() cout“Base fun“endl; ;class Derived: public Base public:void fun() 【11】 ; /调用基类的函数 fun()cout“Derived fun “endl;(分数:2
39、.00)填空项 1:_ (正确答案:Base:fun())解析:解析 本题考查的知识点是:派生类对基类成员的访问。本题的派生类 Derived覆盖了基类 Base中的 fun(),如需调用基类版本的 fun(),则需要使用域运算符“:”。故应该填写 Base:fun()。39.表达式 operator+(x,int)其可以表示为 1。(分数:1.00)填空项 1:_ (正确答案:x+)解析:40.以下程序的输出结果是 【10】 。#includeiostreamhunsigned frn(ullsigned num)unsi9ned k=1;dok*=num%10;num/=10; while
40、(num);return k;void main()unsigned n=26;coutfun(n) endl;(分数:1.00)填空项 1:_ (正确答案:12)解析:解析 函数有一个形参 num,循环前变量 k置 1,循环中,表达式 nora%10是取 num的个位,将num的个位值累乘于 k中,然后 num除以 10。循环直至 num为 0结束,这是逐一求出 num十进制表示的各位数字,并累乘于变量 k的循环。函数最后返回 k。函数 fun的功能是求整数的各位十进数字积。41.一棵二叉树的中序遍历结果为 DBEAFC,前序遍历结果为 ABDECF,则后序遍历结果为 1。(分数:2.00)
41、填空项 1:_ (正确答案:DEBFCA)解析:解析 这类体型一般通过前序遍历的结果来找根结点,用中序遍历的结构找分支结点,通过画出该二叉树可得到结构。42.数据结构分为逻辑结构与存储结构,循环队列属于 【1】 。(分数:2.00)填空项 1:_ (正确答案:存储结构)解析:解析 数据结构分为逻辑结构与存储结构,循环队列属于存储结构因此,本题的正确答案为存储结构。43.写出执行完下列代码段之后指定变量的值:bool x=true,y=false,z=false;x=xcoutx-rend1;输出结果为 【8】 。(分数:2.00)填空项 1:_ (正确答案:10-10)解析:45. 1 是一种
42、特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。(分数:1.00)填空项 1:_ (正确答案:构造函数)解析:46.有以下复数类的声明,请补充完整。 Class complex double real;/实部 double imag;/虚部 public: complex(double x,double y) real=x: imag=y; complex operator+(complex e) /重载加法运算符“+” return complex(_) ;(分数:2.00)填空项 1:_ (正确答案:real+c.real,imag+c.
43、imag)解析:解析 在复数类中进行+运算符成员函数重载,是复数的实部和虚部分别相加。47.如果使用数组名称为函数参数,形实结合时,传递的是 1。(分数:2.00)填空项 1:_ (正确答案:地址)解析:解析 此题考查的是函数参数的传递方式。函数参数的传递方式分为传值和传地址两种。使用数组名作为函数参数,因为数组名代表的是数组的首地址,所以传递的是地址。48.指针变量所保存的不是一般的数据值,而是程序中另一个对象的 1。(分数:2.00)填空项 1:_ (正确答案:内存地址)解析:解析 指针变量指向的不是变量保存的数据值,而是变量的地址,所以指针变量保存的是对象的内存地址。49.有 64个结点的完全二叉树的深度 3 (根的层次为 1)。(分数:2.00)填空项 1:_ (正确答案:7)解析: