1、全国计算机等级考试二级 C+真题 2011年 9月及答案解析(总分:100.00,做题时间:90 分钟)一、(考试时间 90分钟,满分 100分)(总题数:35,分数:70.00)1.下列叙述中正确的是( )。 (分数:2.00)A.算法就是程序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对2.下列关于线性链表的叙述中,正确的是( )。 (分数:2.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上三
2、种说法都不对3.下列关于二叉树的叙述中,正确的是( )。 (分数:2.00)A.叶子结点总是比度为 2的结点少一个B.叶子结点总是比度为 2的结点多一个C.叶子结点数是度为 2的结点数的两倍D.度为 2的结点数是度为 1的结点数的两倍4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于应用软件的是( )。 (分数:2.00)A.学生成绩管理系统B.C语言编译程序C.UNIX操作系统D.数据库管理系统5.某系统总体结构图如下图所示: (分数:2.00)A.7B.6C.3D.26.程序调试的任务是( )。 (分数:2.00)A.设计测试用例B.验证程序的正确性C.发现程序中的
3、错误D.诊断和改正程序中的错误7.下列关于数据库设计的叙述中,正确的是( )。 (分数:2.00)A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.数据库系统的三级模式不包括( )。 (分数:2.00)A.概念模式B.内模式C.外模式D.数据模式9.有三个关系 R、S 和 T如下: (分数:2.00)A.自然连接B.差C.交D.并10.下列选项中属于面向对象设计方法主要特征的是( )。 (分数:2.00)A.继承B.自顶向下C.模块化D.逐步求精11.在对函数进行原型声明时,下列语法成分中,不需要的是( )。 (分数:2
4、.00)A.函数返回类型B.函数参数列表C.函数名D.函数体12.下列关于 this指针的描述中,正确的是( )。 (分数:2.00)A.类的成员函数都有 this指针B.类的友元函数都有 this指针C.任何与类相关的函数都有 this指针D.类的非静态成员函数都有 this指针13.有如下类定义: class AA int a; public: AA(int n=0):a(n) ; class BB:public AA public: BB(intn)_ ; 其中横线处缺失部分是( )。 (分数:2.00)A.:a(n)B.:AA(n)C.a(n);D.a=n;)14.为类 Matrix重
5、载下列运算符时,只能作为 Matrix类成员函数重载的运算符是( )。 (分数:2.00)A.+B.=C.D.+15.下列关于模板的描述中,错误的是( )。 (分数:2.00)A.类模板的成员函数都是模板函数B.函数模板是一种参数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键字 typename声明16.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是( )。 (分数:2.00)A.fstreamB.istrearaC.ostreamD.iomanip17.下列选项中,不是 C+关键字的是( )。 (分数:2.00)A.classB.functionC
6、.friendD.virtual18.若有定义语句“int i=2, j=3;”,则表达式 i/j的结果是( )。 (分数:2.00)A.0B.0.7C.0.66667D.0.6666666719.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是( )。 (分数:2.00)A.if(a=B) n=0;B.if(aB) |(bC) )n=1; else n=0;C.if(aB) if(bC) n=h else n=0; else n=0;D.if(aB) n=1; else if(b=C) n=1; else if(bC) n=1; else n=0;20.有如下语句序列
7、: int x=100, coutx-rend1: 己知其中变量 x的地址为0012FF7C,则执行该语句序列的输出结果为( )。 (分数:2.00)A.100-100B.100-0012FF7CC.0012FF7C-100D.0012FF7C-0012FF7C21.己知函数 f的原型是“void f(int*x, int ”,变量 v1、v2 的定义是“int v1, v2;”,下列调用语句中,正确的是( )。 (分数:2.00)A.f(v1, v2);B.f(v1, C.f(D.f(22.有如下类定义: class Sample public; Sample(int x):ref(x) /
8、 private: Sample():ref(0) / static int va1=5; / const int ref; / ; 上述程序段中,错误的语句是( )。 (分数:2.00)A.B.C.D.23.有如下类定义: class B public: void fun1() private: void fun2() protected: void fun3() ; class D: public B protected: void fun4() ; 若 obj是类 D的对象,则下列语句中不违反访问控制权限的是( )。 (分数:2.00)A.obj. fun1();B.obj. fun2(
9、);C.obj. fun3();D.obj. fun4();24.有如下类定义 class MyClass public: Private: int data; ; 若要为 MyClass类重载流输入运算符,使得程序中可以“cinobj;”形式输入 MyClass类的对象 obj,则横线处的声明语句应为( )。 (分数:2.00)A.friend istreamB.friend istreamC.istreamD.istream25.已知主函数中通过如下语句序列实现对函数模板 swap的调用: int a10, b10; swap(a, b, 10); 下列对函数模板 swap的声明中,会导致
10、上述语句序列发生编译错误的是( )。 (分数:2.00)A.B.C.D.26.若目前 D盘根目录下并不存在 test. txt文件,则下列打开文件方式不会自动创建 test.txt文件的是( )。 (分数:2.00)A.ifstream fin; fin. open(“d:/test.txt“, ios_base:in);B.fstream fio; fio. open(“d:/test. txt”, ios_base:out);C.ofstream fout; fout. open(“d:/test. txt”, ios_base:out);D.ofstream fout; fout. op
11、en(“d:/test. txt”, ios_base:app);27.已知类 Myclass的定义如下 class MyClass public: void function1(MyClass void function3()coutdata; staric void function4()coutdata; private: int data; ; 其中有编译错误的函数是( )。 (分数:2.00)A.function1B.function2C.function3D.function428.有如下程序: #includeiostream using namespace std; class
12、 MyClass public: MyClass() cout*;) MyClass(MyClass) MyClass() cout;) ; int main(); MyClass a; Myclass b(A) ; return 0; 运行时的输出结果是( )。 (分数:2.00)A.*#B.#*C.*#D.#*29.已知类 Myclass的定义如下: class MyClass public: MyClass(int D) data=d; MyClass () private: int data; ; 下列对 Myclass类对象数组的定义和初始化语句中,正确的是( )。 (分数:2.00
13、)A.MyClass arrays2;B.MyClass arrays2=MyClass(5);C.MyClass arrays2=MyClass(5), MyClass(6);D.MyClass*arrays=new MyClass2;30.有如下程序: class Base public: int data; ; class Derived1:public Base; class Derived2:protected Base; int main() Derived1 d1; Derived2 d2; d1. data=0; / d2. data=0; / return 0; 下列关于程序
14、编译结果的描述中,正确的是( )。 (分数:2.00)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编译错误D.皆有编译错误31.有如下程序: #includeiostream using namespace std; class Base1 public: Base1(int D) coutd; Base1() ; class Base2 public: Base2(int D) coutd; Base2 () ; class Derived:public Base1, Base2 public: Derived(int a, int b, int c, int D) ; Ba
15、se1(B) , Base2(A) , b1(D) , b2(C) Private: int b1; int b2; ; int main() Derived d(1, 2, 3, 4); return 0; 运行时的输出结果是( )。 (分数:2.00)A.1234B.2134C.12D.2132.有如下程序: #includeiostream using namespace std; class Base public: virtual void function1()cout0; void function2()cout1; ; class Derived:public Base pub
16、lic: void function1()cout2; void function2()cout3; ; int main() Base*P=new Derived(); p-function1(); p-function2(); return 0; ; 运行时的输出结果是( )。(分数:2.00)A.01B.21C.03D.2333.若为 Fraction类重载前增 1运算符+,应在类体中将其声明为( )。 (分数:2.00)A.FractionB.FractionD.friend Fraction34.有如下程序: #includeiomanip #includeiostream usin
17、g namespace std; int main() coutsetfill(*)setw(6)123456; return 0; 运行时的输出结果是( )。 (分数:2.00)A.*123*456B.*123456*C.*123456D.12345635.有如下程序: #includeiostream using namespace std; void function2(int n); void function1(int n) if(n=0)retum; function2(n-2); void function2(int n) if(n=0)return; function1(n-1
18、); int main() function1(5); return 0; 下列关于程序运行情况的描述中,正确的是( )。 (分数:2.00)A.function1运行 1次,function2 运行 2次B.function1运行 2次,function2 运行 1次C.function1运行 2次,function2 运行 3次D.function1运行 2次,function2 运行 2次二、填空题(每空 2分,共 30分)(总题数:14,分数:30.00)36.数据结构分为线性结构与非线性结构,带链的栈属于_【1】 1。 (分数:2.00)填空项 1:_37.在长度为 n的顺序存储的线
19、性表中插入一个元素,最坏情况下需要移动表中 1【2】 2 个元素。 (分数:2.00)填空项 1:_38.常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD) ,则应采用 1【3】 2 方法。 (分数:2.00)填空项 1:_39.数据库系统的核心是_【4】 1。 (分数:2.00)填空项 1:_40.在进行关系数据库的逻辑设计时,E-R 图中的属性常被转换为关系中的属性,联系通常被转换为_【5】 1。 (分数:2.00)填空项 1:_41.若有“intx=15, y=20;”,则执行表达式 y-=x+后,表达式 x+y的值为 1【6】 2。 (分数:2
20、.00)填空项 1:_42.执行语句序列“int k=0; do k+; while(k*k20);”后,k 的值为 1【7】 2。(分数:2.00)填空项 1:_43.下列程序运行时的输出结果是 1【8】 2。 #includeiostream using namespace std; int Xfun(int*a, int n); int main3 int b6=-2, 6, 8, -3, 5, 4); coutXfun(b, 6)end1; return 0; int Xfun(int*a, int n) int x=0; for(int*p=a; pa+n; p+)if(*p0)x+
21、=*p; return X; (分数:2.00)填空项 1:_44.下列程序运行时的输出结果是_【9】 1。 #includeiostream using namespace std; void Xfun(int int main2 int a=3, b=4; Xfun(a, B) ; couta*a+bend1; return 0; void Xfun(int x=y; y=z; (分数:2.00)填空项 1:_45.若 Xcs是一个类,该类中具有一个函数体为空的不带参数的构造函数,此构造函数的类外定义为 1【10】 2。(分数:2.00)填空项 1:_46.有如下程序: #includei
22、ostream using namespace std; class Sac int n; public: Sac1:n(4)coutn; Sac(int k):n(k)coutn; Sac2contn+n; ; int main3 Sac s1,*s2; s2=new Sac(3); delete s2; return 0; 运行时的输出结果是 4【11】 5。 (分数:2.00)填空项 1:_有如下两个类声明 class AA public: int m; ; class BB: protected AA int n; ; 在类 BB中,数据成员 m的访问属性是_【12】_,数据成员 n的
23、访问属性是_【13】_。 (分数:4.00)填空项 1:_填空项 1:_47.已知类 Ben中将二元运算符“/”,重载为友元函数,若 c1、c2 是 Ben的两个对象当使用运算符函数进行显式调用时,与表达式 c1/c2等价的表示为_【14】 1。(分数:2.00)填空项 1:_48.C+中的模板分为函数模板和_【15】 1。(分数:2.00)填空项 1:_全国计算机等级考试二级 C+真题 2011年 9月答案解析(总分:100.00,做题时间:90 分钟)一、(考试时间 90分钟,满分 100分)(总题数:35,分数:70.00)1.下列叙述中正确的是( )。 (分数:2.00)A.算法就是程
24、序B.设计算法时只需要考虑数据结构的设计C.设计算法时只需要考虑结果的可靠性D.以上三种说法都不对 解析:解析 所谓算法是指解题方案的准确而完整的描述。是一组严谨地定义运算顺序的规则 并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法不等于程序,也不等于计算方法。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。2.下列关于线性链表的叙述中,正确的是( )。 (分数:2.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素
25、 D.以上三种说法都不对解析:解析 线性表的链式存储结构称为线性链表。在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。3.下列关于二叉树的叙述中,正确的是( )。 (分数:2.00)A.叶子结点总是比度为 2的结点少一个B.叶子结点总是比度为 2的结点多一个 C.叶子结点数是度为 2的结点数的两倍D.度为 2的结点数是度为 1的结点数的两倍解析:解析 由二叉树的性质可以知道在二叉树中叶子结点总是比度为 2的结点多一个。4.软件按功能可以分为应用软件、系统软件和支撑软件(或工具软件)。下面属于
26、应用软件的是( )。 (分数:2.00)A.学生成绩管理系统 B.C语言编译程序C.UNIX操作系统D.数据库管理系统解析:解析 学生成绩管理系统为应用软件。5.某系统总体结构图如下图所示: (分数:2.00)A.7B.6C.3 D.2解析:解析 这个系统总体结构图是一棵树结构,在树结构中,根结点在第 1层,同一层上所有了结点都在下层,由系统总体结构图可知,这棵树共 3层。在树结构中,树的最大层次称为树的深度。所以这棵树的深度为 3。6.程序调试的任务是( )。 (分数:2.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误 解析:解析 所谓程序调试,是将
27、编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。其任务是诊断和改正程序中的错误。7.下列关于数据库设计的叙述中,正确的是( )。 (分数:2.00)A.在需求分析阶段建立数据字典 B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典解析:解析 数据库设计目前一般采用生命周期法,即将整个数据库应用系统的开发分解成目标独立的若干阶段。分别是:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步修改阶段。数据字典是对系统中数据的详尽描述,是各类数据属性的清单。对数据设计来讲,数据字典
28、是进行详细的数据收集和数据分析所获得的主要结果。8.数据库系统的三级模式不包括( )。 (分数:2.00)A.概念模式B.内模式C.外模式D.数据模式 解析:解析 数据库系统的三级模式包括概念模式、外模式和内模式(物理模式)。9.有三个关系 R、S 和 T如下: (分数:2.00)A.自然连接B.差 C.交D.并解析:解析 由三个关系 R、S 和 T的结构可以知道,关系 T是由关系 R、S 经过差运算得到的。10.下列选项中属于面向对象设计方法主要特征的是( )。 (分数:2.00)A.继承 B.自顶向下C.模块化D.逐步求精解析:解析 面向对象设计方法的主要特征有封装性、继承性和多态性。而结
29、构化程序设计方法的主要原则有自顶向下,逐步求精,模块化,限制使用 goto语句。11.在对函数进行原型声明时,下列语法成分中,不需要的是( )。 (分数:2.00)A.函数返回类型B.函数参数列表C.函数名D.函数体 解析:解析 在 C+中函数在使用之前要预先声明,这种声明在标准 C+中称为函数原型。函数给出了函数名、返回类型以及在调用函数时必须指明参数个数和类型。12.下列关于 this指针的描述中,正确的是( )。 (分数:2.00)A.类的成员函数都有 this指针B.类的友元函数都有 this指针C.任何与类相关的函数都有 this指针D.类的非静态成员函数都有 this指针 解析:解
30、折 this 是成员函数所属对象的指针,它指向类对象的地址。成员函数通过这个指针可以知道自己属于哪一个对象。它隐藏于每个类的非静态成员函数中。13.有如下类定义: class AA int a; public: AA(int n=0):a(n) ; class BB:public AA public: BB(intn)_ ; 其中横线处缺失部分是( )。 (分数:2.00)A.:a(n)B.:AA(n) C.a(n);D.a=n;)解析:解析 根据派生类构造函数的一般格式:派牛类名(总参数表):基类名 1(参数表1), 基类名 n(参数表 n), 成员对象名 1(参数表 n+1), 成员对象名
31、 m(参数表 n+m)派生类构造函数体。在派生类 BB的构造函数总参数表后面应该接上基类名 AA和其参数。14.为类 Matrix重载下列运算符时,只能作为 Matrix类成员函数重载的运算符是( )。 (分数:2.00)A.+B.= C.D.+解析:解析 在 C+中,=、()、-以及所有的类型转换运算符只能作为成员函数重载。15.下列关于模板的描述中,错误的是( )。 (分数:2.00)A.类模板的成员函数都是模板函数B.函数模板是一种参数化类型的函数C.满足一定条件时可以省略模板实参D.模板形参只能由关键字 typename声明 解析:解析 同一模板的声明和定义中,模板形参的名字不必相同。
32、每个模板类型形参前面必须带上关键字 typename/class,每个非类型形参前面必须带上类型名字。16.要利用 C+流实现输入输出的各种格式控制,必须在程序中包含的头文件是( )。 (分数:2.00)A.fstreamB.istrearaC.ostreamD.iomanip 解析:解析 要使用 setw、fixed 等操作符,须包含 iomanip这个文件。17.下列选项中,不是 C+关键字的是( )。 (分数:2.00)A.classB.function C.friendD.virtual解析:解析 class、friend、virtual 都足 C+的关键字,而 funtion是 VB
33、的关键字。18.若有定义语句“int i=2, j=3;”,则表达式 i/j的结果是( )。 (分数:2.00)A.0 B.0.7C.0.66667D.0.66666667解析:解析 由于变量 i、j 都是整型变量,所以两者相除所得的商也是整型数据。19.下列语句中,与语句“n=(ab?(bc?1:0):0);”的功能等价的是( )。 (分数:2.00)A.if(a=B) n=0;B.if(aB) |(bC) )n=1; else n=0;C.if(aB) if(bC) n=h else n=0; else n=0; D.if(aB) n=1; else if(b=C) n=1; else i
34、f(bC) n=1; else n=0;解析:解析 条件表达式(ab?(bc?1:0):0)的含义是,如果 ab 成立,则此表达式的值等于条件表达式(bc?1:0)的值,否则其值等于 0。而条件表达式(bc?1:0)的含义是,如果 bc 成立,其值等于1,否则其值等于 0。20.有如下语句序列: int x=100, coutx-rend1: 己知其中变量 x的地址为0012FF7C,则执行该语句序列的输出结果为( )。 (分数:2.00)A.100-100 B.100-0012FF7CC.0012FF7C-100D.0012FF7C-0012FF7C解析:解析 在语句 int x=100,
35、中声明 r初始化对 x的引用,所以 x和”,变量 v1、v2 的定义是“int v1, v2;”,下列调用语句中,正确的是( )。 (分数:2.00)A.f(v1, v2);B.f(v1, C.f( D.f(解析:解析 在函数 f的形参表达式中第一个形参为整型指针变量,第二个为整型引用变量,所以用实参 v1的指针初始化第一个形参,用实参 v2初始化第二形参。22.有如下类定义: class Sample public; Sample(int x):ref(x) / private: Sample():ref(0) / static int va1=5; / const int ref; / ;
36、 上述程序段中,错误的语句是( )。 (分数:2.00)A.B.C. D.解析:解析 静态整型数据不能定义为类的数据成员。23.有如下类定义: class B public: void fun1() private: void fun2() protected: void fun3() ; class D: public B protected: void fun4() ; 若 obj是类 D的对象,则下列语句中不违反访问控制权限的是( )。 (分数:2.00)A.obj. fun1(); B.obj. fun2();C.obj. fun3();D.obj. fun4();解析:解析 派生类
37、D公有继承父类 B,所以 obj可以访问基类 B的公有,不能访问其它成员。24.有如下类定义 class MyClass public: Private: int data; ; 若要为 MyClass类重载流输入运算符,使得程序中可以“cinobj;”形式输入 MyClass类的对象 obj,则横线处的声明语句应为( )。 (分数:2.00)A.friend istream B.friend istreamC.istreamD.istream解析:解析 C+的输入运算符作为非类成员函数重载。在一个类中,可将输入运算符声明为友元函数,在类 MyClass重载输入运算符的形式如选项 A) 所示。
38、25.已知主函数中通过如下语句序列实现对函数模板 swap的调用: int a10, b10; swap(a, b, 10); 下列对函数模板 swap的声明中,会导致上述语句序列发生编译错误的是( )。 (分数:2.00)A.B. C.D.解析:解析 由题目中函数 swap(a, b, 10)调用语句可知,在对函数模板 swap的声明语句中,应将第一、二个参数设为数组变量,第二个参数为整型变量。26.若目前 D盘根目录下并不存在 test. txt文件,则下列打开文件方式不会自动创建 test.txt文件的是( )。 (分数:2.00)A.ifstream fin; fin. open(“d
39、:/test.txt“, ios_base:in); B.fstream fio; fio. open(“d:/test. txt”, ios_base:out);C.ofstream fout; fout. open(“d:/test. txt”, ios_base:out);D.ofstream fout; fout. open(“d:/test. txt”, ios_base:app);解析:解析 如果以 iso_base:in模式打开文件但文件又不存在时,可以通过 fail()测出文件打开失败,不会自动创建文件。27.已知类 Myclass的定义如下 class MyClass pub
40、lic: void function1(MyClass void function3()coutdata; staric void function4()coutdata; private: int data; ; 其中有编译错误的函数是( )。 (分数:2.00)A.function1B.function2C.function3D.function4 解析:解析 funcyion4()函数作为类的静态成员函数,不能直接访问类中说明的非静态成员,即coutdata 在编译时会出错。28.有如下程序: #includeiostream using namespace std; class MyC
41、lass public: MyClass() cout*;) MyClass(MyClass) MyClass() cout;) ; int main(); MyClass a; Myclass b(A) ; return 0; 运行时的输出结果是( )。 (分数:2.00)A.*#B.#*C.*# D.#*解析:解析 程序在执行时,先创建类对象 a,输出*,再创建类对象 b,输出#,然后再依次调用类对象b和 a的析构函数,输出两个。29.已知类 Myclass的定义如下: class MyClass public: MyClass(int D) data=d; MyClass () priv
42、ate: int data; ; 下列对 Myclass类对象数组的定义和初始化语句中,正确的是( )。 (分数:2.00)A.MyClass arrays2;B.MyClass arrays2=MyClass(5);C.MyClass arrays2=MyClass(5), MyClass(6); D.MyClass*arrays=new MyClass2;解析:解析 在选项 C) 中定义了类 MyClass对象数组 arrays2,并用对象 MyClass(5)和 MyClass(6)对这个数组中的两个元素赋初值。30.有如下程序: class Base public: int data;
43、 ; class Derived1:public Base; class Derived2:protected Base; int main() Derived1 d1; Derived2 d2; d1. data=0; / d2. data=0; / return 0; 下列关于程序编译结果的描述中,正确的是( )。 (分数:2.00)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编译错误 D.皆有编译错误解析:解析 保护继承的类 Dervied2不能访问基类 Base中的公共数据成员 data。31.有如下程序: #includeiostream using namespac
44、e std; class Base1 public: Base1(int D) coutd; Base1() ; class Base2 public: Base2(int D) coutd; Base2 () ; class Derived:public Base1, Base2 public: Derived(int a, int b, int c, int D) ; Base1(B) , Base2(A) , b1(D) , b2(C) Private: int b1; int b2; ; int main() Derived d(1, 2, 3, 4); return 0; 运行时的输
45、出结果是( )。 (分数:2.00)A.1234B.2134C.12D.21 解析:解析 程序在创建派生类对象 d时,分别调用基类 Base1和 Base1的构造函数。32.有如下程序: #includeiostream using namespace std; class Base public: virtual void function1()cout0; void function2()cout1; ; class Derived:public Base public: void function1()cout2; void function2()cout3; ; int main()
46、Base*P=new Derived(); p-function1(); p-function2(); return 0; ; 运行时的输出结果是( )。(分数:2.00)A.01B.21 C.03D.23解析:解析 函数 function1()在基类 Base中定义为虚成员函数,而在派生类 Dervied中重新进行了定义,输出字符 2,函数 function2()在基类 Base中定义虚成员函数。在主函数中使用指向基类的指针变量p访问 function2()时,输出 1。33.若为 Fraction类重载前增 1运算符+,应在类体中将其声明为( )。 (分数:2.00)A.Fraction B.FractionD.friend Fraction解析:解析 在类 Fraction中重载前增 1运算符+时,其声明形式为 Fraction 在类Fraction中重载后增 1运算符+时,其声明形式为 Fraction 。34.有如下程序: #includeiomanip #includeiostream using namespace std; int main() coutsetfill(*)setw(