1、二级 C+-179 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列叙述中正确的是_。(分数:2.50)A.对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 nB.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog2n)2.算法的时间复杂度是指_。(分数:2.50)A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法
2、在执行过程中所需要的基本运算次数3.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是_。(分数:2.50)A.编辑软件B.操作系统C.教务管理系统D.浏览器4.软件(程序)调试的任务是_。(分数:2.50)A.诊断和改正程序中的错误B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质5.数据流程图(DFD 图)是_。(分数:2.50)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具D.面向对象方法的需求分析工具6.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于_。(分数:2.50)A.定义
3、阶段B.开发阶段C.维护阶段D.上述三个阶段7.数据库管理系统中负责数据模式定义的语言是_。(分数:2.50)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言8.在学生管理的关系数据库中,存取一个学生信息的数据单位是_。(分数:2.50)A.文件B.数据库C.字段D.记录9.数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(分数:2.50)A.需求分析阶段B.逻辑设计阶段C.概念设计阶段D.物理设计阶段10.有两个关系 R 和 T 如下: (分数:2.50)A.选择B.投影C交D并11.下列关于函数的描述中,错误的是_。(分数:2.5
4、0)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板12.若 MyClass 是一个类名,且有如下语句序列: MyClass c1, *c2; Myclass *c3=new MyClass; Myclass 上面的语句序列所定义的类对象的个数是_。(分数:2.50)A.1B.2C.3D.413.下列关于继承方式的描述中,错误的是_。(分数:2.50)A.如果不显式地指定继承方式,默认的继承方式是私有(private)B.采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C.采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D.采
5、用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员14.将前缀运算符“-”重载为非成员函数,下列语句中,能正确用于类中说明的是。(分数:2.50)A.DecrB.Decr operator-(DecrC.friend DecrD.friend Decr operator-(Decr15.若 MyTemp 是一个只有一个虚拟类型参数的类模板,且有如下语句序列: MyTempdoublep2; MyTeraplongp32; 编译系统在处理上面的语句序列时,所生成的模板 MyTemp 的实例的个数是_。(分数:2.50)A.1B.2C.3D.016.在 C+中,cin 是个_。(分数:2.
6、50)A类B.对象C.模板D.函数17.在下列字符中,不允许作为 C+标识符的是_。(分数:2.50)AbBBC._D.218.下列叙述中,错误的是_。(分数:2.50)A.false 是一个逻辑型常量B.“b“是一个字符型常量C.365 是一个 int 常量D.3.1415926 是一个 double 常量19.若 x 和 y 是程序中的两个整型变量,则下列 if 语句中正确的是_。(分数:2.50)A.if(x=0) y=1; else y=2;B.if(x=0) then y=1 else y=2;C.if(x=0) y=1 else y=2;D.if x=0 y=1; else y=2
7、;20.要定义整型数组 x,使之包括初值为 O 的三个元素,下列语句中错误的是_。(分数:2.50)A.int x3=0, 0, 0;B.int x=0;C.static int x3=0;D.int x=0, 0, 0;21.关于函数中的返回类型,下列表述中错误的是_。(分数:2.50)A.返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符C.返回类型中有可能包含字符*D.返回类型中可能包含22.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语句是_。(分数:2.50)A.MyClass p=MyClass;B.MyClass p=new My
8、Class;C.MyClassD.MyClass a, 23.有如下两个类定义: class XX private: double x1; protected: double x2; public: double x3; ; class YY:protected XX private: double y1; protected: double y2; public: double y3; ; 在类 YY 中保护成员变量的个数是_。(分数:2.50)A.1B.2C.3D.424.下列关于运算符重载的描述中,错误的是_。(分数:2.50)A.可以通过运算符重载在 C+中创建新的运算符B.赋值运算符
9、只能重载为成员函数C.运算符函数重载为类的成员函数时,第一操作数是该类对象D.重载类型转换运算符时不需要声明返回类型25.下列关于类模板的描述中,错误的是_。(分数:2.50)A.类模板的成员函数都是模板函数B.可以为类模板参数设置默认值C.类模板描述了一组类D.类模板中只允许有一个类型参数26.为完成下面的程序,在画线处应填入的语句是_。 #includediostream using namespace std; class Base int x; public: Base(int i)x=i; Base() ; class Derived:public Base public: _/完成
10、类 Derived 构造函数的定义 ; int main() Derived obj(2); return 0; (分数:2.50)A.Derived(int i):Base(i)B.Derived()C.vold Derived(in*i):Base(i)D.Derived(int i)Base(i);27.有如下程序: #includeiostream us ing namespace std; const double PI=3.14; clasS Point int x, y; public: Point(int a, int b)x=a; y=b; int getx()return
11、x; int gety()return y; ; class Circle:public Point int r; public: Circle(int a, int b, int c):Point(a, b)r=c; int getr()return r; double area()return PI*r*r; ; int main() Circle c1(5, 7, 10); coutc1.area()endl; return 0; 其运行结果是_。(分数:2.50)A.25B.49C.100D.31428.有以下程序: #includeiostream #includestring us
12、ing namespace std; class Base char baseName10; public: Base()strcpy(baseName, “Base“); virtual char *myName()return baseName; chat *className()return baseName; ; class Derived:public Base private: char derivedName10; public: Derived()strcpy(derivedName, “Derived“); char *myName()return derivedName;
13、chat *className()return derivedName; ; void showPtr(Base int main() Base bb; Derived dd; showPtr(dd); return 0; 运行后的输出结果是_。(分数:2.50)A.Derived BaseB.Base BaseC.Derved DerivedD.Base Derived29.下面是类 MyClass 的定义,对定义中各语句描述正确的是_。 class MyClass int x, y, z; public: void MyClass(int a)x=a; / int f(int a, int
14、 b) / x=a; y=b; int f(int a, int b, int c=0) / x=a; y=b; z=c; static void g()x=10; / ;(分数:2.50)A.语句是类 MyClass 的构造函数的定义B.语句和语句实现类成员函数的重载C.语句实现对类成员变量 x 的更新操作D.语句、和都不正确30.以下程序企图把键盘终端输入的字符输出到名为 abc.txt 的文件中,直到从终端读入字符“#“时结束输入和输出操作,但程序有错。程序出错的原因是_。 #includeiostream #includefstream using namespace std; int
15、 main() ofstream ofile; char ch; ofile.open(“d:/abc.txt“, “W“); do cinch; ofile.put(ch); while(ch!=“#“); ofile.close(); return 0; (分数:2.50)A.成员函数 open()调用形式错误B.输入文件没有关闭C.成员函数 put()调用形式错误D.对象 ofile 定义错误31.下列控制格式输入/输出的操作符中,能够设置浮点数精度的是_。(分数:2.50)A.setprecisionB.setwC.setfillD.showpoint32.下列程序段中包含 4 个函数
16、,其中具有隐含 this 指针的是_。 int fun1(); class Test public: int fun2(); friend int fun3(); static int fun4(); ;(分数:2.50)A.fun1B.fun2C.fun3D.fun433.有如下程序: #includeiostream using namespace std; class Test public: Test() Test(const Test ; Test fun(Test return t; int main() Test x, y; x=fun(y); return 0; 运行这个程序的
17、输出结果是_。(分数:2.50)A.无输出B.1C.11D.11134.有如下程序: #includeiostream using namespace std; class A public: A(int i=0):r1(i) void print()cout“E“R1“-“; void print() constcout“C“R1*R1“-“; void print(int x) cout“P“R1*R1*R1“-“; private: int r1; ; int main() A a1; const A a2(4); a1.print(2); a2.print(); return 0; 运
18、行时的输出结果是_。(分数:2.50)A.P8-E4B.P8-C16-C.P0-E4-D.P0-C16-35.下列代码声明了 3 个类: class Person; class Student:public Person; class Undergraduate:Student; 下列关于这些类之间关系的描述中,错误的是_。(分数:2.50)A.类 Person 是类 Undergraduate 的基类B.类 Undergraduate 从类 Student 公有继承C.类 Student 是类 Person 的派生类D.类 Undergraduate 是类 Person 的派生类36.有如下
19、程序: #includeiostream using namespace std; class Base public: Base(int x=0):valB(x) coutVALB; Base() coutVALB; private: int valB; ; class Derived:public Base public: Derived(int x=0, int y=0):Base(x), valD(y)coutVALD; Derived() coutVALD; private: int valD; ; int main() Derived obj12(2, 3); retuen 0;
20、运行时的输出结果是_。(分数:2.50)A.2332B.2323C.3232D.322337.下面是类 Shape 的定义: class Shape public: virtual void Draw()=0; ; 下列关于 Shape 类的描述中,正确的是_。(分数:2.50)A.类 Shape 是虚基类B.类 Shape 是抽象类C.类 Shape 中的 Draw 函数声明有误D.语句“Shape s;”能够建立 Shape 的一个对象 s38.将运算符“+”重载为非成员函数,下列原型声明中,错误的是_。(分数:2.50)A.MyClock operator+(MyClock, long)
21、;B.MyClock operator+(MyClock, MyClock);C.MyClock operator+(long, long);D.MyClock operator+(long, MyClock);39.打开文件时可单独或组合使用下列文件打开模式: ios_base:app ios_base:binary ios_base:in los_base:out 若要以二进制读方式打开一个文件,需使用的文件打开模式为_。(分数:2.50)A.B.C.D.40.有如下程序: #includeiostream us ing namespace std; Class B public: B(i
22、nt xx):x(xx)+count; x+=10; virtual void show() const coutcount“_“xendl; protected: static int count; private: int x; ; class D:public B public: D(int xx, int yy):B(xx), y(yy) +count; y+=100; virtual void show() const coutcount“yendl; private: int y; ; int B:count=0; int main() B *ptr=new D(10, 20);
23、ptr-show(); delete ptr; return 0; 运行时的输出结果是_。(分数:2.50)A.1_120B.2_120C.1_20D.2_20二级 C+-179 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列叙述中正确的是_。(分数:2.50)A.对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 n B.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C.对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log2n)D.对长度为 n 的有序链表进行对分查找,最坏情
24、况下需要的比较次数为(nlog2n)解析:解析 本题考查的知识点是查找的比较次数。对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 n,即本题的答案为 A。2.算法的时间复杂度是指_。(分数:2.50)A.算法的执行时间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的基本运算次数 解析:解析 本题考查的知识点是时间复杂度的概念。算法的时间复杂度是指算法在执行过程中所需要的基本运算次数。即本题的答案为 D。3.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。下面属于系统软件的是_。(分数:2.50)A.编辑软件B.操作系统 C.教务管理
25、系统D.浏览器解析:解析 本题考查的知识点是软件的分类。软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。操作系统是系统软件。即本题的答案为 B。4.软件(程序)调试的任务是_。(分数:2.50)A.诊断和改正程序中的错误 B.尽可能多地发现程序中的错误C.发现并改正程序中的所有错误D.确定程序中错误的性质解析:解析 本题考查的知识点是软件调试。软件(程序)调试的任务是诊断和改正程序中的错误,它不一定能够发现所有程序中存在的错误。即本题的答案为 A。5.数据流程图(DFD 图)是_。(分数:2.50)A.软件概要设计的工具B.软件详细设计的工具C.结构化方法的需求分析工具 D.面
26、向对象方法的需求分析工具解析:解析 本题考查的知识点是数据流程图(DFD 图)。数据流程图(DFD 图)是结构化方法的需求分析工具。即本题的答案为 C。6.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于_。(分数:2.50)A.定义阶段B.开发阶段 C.维护阶段D.上述三个阶段解析:解析 本题考查的知识点是软件生命周期。软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于开发阶段的任务。即本题的答案为 B。7.数据库管理系统中负责数据模式定义的语言是_。(分数:2.50)A.数据定义语言 B.数据管理语言C.数据操纵语言D.数据控制语言解析:解析 本题考查的知识点是数据定
27、义语言。数据库管理系统中负责数据模式定义的语言是数据定义语言 DDL。即本题的答案为 A。8.在学生管理的关系数据库中,存取一个学生信息的数据单位是_。(分数:2.50)A.文件B.数据库C.字段D.记录 解析:解析 本题考查的知识点是记录的描述。在关系数据库中,使用记录作为存取一个实体信息的数据单位。9.数据库设计中,用 ER 图来描述信息结构但不涉及信息在计算机中的表示,它属于数据库设计的_。(分数:2.50)A.需求分析阶段 B.逻辑设计阶段C.概念设计阶段D.物理设计阶段解析:解析 本题考查的知识点是 E-R 图。E-R 图也即实体联系图(Entity Relationship Dia
28、gram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。E-R 图设计属于数据库设计的需求分析阶段。10.有两个关系 R 和 T 如下: (分数:2.50)A.选择 B.投影C交D并解析:解析 本题考查的知识点是关系运算。选择和投影都是对单个表进行运算,其结果都是一个关系。选择运算是选择满足条件的元组,投影则是满足条件的列。显然由关系 R 得到 T 是选择运算。11.下列关于函数的描述中,错误的是_。(分数:2.50)A.函数可以没有返回值B.函数可以没有参数C.函数可以是一个类的成员D.函数不能被定义为模板 解析:解析 函数是可以定义为模板的,函数模板是一系列相关函数的模
29、型或样板,这些函数的源代码形式相同,只是针对的数据类型不同。对于函数模板,数据类型本身成了它的,因而是一种参数化类型的函数。12.若 MyClass 是一个类名,且有如下语句序列: MyClass c1, *c2; Myclass *c3=new MyClass; Myclass 上面的语句序列所定义的类对象的个数是_。(分数:2.50)A.1 B.2C.3D.4解析:解析 只有 c1 是类对象,c2 是指向对象的指针,c3 是动态创建的指向对象的指针,c4 是对象 c1的引用。13.下列关于继承方式的描述中,错误的是_。(分数:2.50)A.如果不显式地指定继承方式,默认的继承方式是私有(p
30、rivate)B.采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C.采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D.采用私有继承方式时,基类中的私有成员在派生类中仍然是私有成员 解析:解析 采用私有继承方式时,基类中的私有成员在派生类中是不可以直接访问的,而不是私有成员。14.将前缀运算符“-”重载为非成员函数,下列语句中,能正确用于类中说明的是。(分数:2.50)A.DecrB.Decr operator-(DecrC.friend Decr D.friend Decr operator-(Decr解析:解析 前缀“-”重载为非成员函数,非成员函数通常将其声明为
31、友元函数,“-”是单目运算符,所以重载参数为 1,C 是正确的原型声明。15.若 MyTemp 是一个只有一个虚拟类型参数的类模板,且有如下语句序列: MyTempdoublep2; MyTeraplongp32; 编译系统在处理上面的语句序列时,所生成的模板 MyTemp 的实例的个数是_。(分数:2.50)A.1B.2 C.3D.0解析:解析 类模板生成类定义的过程称为类模板的实例化。类模饭实例化所生成的每一个类定义就是相应类模板的实例。根据定义此题有 2 个类模板的实例、3 个对象。16.在 C+中,cin 是个_。(分数:2.50)A类B.对象 C.模板D.函数解析:解析 cin 是
32、istream 类的对象而不是类,即输入流对象。17.在下列字符中,不允许作为 C+标识符的是_。(分数:2.50)AbBBC._D.2 解析:解析 在 C+中,标识符只能使用字母、数字、下画线,其中数字不能是首字符,关键字也不能为标识符。D 以数字 2 开头,不符合命名规则。18.下列叙述中,错误的是_。(分数:2.50)A.false 是一个逻辑型常量B.“b“是一个字符型常量 C.365 是一个 int 常量D.3.1415926 是一个 double 常量解析:解析 用“”括起来的是字符串常量,用括起来的是字符常量。19.若 x 和 y 是程序中的两个整型变量,则下列 if 语句中正确
33、的是_。(分数:2.50)A.if(x=0) y=1; else y=2; B.if(x=0) then y=1 else y=2;C.if(x=0) y=1 else y=2;D.if x=0 y=1; else y=2;解析:解析 ifelse 语句是最基本 if 语句的扩展,其语法格式如下: if(条件)语句 1else语句 2 语句是以“;“结束的,条件也要用()括起来。20.要定义整型数组 x,使之包括初值为 O 的三个元素,下列语句中错误的是_。(分数:2.50)A.int x3=0, 0, 0;B.int x=0; C.static int x3=0;D.int x=0, 0,
34、0;解析:解析 如果不指定数组的长度而直接赋值,则赋值的元素个数就是数组的长度。B 的数组元素个数为 1;静态变量一般在声明处初始化,如果没有显式初始化,会被程序自动初始化为 0,所以 C 是正确的。21.关于函数中的返回类型,下列表述中错误的是_。(分数:2.50)A.返回类型中有可能包含关键字 intB.返回类型中有可能包含自定义标识符C.返回类型中有可能包含字符*D.返回类型中可能包含 解析:解析 函数的返回类型可以是预定义类型(如 int、long)、复合类型(如 intB.MyClass p=new MyClass;C.MyClass D.MyClass a, 解析:解析 C 项是动
35、态创建引用 p 使它指向 MyClass 类的对象。引用的格式类型名 protected: double x2; public: double x3; ; class YY:protected XX private: double y1; protected: double y2; public: double y3; ; 在类 YY 中保护成员变量的个数是_。(分数:2.50)A.1B.2C.3 D.4解析:解析 派生类以保护继承方式继承基类以后,基类公有成员和保护成员在派生类的访问权限都变为保护权限。基类的私有成员在派生类中总是隐藏的,只能在基类内访问。24.下列关于运算符重载的描述中,错
36、误的是_。(分数:2.50)A.可以通过运算符重载在 C+中创建新的运算符 B.赋值运算符只能重载为成员函数C.运算符函数重载为类的成员函数时,第一操作数是该类对象D.重载类型转换运算符时不需要声明返回类型解析:解析 运算符重载是针对 C+中原有运算符进行的,不可能通过重载创造出新的运算符。25.下列关于类模板的描述中,错误的是_。(分数:2.50)A.类模板的成员函数都是模板函数B.可以为类模板参数设置默认值C.类模板描述了一组类D.类模板中只允许有一个类型参数 解析:解析 模板形参表声明是由一个或多个模板形参组成的,类模板声明的常规参数可以带有默认值。类模板的成员函数时模板函数。类模板描述
37、的是一组类,而不是某个类。26.为完成下面的程序,在画线处应填入的语句是_。 #includediostream using namespace std; class Base int x; public: Base(int i)x=i; Base() ; class Derived:public Base public: _/完成类 Derived 构造函数的定义 ; int main() Derived obj(2); return 0; (分数:2.50)A.Derived(int i):Base(i) B.Derived()C.vold Derived(in*i):Base(i)D.D
38、erived(int i)Base(i);解析:解析 在派生类的构造函数中,必须对基类的成员进行初始化,并且必须在构造函数的初始化列表中调用基类的构造函数。27.有如下程序: #includeiostream us ing namespace std; const double PI=3.14; clasS Point int x, y; public: Point(int a, int b)x=a; y=b; int getx()return x; int gety()return y; ; class Circle:public Point int r; public: Circle(in
39、t a, int b, int c):Point(a, b)r=c; int getr()return r; double area()return PI*r*r; ; int main() Circle c1(5, 7, 10); coutc1.area()endl; return 0; 其运行结果是_。(分数:2.50)A.25B.49C.100D.314 解析:解析 语句“Circle c1(5, 7, 10);”中,前两个参数是圆心坐标,第三个参数才是圆的半径,按照圆面积计算公式 area(),得圆的面积为 PI*10*10。28.有以下程序: #includeiostream #in
40、cludestring using namespace std; class Base char baseName10; public: Base()strcpy(baseName, “Base“); virtual char *myName()return baseName; chat *className()return baseName; ; class Derived:public Base private: char derivedName10; public: Derived()strcpy(derivedName, “Derived“); char *myName()return
41、 derivedName; chat *className()return derivedName; ; void showPtr(Base int main() Base bb; Derived dd; showPtr(dd); return 0; 运行后的输出结果是_。(分数:2.50)A.Derived Base B.Base BaseC.Derved DerivedD.Base Derived解析:解析 函数 showPtr(Base public: void MyClass(int a)x=a; / int f(int a, int b) / x=a; y=b; int f(int
42、a, int b, int c=0) / x=a; y=b; z=c; static void g()x=10; / ;(分数:2.50)A.语句是类 MyClass 的构造函数的定义B.语句和语句实现类成员函数的重载C.语句实现对类成员变量 x 的更新操作D.语句、和都不正确 解析:解析 语句应该是类 MyClass 的构造函数的定义,但是构造函数不能有返回值 void;语句和语句的目的是重载函数 f(),但是都缺少返回值;对于语句,静态成员函数的实现中不能直接引用类中说明的非静态成员 x。所以,四个语句均不正确。30.以下程序企图把键盘终端输入的字符输出到名为 abc.txt 的文件中,直
43、到从终端读入字符“#“时结束输入和输出操作,但程序有错。程序出错的原因是_。 #includeiostream #includefstream using namespace std; int main() ofstream ofile; char ch; ofile.open(“d:/abc.txt“, “W“); do cinch; ofile.put(ch); while(ch!=“#“); ofile.close(); return 0; (分数:2.50)A.成员函数 open()调用形式错误 B.输入文件没有关闭C.成员函数 put()调用形式错误D.对象 ofile 定义错误解析
44、:解析 该程序在运行中会发现,如果不存在文件 abc.txt。将不会生成新的文件;即使已经存在该文件,也不能成功完成输出操作。原因在于 open 函数的第二个参数错误,open()函数不能成功打开文件 abc.txt。31.下列控制格式输入/输出的操作符中,能够设置浮点数精度的是_。(分数:2.50)A.setprecision B.setwC.setfillD.showpoint解析:解析 setprecision 是设置浮点精度输出的,setw 是设置输出宽度的,setfill 是设置填充字符类型的,showpoint 是即使小数部分为 0,也输出小数点及其后的无效 0。32.下列程序段中
45、包含 4 个函数,其中具有隐含 this 指针的是_。 int fun1(); class Test public: int fun2(); friend int fun3(); static int fun4(); ;(分数:2.50)A.fun1B.fun2 C.fun3D.fun4解析:解析 this 指针只能在类的成员函数中使用,静态成员函数没有 this 指针,因为类只有一个静态成员函数实例,所以 this 指针没有意义。友元函数不属于任何类,因此友元函数没有 this 指针。答案选 B。33.有如下程序: #includeiostream using namespace std;
46、class Test public: Test() Test(const Test ; Test fun(Test return t; int main() Test x, y; x=fun(y); return 0; 运行这个程序的输出结果是_。(分数:2.50)A.无输出B.1C.11 D.111解析:解析 拷贝构造函数的定义形式:类名:复制构造函数名(const类名 class A public: A(int i=0):r1(i) void print()cout“E“R1“-“; void print() constcout“C“R1*R1“-“; void print(int x) cout“P“R1*R1*R1“-“; private: int r1; ; int main() A a1; const A a2(4); a1.print(2); a2.print(); return 0; 运行时的输出结果是_。(分数:2.50)A.P8-E4B.P8-C16-C.P0-E4-D.P0-C16- 解析:解析 创建 a1 对象时,调用无参构造函