1、二级 C+笔试-281 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.当使用 fstram 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(分数:2.00)A.ios:inB.ios:outC.ios:int | ios:outD.没有2.设 A 为 test 类的对象且赋有初值,赋值符号已经重载,则语句 test B=A;表示(分数:2.00)A.语法错B.为对象 A 定义一个别名C.将对象 A 复制给对象 BD.仅说明 B 和 A 属于同一个类3.假定 a 为一个整型数组名,则元素 a4的字节地址为(分数:2.00)A.
2、a+4B.a+8C.a+16D.a+324.重载函数在调用时选择的依据中,错误的是(分数:2.00)A.函数的参数名称B.参数的类型C.函数的名字D.函数的类型5.以下程序运行后,输出结果是#define PT 5.5#define S(x)PT* x * xmain()int a=1,b=2;printf(“%4.lf/n“,S(a+b);(分数:2.00)A.49.5B.9.5C.22.0D.45.06.关于 const 修饰符的说法中,错误的是(分数:2.00)A.const 既可以修饰成员函数,也可以修饰数据成员,还可以修饰对象B.若 const 修饰了一个对象,则该对象中的所有数据成
3、员都无法被更新C.常对象无法调用一般成员函数D.常成员函数只能被常对象调用,不能被一般对象调用7.已知语句 int m10;则下列引用的表示中正确的是(分数:2.00)A.int B.int C.int D.float 8.设有以下类的定义:class Exint x;public:void setx(int t=0);若在类外定义成员函数 setx(),以下定义形式中正确的是(分数:2.00)A.void setx(int t).B.void Ex: :setx(int t).C.Ex: :void setx(int t).D.void Ex: :setx().9.已知类 A 有公用数据成员
4、 a,并重载了=运算符,且有 A obj2;const A * ptr= new A;则下列语句错误的是(分数:2.00)A.ptr-a=100;B.ptrC.ptr+;D.obj2=*ptr;10.以下选项中与 k=n+;完全等价的表达式是(分数:2.00)A.kn,nn+1B.nn+1,kn;C.k+n;D.k+n+111.以下有关类与结构体关系的叙述不正确的是(分数:2.00)A.结构体中只包含数据;类中封装了数据和操作B.结构体的成员对外界通常是开放的;类的成员可以被隐蔽C.用 struct 不能声明一个类型名;而 class 可以声明一个类名D.结构体成员默认为 Public;类成员
5、默认为 private12.程序设计方法要求在程序设计过程中(分数:2.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对13.语句 cout(a=2)x+);(分数:2.00)A.是无限循环B.循环次数不定C.最多执行 4 次D.最多执行 3 次15.在多继承中,公用派生和私有派生对于基类成员在派生类中的可访问性与单继承规则(分数:2.00)A.完全相同B.完全不同C.部分相同,部分
6、不同D.以上都不对16.对于常数据成员,下面描述正确的是(分数:2.00)A.常数据成员可以不初始化,并且不能更新B.常数据成员必须被初始化,并且不能更新C.常数据成员可以不初始化,并且可以被更新D.常数据成员必须被初始化,并且可以被更新17.在结构化分析方法中,数据字典的作用是(分数:2.00)A.存放所有需要处理的原始数据B.存放所有处理的结果C.存放所有的程序文件D.描述系统中所用到的全部数据和文件的有关信息18.如果一个类含有一个以上的纯虚函数,则称该类为(分数:2.00)A.虚基类B.抽象类C.派生类D.以上都不对19.已知 int a, b;用语句 scanf(“%d%d“, B.
7、cin.getline(str,strlen(str);C.cinstr;D.cin.read(str, strlen(str);30.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算D.以上三种说法都不对31.在长度为 n 的有序线性表中进行二分查找,需要的比较次数为(分数:2.00)A.log2nB.nlog2nC.n/2D.(n+1)/232.下列叙述中正确的是(分数:2.00)A.软件交付使用后还需要进行维护B.软件一旦交付使用就不需要再进行
8、维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令33.下述说法错误的是(分数:2.00)A.对象之间不可以相互赋值B.对象可以用作函数参数C.对象可以用作数组的元素D.对象可以用作另一对象的成员34.下列各类函数中,不是类的成员函数的是(分数:2.00)A.构造函数B.析构函数C.友元函数D.拷贝构造函数35.以下不能够读入空格字符的语句是(分数:2.00)A.char line; linecin.get()B.char line; cin. get(line);C.char line; cinline;D.char line2; cin. getline(line
9、,2);二、填空题(总题数:15,分数:30.00)36.数据结构分为逻辑结构与存储结构,循环队列属于 【1】 。(分数:2.00)填空项 1:_37.在最坏情况下,冒泡排序所需要的比较次数为 【2】 。(分数:2.00)填空项 1:_38.设一棵完全二叉树共有 839 个结点,则在该二叉树中有 【3】 个叶子结点。(分数:2.00)填空项 1:_39.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于 【4】 。(分数:2.00)填空项 1:_40.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 【5】 。(分数:2.00)填空项 1:_41.执行“coutchar(A+
10、2)end1;“语句后得到的输出结果为 【6】 。(分数:2.00)填空项 1:_42.下列函数的功能是 【7】 。#includeiostream. hint Func(int a,int b)if (ab) return 1;else if(a=b) return 0;else return -1;(分数:2.00)填空项 1:_43.根据三角形的基本定理完成填空,则表达式为 【8】 。#includeiostream. h#includemath. hvoid main()double a,b,c,s,area;cout“请输入三角形三边 a,b,c:“end1;cinabc;if(_)
11、s=(a+b+c)/2;area=sqrt(s*(s- a)*(s- b)* (s- c),cout“三角形的面积为:“area;elsecout“不能构成三角形!“end1;(分数:2.00)填空项 1:_44.下列程序的运行结果为 【9】 。#includeiostream, hvoid main( )int i;for(i=1; i6;i+)if(i=3) break:com“i=“iend1;(分数:2.00)填空项 1:_45.下列程序编译错误,因为 add 函数返回值是一个引用,故对 return 后返回值的要求是 【10】 。#includeiostream. hintvoid
12、main( )int i=3,j=19;cout(add(i,j)+ =20)end1;(分数:2.00)填空项 1:_46.在下面的类定义中,this 指针的用途是 【11】 。#include iostream. hclass Sampleint x,y;public:Sample(int i,int j)x=i;y=j;void asstgn(Sample sa):;void Sample: :assign(Sample p)if (this! =y=p.y;(分数:2.00)填空项 1:_47.参照函数模板的写法,完成非模板函数的定义,语句为 【12】 。#includeiostrea
13、m, h#includestring. htemplateclass TT min(T a, T b)return(ab? a:b);char * min(char * a, char * b)_ void main()double a=1.23,b=3.45;char s1=“abcd“,s2=“erg“;coutmin(a, b)min(s1,s2)end1:(分数:2.00)填空项 1:_48.下列程序中的 this 指针的作用是 【13】 。#include iostream. hclass Sampleint n;static int st;public,Sample() Sampl
14、e(int m) n=m; st=m+10;void Change(int k) st=st+k;void AddValue(int m)Sample s,s. n=n+m;*this=s;void disp( ) cout“n=“n“;st=“stend1;int Sample: :st=0void main()Sample s1(10),s2(10)s1. disp()s1. AddValue(5),s2. Change(100);s1. disp();s2. disp()(分数:2.00)填空项 1:_49.下列程序的运行结果为 【14】 。#include iostream. hcla
15、ss myclassprivate:int a, b, c;public:void fun()int a;a=10;this-,a=5;b=6;this-c=7;cout“a=“a“,this-a=“this-aendl;void main()myclass obj1;obj1.fun()(分数:2.00)填空项 1:_50.下列程序的运行结果是 【15】 。#includeiostream, hclass Sampleint a;public:Sample(int aa=0) a=aa;Sample() cout“Sample=“a;class Derived: public Samplei
16、nt b;public:Derived(int aa=0, int bb=0): Sample(aa) b=bb;De rived() cout “Derived=“b;void main()Derived dl (9)(分数:2.00)填空项 1:_二级 C+笔试-281 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.当使用 fstram 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(分数:2.00)A.ios:inB.ios:outC.ios:int | ios:outD.没有 解析:解析 C+中没在规定文件打开时的隐含
17、打开方式,因此考生在写程序是必须指定打开方式,否则将出现错误。2.设 A 为 test 类的对象且赋有初值,赋值符号已经重载,则语句 test B=A;表示(分数:2.00)A.语法错B.为对象 A 定义一个别名C.将对象 A 复制给对象 B D.仅说明 B 和 A 属于同一个类解析:解析 同上题。3.假定 a 为一个整型数组名,则元素 a4的字节地址为(分数:2.00)A.a+4B.a+8C.a+16 D.a+32解析:解析 注意:VC 编译器分配给整数的内存是 4 字节。4.重载函数在调用时选择的依据中,错误的是(分数:2.00)A.函数的参数名称 B.参数的类型C.函数的名字D.函数的类
18、型解析:解析 是否是重载函数,需要给编译器提供足够的信息判断。其主要的依据是函数韵名字,参数的类型,函数的返回值类型。5.以下程序运行后,输出结果是#define PT 5.5#define S(x)PT* x * xmain()int a=1,b=2;printf(“%4.lf/n“,S(a+b);(分数:2.00)A.49.5B.9.5 C.22.0D.45.0解析:解析 本题考察宏定义的使用,宏在使用是如同函数一样,但却是在编译时展开,而函数却是在运行时进行计算的。6.关于 const 修饰符的说法中,错误的是(分数:2.00)A.const 既可以修饰成员函数,也可以修饰数据成员,还可
19、以修饰对象B.若 const 修饰了一个对象,则该对象中的所有数据成员都无法被更新C.常对象无法调用一般成员函数D.常成员函数只能被常对象调用,不能被一般对象调用 解析:解析 本题考察 const 修饰符的含义及其修饰不同对象的规则。常对象既能被常对象调用,也能被一般对象调用,一旦 const 修饰了一个对象,则对象的所有数据成员都无法更新。7.已知语句 int m10;则下列引用的表示中正确的是(分数:2.00)A.int B.int C.int D.float 解析:解析 本题考察引用的定义既使用。引用是 C+中新引入的概念,其使用方法同变量,而其本质同指针,具有指针的灵活性。引用必须用变
20、量进行赋值,不能用常量或常数。8.设有以下类的定义:class Exint x;public:void setx(int t=0);若在类外定义成员函数 setx(),以下定义形式中正确的是(分数:2.00)A.void setx(int t).B.void Ex: :setx(int t). C.Ex: :void setx(int t).D.void Ex: :setx().解析:解析 选项 A 可以排除,原因是类的成员函数的定义必须用域作用符:进行限定,选项 C 的限定位置不对,函数的类型应在最前面。根据上下文可以指导,setx 为单参成员函数,在定义时也必须指定参数,因此选项 D 也可
21、以排除,正确答案为 B。9.已知类 A 有公用数据成员 a,并重载了=运算符,且有 A obj2;const A * ptr= new A;则下列语句错误的是(分数:2.00)A.ptr-a=100; B.ptrC.ptr+;D.obj2=*ptr;解析:解析 本题考察 const 修饰符的作用。注意;const 位置不同,其修饰的部分也是不同的。本题中 const 修饰的是 ptr 所指的对象本身,所以,ptr 是可以重新指向新的对象,而 ptr-a 则无法被更新。10.以下选项中与 k=n+;完全等价的表达式是(分数:2.00)A.kn,nn+1 B.nn+1,kn;C.k+n;D.k+n
22、+1解析:解析 本题考察混合表达式的展开。11.以下有关类与结构体关系的叙述不正确的是(分数:2.00)A.结构体中只包含数据;类中封装了数据和操作B.结构体的成员对外界通常是开放的;类的成员可以被隐蔽C.用 struct 不能声明一个类型名;而 class 可以声明一个类名 D.结构体成员默认为 Public;类成员默认为 private解析:解析 可以说类来源于结构体,两者有相似之处。但类的功能更强大一些,不仅增加了操作,还能够隐藏和包含其成员变量或成员函数。12.程序设计方法要求在程序设计过程中(分数:2.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程
23、序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对 解析:解析 在程序设计过程中,一个很重要的环节是首先确定实现各种功能的算法,并且用某种工具将它精确地表达出来。流程图是其中的工具之一。因此,程序设计的过程应是先画出流程图,然后根据流程图编制出程序。因此,选项 A 中的说法是错误的。程序中的注释是为了提高程序的可读性,使程序易于理解、易于维护,注释必须在编制程序的同时加入。因此,选项 B 和 C 中的说法也都是错误的。13.语句 cout(a=2)x+);(分数:2
24、.00)A.是无限循环B.循环次数不定C.最多执行 4 次 D.最多执行 3 次解析:解析 本题考察 for 循环的三个表达式的用法及其执行顺序,本题中 for 循环的第三个表达式完成变量自增,以控制 for 循环的执行次数。15.在多继承中,公用派生和私有派生对于基类成员在派生类中的可访问性与单继承规则(分数:2.00)A.完全相同 B.完全不同C.部分相同,部分不同D.以上都不对解析:解析 C+语言中为了简化继承关系,规定多重继承中可访问性规则同单继承规则。16.对于常数据成员,下面描述正确的是(分数:2.00)A.常数据成员可以不初始化,并且不能更新B.常数据成员必须被初始化,并且不能更
25、新 C.常数据成员可以不初始化,并且可以被更新D.常数据成员必须被初始化,并且可以被更新解析:解析 常数据成员不能背更新,因此可以排除选项 C 和 D。常数据成员所包含的值不能被更新,所以必须被初始化,如果初始化则常数据成员里的随机值是没有实际意义的17.在结构化分析方法中,数据字典的作用是(分数:2.00)A.存放所有需要处理的原始数据B.存放所有处理的结果C.存放所有的程序文件D.描述系统中所用到的全部数据和文件的有关信息 解析:解析 在结构化分析方法中,数据字典的作用是描述系统中所用到的全部数据和文件的有关信息。18.如果一个类含有一个以上的纯虚函数,则称该类为(分数:2.00)A.虚基
26、类B.抽象类 C.派生类D.以上都不对解析:解析 纯虚函数一般提供派生类进行继承的参考,是多态性的重要保证,一个具有纯虚函数的类称为抽象类,抽象类可以具有其他类的特点,但不能实例化,其主要目的是作为派生类的基类存在,处于类层次的高层。19.已知 int a, b;用语句 scanf(“%d%d“, B.cin.getline(str,strlen(str);C.cinstr;D.cin.read(str, strlen(str); 解析:解析 本题考察 cin 流对象的几种成员函数 get,getline,read 及流提取符的使用规则。30.下列关于关系运算的叙述中正确的是(分数:2.00)
27、A.投影、选择、连接是从二维表的行的方向来进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算 D.以上三种说法都不对解析:解析 在关系模型的数据语言中,一般除了运用常规的集合运算(并、交、差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等运算。前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的,后者主要是从二维表的列的方向来进行运算。因此,选项A 与 B 中的说法都是错误的,而选项 C 中的说法是正确的。31.在长度为 n 的有序线性表中进行二分查找,需要的比较次数为(分数:2.00)A.lo
28、g2n B.nlog2nC.n/2D.(n+1)/2解析:解析 在长度为 n 的有序线性表中进行二分查找,需要的比较次数为 log2n。32.下列叙述中正确的是(分数:2.00)A.软件交付使用后还需要进行维护 B.软件一旦交付使用就不需要再进行维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令解析:解析 维护是软件生命周期的最后一个阶段,也是持续时间最长、付出代价最大的阶段。软件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。软件维护通常有以下四类;为纠正使用中出现的错误而进行的改正性维护;为适应环境变化而进行的适应性维护;为改进原有软件而进行的完
29、善性维护;为将来的可维护和可靠而进行的预防性维护。软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。由此可知,本题中选项 B、C、D 中的说法都是错误的。33.下述说法错误的是(分数:2.00)A.对象之间不可以相互赋值 B.对象可以用作函数参数C.对象可以用作数组的元素D.对象可以用作另一对象的成员解析:解析 如果重载了赋值运算符后,对象之间是可以赋值的,对象如 C+中其他内置的数据类型一样,可以作为函数参数、数组元素,其他对象的成员存在。34.下列各类函数中,不是类的
30、成员函数的是(分数:2.00)A.构造函数B.析构函数C.友元函数 D.拷贝构造函数解析:解析 构造函数包括默认构造函数和拷贝构造函数等,析构函数和构造函数一样属于类的特殊的成员函数而友元函数则是为了增加类的访问灵活行而允许其他类的成员函数或全局函数访问类的内部变量或成员函数的一种机制,其缺点是破坏了类的封装性。35.以下不能够读入空格字符的语句是(分数:2.00)A.char line; linecin.get()B.char line; cin. get(line);C.char line; cinline; D.char line2; cin. getline(line,2);解析:解析
31、 本题考察 cin 流对象的几种成员函数 get,getline 的使用规则。流提取符在提取字符时,遇到 C+规定的分隔符如空格,回车和 Tab 键时自动分割,故本题正确答案为 C。二、填空题(总题数:15,分数:30.00)36.数据结构分为逻辑结构与存储结构,循环队列属于 【1】 。(分数:2.00)填空项 1:_ (正确答案:存储结构)解析:解析 数据结构分为逻辑结构与存储结构,循环队列属于存储结构因此,本题的正确答案为存储结构。37.在最坏情况下,冒泡排序所需要的比较次数为 【2】 。(分数:2.00)填空项 1:_ (正确答案:n(n-1)/2)解析:解析 在最坏情况下,冒泡排序所需
32、要的比较次数为 n(n-1)/2。38.设一棵完全二叉树共有 839 个结点,则在该二叉树中有 【3】 个叶子结点。(分数:2.00)填空项 1:_ (正确答案:420)解析:解析 一般二又树有一个性质:在任意一棵二叉树中,度为。的结点(即叶子结点)总是比度为 2的结点多一个。在根据完全二叉树的定义,在一棵完全二叉树中,最多有 1 个度为 1 的结点。综合以上两点可以得到如下结论;设一棵完全二叉树具有 n 个结点。如果 n 为偶数则在该二叉树中有 n/2 个叶子结点以及 n/2-1 个度为 2的结点,还有 1 个是度为 1 的结点;如果 n 为奇数,则在该二叉树中有n/2+1 个叶子结点以及n
33、/2个度为 2 的结点,没有度为 1 的结点。在本题中,完全二叉树共有 839 个结点,839 是奇数,因此,在该二叉树中有 420 个叶子结点以及 419 个度为 2 的结点,没有度为 1 的结点。39.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于 【4】 。(分数:2.00)填空项 1:_ (正确答案:格式化模型)解析:解析 数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于格式化模型。40.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 【5】 。(分数:2.00)填空项 1:_ (正确答案:关系)解析:解析 在关系模型中,把数据看成一个二维表,每一个
34、二维表称为一个关系41.执行“coutchar(A+2)end1;“语句后得到的输出结果为 【6】 。(分数:2.00)填空项 1:_ (正确答案:C)解析:解析 本题考察强制类型转化,char()在这里作为一个强制类型转化函数存在,将整数转化为字符。42.下列函数的功能是 【7】 。#includeiostream. hint Func(int a,int b)if (ab) return 1;else if(a=b) return 0;else return -1;(分数:2.00)填空项 1:_ (正确答案:比较两个整数 a 和 b 的大小,若 ab 则返回 1,若 a 等于b,则返回
35、0,否则返回-1。)解析:43.根据三角形的基本定理完成填空,则表达式为 【8】 。#includeiostream. h#includemath. hvoid main()double a,b,c,s,area;cout“请输入三角形三边 a,b,c:“end1;cinabc;if(_)s=(a+b+c)/2;area=sqrt(s*(s- a)*(s- b)* (s- c),cout“三角形的面积为:“area;elsecout“不能构成三角形!“end1;(分数:2.00)填空项 1:_ (正确答案:a0for(i=1; i6;i+)if(i=3) break:com“i=“iend1;
36、(分数:2.00)填空项 1:_ (正确答案:i3)解析:解析 本题考察考生的 for 语句和 if 语句综合使用能力。本题的情况适用于希望在满足指定值时停止循环的情况。45.下列程序编译错误,因为 add 函数返回值是一个引用,故对 return 后返回值的要求是 【10】 。#includeiostream. hintvoid main( )int i=3,j=19;cout(add(i,j)+ =20)end1;(分数:2.00)填空项 1:_ (正确答案:不能是表达式)解析:解析 引用是变量的别名,其实质是变量的地址。return 在返回值时,如果其后为表达式,则系统为该表达式生成一个
37、临时变量用于存放该表达式的结果,函数执行完毕之后该变量被系统回收,因此,返回的该变量的地址对调用函数来说已经没有意义了。46.在下面的类定义中,this 指针的用途是 【11】 。#include iostream. hclass Sampleint x,y;public:Sample(int i,int j)x=i;y=j;void asstgn(Sample sa):;void Sample: :assign(Sample p)if (this! =y=p.y;(分数:2.00)填空项 1:_ (正确答案:防止对类对象自己给自己赋值)解析:解析 防止对象给自己赋值,这是一种自毁行为,这种行
38、为如果不加以判断,可能造成无意识的破坏。47.参照函数模板的写法,完成非模板函数的定义,语句为 【12】 。#includeiostream, h#includestring. htemplateclass TT min(T a, T b)return(ab? a:b);char * min(char * a, char * b)_ void main()double a=1.23,b=3.45;char s1=“abcd“,s2=“erg“;coutmin(a, b)min(s1,s2)end1:(分数:2.00)填空项 1:_ (正确答案:return(strcmp(a,b)0? a:b)
39、;)解析:解析 由于对于两个变量的比较来说,字符间的比较不同于整型或浮点剩变量那样可以直接比较,而是要采用专用函数进行,因此不能采用同一个函数模板,所以本题采用的就是单独写成一个非模板函数。48.下列程序中的 this 指针的作用是 【13】 。#include iostream. hclass Sampleint n;static int st;public,Sample() Sample(int m) n=m; st=m+10;void Change(int k) st=st+k;void AddValue(int m)Sample s,s. n=n+m;*this=s;void disp
40、( ) cout“n=“n“;st=“stend1;int Sample: :st=0void main()Sample s1(10),s2(10)s1. disp()s1. AddValue(5),s2. Change(100);s1. disp();s2. disp()(分数:2.00)填空项 1:_ (正确答案:修改本对象的值)解析:解析 本题巧妙的使用 this 指针来完成类的不同实例进行的修改自身数据成员的操作。49.下列程序的运行结果为 【14】 。#include iostream. hclass myclassprivate:int a, b, c;public:void fu
41、n()int a;a=10;this-,a=5;b=6;this-c=7;cout“a=“a“,this-a=“this-aendl;void main()myclass obj1;obj1.fun()(分数:2.00)填空项 1:_ (正确答案:a=10, this-a=5)解析:解析 本题考察在类的成员函数定义中,如果出现类的数据成员和成员函数的局部变量同名的情况下,如何正确引用合适的变量或数据成员。本题巧妙的采用了 this 指针完成这种标识。50.下列程序的运行结果是 【15】 。#includeiostream, hclass Sampleint a;public:Sample(int aa=0) a=aa;Sample() cout“Sample=“a;class Derived: public Sampleint b;public:Derived(int aa=0, int bb=0): Sample(aa) b=bb;De rived() cout “Derived=“b;void main()Derived dl (9)(分数:2.00)填空项 1:_ (正确答案:Derived=0 Sample=9)解析:解析 本题考察派生类和基类的构造函数,析构函数的执行顺序。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1