1、二级 C+笔试-397 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:35,分数:59.00)1.在关系数据库中,用来表示实体之间联系的是( )。A树结构 B网结构 C线性表 D二维表(分数:2.00)A.B.C.D.2.设有程序段:int k10;while(k0) kk1;则下面描述中正确的是A) 循环执行 10次 B) 无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次(分数:2.00)A.B.C.D.3.C+源程序文件的扩展名为( )。A) .CPP B) .C C) .DLL D) .EXE(分数:1.00)A.B.C.D.4.以下数组定义中不正
2、确的是 _。A) int a23B) int b 3=0;C) int c11=0;D) int d3=1,2,(1,2,31,2,3,4;(分数:2.00)A.B.C.D.5.下列关于栈的描述中错误的是 A) 栈是先进后出的线性表 B) 栈只能顺序存储 C) 栈具有记忆作用 D) 对栈的插入与删除操作中,不需要改变栈底指针(分数:2.00)A.B.C.D.6.在下面的运算符重载函数的原型中,错误的是( )。AVolume operator-(double,double);Bdouble Volume:operator-(double);CVolume Volume:operator-(Vol
3、ume);DVolume operator-(Volume,Volume);(分数:2.00)A.B.C.D.7.设有如下关系表:(分数:1.00)A.B.C.D.8.下列字符串中可以用作 C+语言标识符的是( )。A_1234 BfoobarCvirtual D34var(分数:2.00)A.B.C.D.9.在 C+语言中,数据封装要解决的问题是A) 数据的规范化B) 便于数据转换C) 避免数据丢失D) 防止不同模块之间数据的非法访问(分数:1.00)A.B.C.D.10.已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中
4、,错误的是_ 。A) 这是运算符的重载运算符函数B) 这个函数所重载的运算符是一个一元运算符C) 这是一个成员函数D) 这个函数不改变类的任何数据成员的值(分数:2.00)A.B.C.D.11.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )。Aoperator/(x.operator-(),y); Boperator/(operator-(x),y);Cx.operator-().operator/(y); Dy.operator/(operator-(x);(分数:2.00)A.B.C.D.12.在对象方法中,一个对象请求另
5、一个对象为其服务的方式是通过发送( )来实现。A) 调用语句 B) 命令C) 中令 D) 消息(分数:2.00)A.B.C.D.13.一个关系数据库文件中的各条记录( )。A) 前后顺序不能任意颠倒,一定要按照输入的顺序排列B) 前后顺序可以任意颠倒,不影响库中数据的数据关系C) 前后顺序可以任意颠倒,但排列顷序不同,统计处理的结果就可能不同D) 前后顺序不能任意颠倒,一定要按照关键词段值的顺序排列(分数:1.00)A.B.C.D.14.用黑盒技术设计测试用例的方法之一为( )。A) 因果图 B) 逻辑覆盖C) 循环覆盖 D) 基本路径测试(分数:1.00)A.B.C.D.15.下面程序输出的
6、结果是#includeiostreamhvoid main()int i;int a33=1,2,3,4,5,6,7,8,9;for(i=0;3;i+)couta2-ii“ “;A)1 5 9 B)7 5 3 C)3 5 7 D)5 91(分数:1.00)A.B.C.D.16.下列关于多态性的描述,错误的是( )。AC+语言中的多态性分为编译时的多态性和运行时的多态性B编译时的多态性可通过函数重载实现C运行时的多态性可通过模板和虚函数实现D实现运行时多态性的机制称为动态绑定(分数:2.00)A.B.C.D.17.有 3个关系 R、S 和 T如下:(分数:2.00)A.B.C.D.18.下列叙述
7、中,不属于测试的特征的是( )。A测试的挑剔性 B完全测试的不可能性C测试的可靠性 D测试的经济性(分数:2.00)A.B.C.D.19.程序的三种基本控制结构是 _。A) 过程、子程序和分程序B) 顺序、选择和重复C) 递归、堆栈和队列D) 调用、返回和转移(分数:2.00)A.B.C.D.20.关于 for循环,不正确的是( )。A) 在循环体中,不能改变循环控制变量值 B) 在执行中循环控制变量初值、终值可变C) 循环控制变量可增可减 D) 循环控制变量可以不必在说明部分说明(分数:2.00)A.B.C.D.21.有如下程序:#includeiostreamusing namespace
8、 std;class Instrumentpublic:virtual void Display( )=0;class Piano:public Instrumentpublic:void Display( )/*函数体程序略*/;int, main( )Instrument s;Instrument*p=0;/.;return 0;下列叙述中正确的是A) 语句“Insturment *p=0;”编译时出错B) 语句“Instruments;”编译时出错C) 类 Piano中的 Display函数不是虚函数D) 类 Instrumen七是一个虚基类(分数:2.00)A.B.C.D.22.若有如
9、下程序:#include iostreamusing namespace std;int s=0;class samplestatic int n;public:sample(int i)n=i;static void add()s+=n;int sample:n=0;int main()sample a(2),b(5);sample:add();coutsendl;return 0;程序运行后的输出结果是( )。A2 B5 C7 D3(分数:2.00)A.B.C.D.23.下面程序的输出结果是( )。#include iostreamusing namespace Std;int main(
10、)int x6=1,3,5,7,9,11,*k,*s;k=x;s=class test private:int a;public:test ( ) cout “constructor“ endl; test(int a) coutaendl; test(const test cout “copy constructor“ endl; test( ) cout “destructor“ endl; ;int main( ) test A(3);return 0;执行这个程序的输出结果是( )。A3BconstructordestructorCcopy constructordestructorD
11、3destructor(分数:2.00)A.B.C.D.28.以下说法错误的是 _。A) 采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生成率B) 在面向对象的程序中,对象是属性(状态)和方法(操作)的封装体C) 在面向对象的程序中,对象彼此间通过继承和多态性启动响应的操作D) 继承和多态机制是面向对象程序中实现的主要手段(分数:2.00)A.B.C.D.29.C+语言中,编译过程后生成的文件类型为( )。A*.cpp B*.objC*.h D*.exe(分数:2.00)A.B.C.D.30.执行语句 for(i=1;i+4;);,后变量 i的值是A)3 B)4 C)5 D)
12、不定(分数:1.00)A.B.C.D.31.有以下程序:#include iostreamusing namespace std;class Bprivate:int a,b;public:B()B(int i,int j);void printb();class AB C;public:A()A(int i,int j);void printa();A:A(int i,int j) :c(i,j) void A:printa()c.printb ();B:B(int i, int j)a=i;b=j;void B: :printb()couta“, “bend1;int main ()A m
13、(7,8);m.printa();return 0;该程序运行后的输出结果是( )。A) 5,6 B) 7,8 C) 8,9 D) 9,10(分数:1.00)A.B.C.D.32.下列程序中划线处正确的语句是( )。# include iostreamusing namespace std;class Basepublic:void fun()cout“Base: fun“ endl;class Derived:public Basevoid fun()_ 显式调用基类的函数 fun()cout“Derived: fun“endl;Afun(); BBasefun(); CBase:fun()
14、; DBase- fun();(分数:1.00)A.B.C.D.33.下面程序的运行结果为( )。#include iostreamusing namespace std;void main( ) for(int a =0,x =0; !x a + );cout a endl;A) 0 B) 1 C) 10 D) 11(分数:2.00)A.B.C.D.34.关于模板,下列说法不正确的是( )。A用类模板定义一个对象时,不能省略实参B类模板只能有虚拟类型参数C类模板本身在编译中不会生成任何代码D类模板的成员函数都是模板函数(分数:2.00)A.B.C.D.35.对于常数据成员,下面描述正确的是(
15、 )。A) 常数据成员可以不初始化,并且不能更新B) 常数据成员必须被初始化,并且不能更新C) 常数据成员可以不初始化,并且可以被更新D) 常数据成员必须被初始化,并且可以被更新(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:27.00)36.下面是一个递归函数,其功能是使数组中的元素反序排列。请将函数补充完整。void reverse(int*a,int size)if(size2)return;int k=a0;a0=asize-1;asize-1=k;reverse(a+1,_);(分数:2.00)填空项 1:_37.下列程序的输出结果是_。#includeiostre
16、amusing namespace std;class Test public:Test() cnt+;Test() cnt-;static int Count() return cnt;private:static int cnt;int Test:cnt=0;int main()coutTest:Count();Test t1,t2;Test*oT3=new Test;Test*pT4=new Test;coutTest:Count();delete pT4;delete pT3;coutTest:Count()endl;return 0;(分数:2.00)填空项 1:_38.在声明派生类
17、时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。已知有如下类定义:class Base protected:void fun1;class Derived: Base ;则 Base类中的成员函数 fun2,在 Derived 类中的访问权限是 3(注意:要求填写 private、protected或 public中的一项)。(分数:2.00)填空项 1:_39.在 C+流类库中,根基类为 【18】 。(分数:2.00)填空项 1:_40.下列程序的运行结果是_。#includeiostream.hclass Basepublic:virtual void func(
18、int i)cout“class Base:“iend1;);class Derived: public Basepublic:void func(double d)cout“class Derived:“dendl;void main( )Base a,*p=a;Derived b;p=(*p).func(3.3);(分数:2.00)填空项 1:_41.在 C+中,包含了处理用户控制的文件操作所需的信息是指头文件中的 【15】 。(分数:2.00)填空项 1:_42.类中数据成员和成员函数的默认访问级别为 1。(分数:2.00)填空项 1:_43.类模板的使用实际上是将类模板实例化成一个具体
19、的 【15】 。(分数:1.00)填空项 1:_44.线性表的存储结构主要分为顺序存储结构和链式存储结构。队列是一种特殊的线性表,循环队列是队列的 1 存储结构。(分数:2.00)填空项 1:_45.一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集“项目主管“与实体集“项目“的联系属于 1 的联系。(分数:2.00)填空项 1:_46.下列函数的功能是判断字符串 str是否对称,对称则返回 true,否则返回 false。请在横线处填上适当内容,实现该函数。 bool fun(char*str)int i=o,i=0;while(strj) 【6】 ;for(j-;iji+,j-
20、);return i 【7】 j;(分数:1.00)填空项 1:_47.以下程序的输出结果是 【8】 。#includeiostreamhclass objectprivate:int va1;public:object1;object(int i)object2; ;object:Object3va1=0;cout “Default constructor for object“ end1;object:object(int i)va1=icout “Constructor for object“ va1 end1;object:object4cout “Destructor for obj
21、ect“ va1 end1;class container private:object one;object two;int data;public:container5;container(int i,int j,int k);container6; ;container:container7data=0;cout “Default constructor for container“ end1;container:container(int i,int j,int k):two(i),one(j)data=k;cout “Constructor for container“ end1;c
22、ontainer:container8cout “Destructor for container“ end1;void main9container anObj(5,6,10);(分数:1.00)填空项 1:_48.多态性分两类:编译时的多态性和 1。(分数:2.00)填空项 1:_49.下列程序对加号进行了重载,划线部分的语句是 【15】 。# includeiostream. h# includemath. hclass Triangleint x,y,z;double area;public:Triangle(int i,int j, int k)double s;x=i;y=j;z=
23、k;s=(x+y+z)/2.0;area=sqrt(s*(s-x)*(s-y)*(s-z);void disparea()cout“Area=“areaendl;friend double operator+(Triangle t1,Triangle t2)_;void main()Triangle t1(3,4,5),t2(5,12,13);double s;cout“t1:“;t1.disparea()cout“t2:“;t2.disparea()s=t1+t2;tout“总面积:=“sendl;(分数:2.00)填空项 1:_50.当线性表采用顺序存储结构实现存储时,其主要特点是 【2】
24、 。(分数:2.00)填空项 1:_二级 C+笔试-397 答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:35,分数:59.00)1.在关系数据库中,用来表示实体之间联系的是( )。A树结构 B网结构 C线性表 D二维表(分数:2.00)A.B.C.D. 解析:2.设有程序段:int k10;while(k0) kk1;则下面描述中正确的是A) 循环执行 10次 B) 无限循环C) 循环体语句一次也不执行 D) 循环体语句执行一次(分数:2.00)A.B.C. D.解析:解析 本题中,首先将 0赋给 k,表达式变为 0,跳出循环,没有执行循环体语句。解答本题的关键是掌握
25、 while语句。3.C+源程序文件的扩展名为( )。A) .CPP B) .C C) .DLL D) .EXE(分数:1.00)A. B.C.D.解析:解析 本题考察有关 C+语言中有关 C+程序开发方面的知识点。C+语言源程序的扩展名为CPP,DLL 是动态连接库文件的扩展名,.EXE 是可执行文件的扩展名。4.以下数组定义中不正确的是 _。A) int a23B) int b 3=0;C) int c11=0;D) int d3=1,2,(1,2,31,2,3,4;(分数:2.00)A.B.C.D. 解析:5.下列关于栈的描述中错误的是 A) 栈是先进后出的线性表 B) 栈只能顺序存储
26、C) 栈具有记忆作用 D) 对栈的插入与删除操作中,不需要改变栈底指针(分数:2.00)A.B. C.D.解析:解析 栈是一种数据结构,是在某一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶。在栈顶进行插入和删除操作,不需要修改栈底指针,栈的实现可以采用顺序存储也可以采用链表存储。6.在下面的运算符重载函数的原型中,错误的是( )。AVolume operator-(double,double);Bdouble Volume:operator-(double);CVolume Volume:operator-(Volume);DVolu
27、me operator-(Volume,Volume);(分数:2.00)A. B.C.D.解析:7.设有如下关系表:(分数:1.00)A.B. C.D.解析:解析 T 是 RS 的结果,关系 T由属于关系 R的或者属于关系 S的元组组成。8.下列字符串中可以用作 C+语言标识符的是( )。A_1234 BfoobarCvirtual D34var(分数:2.00)A. B.C.D.解析:解析 C+语言标识符只能由数字,字母和下划线组成,并且只能以字母和下划线为开头。9.在 C+语言中,数据封装要解决的问题是A) 数据的规范化B) 便于数据转换C) 避免数据丢失D) 防止不同模块之间数据的非法
28、访问(分数:1.00)A.B.C.D. 解析:解析 数据封装为了防止不同模块间数据的非法访问及修改。10.已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_ 。A) 这是运算符的重载运算符函数B) 这个函数所重载的运算符是一个一元运算符C) 这是一个成员函数D) 这个函数不改变类的任何数据成员的值(分数:2.00)A. B.C.D.解析:解析 重载的是一个二元运算符“一”,所以此题选择 A。11.如果表达式-x/y 中的“-”和“/”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为( )。A
29、operator/(x.operator-(),y); Boperator/(operator-(x),y);Cx.operator-().operator/(y); Dy.operator/(operator-(x);(分数:2.00)A.B. C.D.解析:12.在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送( )来实现。A) 调用语句 B) 命令C) 中令 D) 消息(分数:2.00)A.B.C.D. 解析:解析 在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递者的要求,它告诉接受者需要做哪些处理,但并不指示接受者应该怎么完成这些处理,接受者独立决定采用什么方式
30、完成所需的处理。13.一个关系数据库文件中的各条记录( )。A) 前后顺序不能任意颠倒,一定要按照输入的顺序排列B) 前后顺序可以任意颠倒,不影响库中数据的数据关系C) 前后顺序可以任意颠倒,但排列顷序不同,统计处理的结果就可能不同D) 前后顺序不能任意颠倒,一定要按照关键词段值的顺序排列(分数:1.00)A.B. C.D.解析:解析 关系数据库的逻辑性强而物理性少,因此关系数据库中的各条记录前后顺序可以任意颠倒,不影响库中数据的数据关系。14.用黑盒技术设计测试用例的方法之一为( )。A) 因果图 B) 逻辑覆盖C) 循环覆盖 D) 基本路径测试(分数:1.00)A. B.C.D.解析:解析
31、 黑盒测试主要方法有等价值划分法、边界值分析法、错误推测法、因果图法等,白盒测试的主要方法有逻辑覆盖、基本路径测试等。其中逻辑覆盖通常又分为:语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断一条件覆盖。所以只有选项 A属于黑盒测试,选项 B、C、D 都属于白盒测试。15.下面程序输出的结果是#includeiostreamhvoid main()int i;int a33=1,2,3,4,5,6,7,8,9;for(i=0;3;i+)couta2-ii“ “;A)1 5 9 B)7 5 3 C)3 5 7 D)5 91(分数:1.00)A.B. C.D.解析:解析 首先,当 i=0时,数组中的位置
32、是 a20=7,当然,如果用排除法的话,就不用考虑后面的循环了,因为在 4个选项中,第 1个数为 7的选项只有 B)。本题执行第 2次循环时,i 的值为 l,则cout函数中的数组指向为 a11=5,依次循环,可求出答案。16.下列关于多态性的描述,错误的是( )。AC+语言中的多态性分为编译时的多态性和运行时的多态性B编译时的多态性可通过函数重载实现C运行时的多态性可通过模板和虚函数实现D实现运行时多态性的机制称为动态绑定(分数:2.00)A.B.C. D.解析:解析 编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。17.有 3个关系 R、S 和 T如下:(分数:
33、2.00)A.B.C.D. 解析:解析 在实际应用中,最常用的连接是一个叫自然连接的特例。它满足下面的条件:两关系间有公共域;通过公共域的相等值进行连接。通过观察 3个关系 R,S,T 的结果可知,关系 T是由关系 R和 S进行自然连接得到的。18.下列叙述中,不属于测试的特征的是( )。A测试的挑剔性 B完全测试的不可能性C测试的可靠性 D测试的经济性(分数:2.00)A.B.C. D.解析:解析 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试有 3个重要特征:测试的挑剔性、完全测试的不可能性及测试的经济性。没有测试的可靠性这一说法。19.程序
34、的三种基本控制结构是 _。A) 过程、子程序和分程序B) 顺序、选择和重复C) 递归、堆栈和队列D) 调用、返回和转移(分数:2.00)A.B. C.D.解析:20.关于 for循环,不正确的是( )。A) 在循环体中,不能改变循环控制变量值 B) 在执行中循环控制变量初值、终值可变C) 循环控制变量可增可减 D) 循环控制变量可以不必在说明部分说明(分数:2.00)A. B.C.D.解析:解析 这是对 for循环语句的考查,循环控制变量可增可减。21.有如下程序:#includeiostreamusing namespace std;class Instrumentpublic:virtua
35、l void Display( )=0;class Piano:public Instrumentpublic:void Display( )/*函数体程序略*/;int, main( )Instrument s;Instrument*p=0;/.;return 0;下列叙述中正确的是A) 语句“Insturment *p=0;”编译时出错B) 语句“Instruments;”编译时出错C) 类 Piano中的 Display函数不是虚函数D) 类 Instrumen七是一个虚基类(分数:2.00)A. B.C.D.解析:22.若有如下程序:#include iostreamusing nam
36、espace std;int s=0;class samplestatic int n;public:sample(int i)n=i;static void add()s+=n;int sample:n=0;int main()sample a(2),b(5);sample:add();coutsendl;return 0;程序运行后的输出结果是( )。A2 B5 C7 D3(分数:2.00)A.B. C.D.解析:23.下面程序的输出结果是( )。#include iostreamusing namespace Std;int main()int x6=1,3,5,7,9,11,*k,*s
37、;k=x;s=class test private:int a;public:test ( ) cout “constructor“ endl; test(int a) coutaendl; test(const test cout “copy constructor“ endl; test( ) cout “destructor“ endl; ;int main( ) test A(3);return 0;执行这个程序的输出结果是( )。A3BconstructordestructorCcopy constructordestructorD3destructor(分数:2.00)A.B.C.
38、D. 解析:本题考查默认构造函数和带参数的构造函数以及析构函数,本题中定义了一个对象 A(3),对象带着参数,所以执行带参数的构造函数,输出 3,然后执行析构函数,输出 destructor。所以本题答案为D。28.以下说法错误的是 _。A) 采用面向对象方法开发软件的基本目的和主要优点是通过重用提高软件的生成率B) 在面向对象的程序中,对象是属性(状态)和方法(操作)的封装体C) 在面向对象的程序中,对象彼此间通过继承和多态性启动响应的操作D) 继承和多态机制是面向对象程序中实现的主要手段(分数:2.00)A.B.C. D.解析:29.C+语言中,编译过程后生成的文件类型为( )。A*.cp
39、p B*.objC*.h D*.exe(分数:2.00)A.B. C.D.解析:30.执行语句 for(i=1;i+4;);,后变量 i的值是A)3 B)4 C)5 D)不定(分数:1.00)A.B.C. D.解析:解析 for 语句中的表达式可以部分或全部省略,但两个“;”不能省略,若 3个表达式均省略,会因为缺少条件判断,导致循环无限执行,而形成死循环。本题中当 i的值为 5的时候,循环终止。31.有以下程序:#include iostreamusing namespace std;class Bprivate:int a,b;public:B()B(int i,int j);void p
40、rintb();class AB C;public:A()A(int i,int j);void printa();A:A(int i,int j) :c(i,j) void A:printa()c.printb ();B:B(int i, int j)a=i;b=j;void B: :printb()couta“, “bend1;int main ()A m(7,8);m.printa();return 0;该程序运行后的输出结果是( )。A) 5,6 B) 7,8 C) 8,9 D) 9,10(分数:1.00)A.B. C.D.解析:解析 本题考核类的定义和应用。程序首先定义了两个类 A和
41、 B。在类 A中,其私有数据成员 c为类 B的对象。类 A的成员函数 printa()中,调用私有成员对象 c的成员函数 printb()输出类 B私有数据成员 a和 b的值。32.下列程序中划线处正确的语句是( )。# include iostreamusing namespace std;class Basepublic:void fun()cout“Base: fun“ endl;class Derived:public Basevoid fun()_ 显式调用基类的函数 fun()cout“Derived: fun“endl;Afun(); BBasefun(); CBase:fun(
42、); DBase- fun();(分数:1.00)A.B.C. D.解析:33.下面程序的运行结果为( )。#include iostreamusing namespace std;void main( ) for(int a =0,x =0; !x a + );cout a endl;A) 0 B) 1 C) 10 D) 11(分数:2.00)A.B.C.D. 解析:解析 当 i=11时,循环结束。34.关于模板,下列说法不正确的是( )。A用类模板定义一个对象时,不能省略实参B类模板只能有虚拟类型参数C类模板本身在编译中不会生成任何代码D类模板的成员函数都是模板函数(分数:2.00)A.B
43、. C.D.解析:35.对于常数据成员,下面描述正确的是( )。A) 常数据成员可以不初始化,并且不能更新B) 常数据成员必须被初始化,并且不能更新C) 常数据成员可以不初始化,并且可以被更新D) 常数据成员必须被初始化,并且可以被更新(分数:2.00)A.B. C.D.解析:解析 常数据成员必须被初始化,并且不能更新。二、填空题(总题数:15,分数:27.00)36.下面是一个递归函数,其功能是使数组中的元素反序排列。请将函数补充完整。void reverse(int*a,int size)if(size2)return;int k=a0;a0=asize-1;asize-1=k;rever
44、se(a+1,_);(分数:2.00)填空项 1:_ (正确答案:size-1)解析:37.下列程序的输出结果是_。#includeiostreamusing namespace std;class Test public:Test() cnt+;Test() cnt-;static int Count() return cnt;private:static int cnt;int Test:cnt=0;int main()coutTest:Count();Test t1,t2;Test*oT3=new Test;Test*pT4=new Test;coutTest:Count();delet
45、e pT4;delete pT3;coutTest:Count()endl;return 0;(分数:2.00)填空项 1:_ (正确答案:042)解析:解析 本题考核静态数据成员与静态成员函数的定义与使用方式。C+中,提出静态成员的目的是为了解决数据共享的问题。一个给定类的每个对象都有类中定义的所有数据的自己的拷贝,如果在类中将数据成员用 static说明为静态的,则这个类成员只有一个拷贝并被这个类的所有对象所共享。类 Test的静态成员 cnt,初始值为 0,所以执行语句“coutTest:Count();”后输出 0。然后程序创建了两个对象 t1和 t2,以及两个对象指针并调用 new来
46、初始化指针,所以 cnt的值变成了 4 (即此时输出为 4)。然后程序将对象指针 pT4、pT3 delete 了,此时将分别调用析构函数将 cnt的减 1,所以最后输出 cnt的值为 2。38.在声明派生类时,如果不显式地给出继承方式,缺省的类继承方式是私有继承 private。已知有如下类定义:class Base protected:void fun1;class Derived: Base ;则 Base类中的成员函数 fun2,在 Derived 类中的访问权限是 3(注意:要求填写 private、protected或 public中的一项)。(分数:2.00)填空项 1:_ (正确答案:private)解析:39.在 C+流类库中,根基类为 【18】 。(分数:2.00)填空项 1:_ (正确答案:ios)解析:解析 ios 为根基类。40.下列程序的运行结果是_。#includeiostream.hclass Basepublic:virtual vo