[计算机类试卷]国家二级(C++)笔试模拟试卷152及答案与解析.doc

上传人:registerpick115 文档编号:502608 上传时间:2018-11-29 格式:DOC 页数:28 大小:69.50KB
下载 相关 举报
[计算机类试卷]国家二级(C++)笔试模拟试卷152及答案与解析.doc_第1页
第1页 / 共28页
[计算机类试卷]国家二级(C++)笔试模拟试卷152及答案与解析.doc_第2页
第2页 / 共28页
[计算机类试卷]国家二级(C++)笔试模拟试卷152及答案与解析.doc_第3页
第3页 / 共28页
[计算机类试卷]国家二级(C++)笔试模拟试卷152及答案与解析.doc_第4页
第4页 / 共28页
[计算机类试卷]国家二级(C++)笔试模拟试卷152及答案与解析.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

1、国家二级( C+)笔试模拟试卷 152及答案与解析 1 数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及 ( A)数据的存储结构 ( B)计算方法 ( C)数据映象 ( D)逻辑存储 2 串的长度是 ( A)串中不同字符的个数 ( B)串中不同字母的个数 ( C)串中所含字符的个数且字符个数大于零 ( D)串中所含字符的个数 3 在计算机中,算法是指 ( A)加工方法 ( B)解题方案的准确而完整的描述 ( C)排序方法 ( D)查询方法 4 以下不属于对象 的基本特点的是 ( A)分类性 ( B)多态性 ( C)继承性 ( D)封装性 5 开发软件所需高成

2、本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( A)软件投机 ( B)软件危机 ( C)软件工程 ( D)软件产生 6 下面不属于软件设计原则的是 ( A)抽象 ( B)模块化 ( C)自底向上 ( D)信息隐蔽 7 开发大型软件时,产生困难的根本原因是 ( A)大系统的复杂性 ( B)人员知识不足 ( C)客观世界千变万化 ( D)时间紧、任务重 8 下列 SQL语句中,用于修改表结构的 是 ( A) ALTER ( B) CREATE ( C) UPDATE ( D) INSERT 9 数据库、数据库系统和数据库管理系统之间的关系是 ( A)数据库包括数据库系统和数据库管理系统 (

3、B)数据库系统包括数据库和数据库管理系统 ( C)数据库管理系统包括数据库和数据库系统 ( D)三者没有明显的包含关系 10 关系模型允许定义 3类数据约束,下列不属于数据约束的是 ( A)实体完整性约束 ( B)参照完整性约束 ( C)域完整性约束 ( D)用户自定义的完整性约束 11 下列关于 C语言类 的描述中错误的是 ( A)类用于描述事物的属性和对事物的操作 ( B)类与类之间通过封装而具有明确的独立性 ( C)类与类之间必须是平等的关系,不能组成层次结构 ( D)类与类之间可以通过一些方法进行通信和联络 12 在 C语言中,表示一条语句结束的标号是 ( A) # ( B) ; (

4、C) / ( D) 13 以下叙述中正确的是 ( A)构成 C语言程序的基本单位是类 ( B)可以在一个函数中定义另一个函数 ( C) main( ) 函数必须放在其他函数之前 ( D)所有被调用的函数一定要在调用 之前进行定义 14 已知有定义 : const int D 5; int i 1; double f 0.32; char c 15; 则下列选项错误的是 ( A) i; ( B) D ; ( C) c ; ( D) f; 15 以下程序的输出结果是 #include iostream.h void reverse(int a , int n) int i,t; for(i 0;i

5、 n/2;i ) t ai ;ai an 1 i ;an 1 i t; void main( ) int b10 1,2,3,4,5,6,7,8,9,10;int i,s 0; reverse(b,8) ; for(i 6;i 10;i ) s bi ; cout S; ( A) 22 ( B) 10 ( C) 34 ( D) 30 16 下面程序的功能是把 316表示为两个加数的和,使两个加数分别能被 13和 11整除,在下画线处应填入 的选项是 #include iostream.h Void main( ) int i 0,j,k; doi ;k 316 13 * i;while(_)

6、; j k/11; cout “316 13 * “ i “ 11 *“ j; ( A) k/11 ( B) k%11 ( C) k/11 0 ( D) k%11 0 17 设有数组定义 :char array “China“;,则数组 array所占的空间为 ( A) 4个字节 ( B) 5个字节 ( C) 6个字节 ( D) 7个字节 18 若已定义 : int a 0,1,2,3,4,5,6,7,8,9, * p a, i ; 其中 0i9,则对 a数组元素不正确的引用是 ( A) ap a ( B) * ( cout x “,“; int x 0;x y * 2; cout x “,“

7、 y “,“; cout x “,“ y; ( A) 1,6,3,1,3 ( B) 1,6,3,6,3 ( C) 1,6,3,2,3 ( D) 1,7,3,2,3 20 函数 fun的返回值是 fun(char * a, char * b) int num 0,n 0; while( * (a num) ! 0) num ; while(bn ) * (a num) bn ;num ;n ; return num; ( A)字符串 a的长度 ( B)字符串 b的长度 ( C)字符串 a和 b的长度之差 ( D)字符串 a和 b的长度之和 21 下面程序输出的结果是 #include iostr

8、eam.h void main( ) inti; int a3 3 1,2,3,4,5,6,7,8,91; for(i 0;i 3;i ) cout a2 i i “ “; ( A) 1 5 9 ( B) 7 5 3 ( C) 3 5 7 ( D) 5 9 1 22 下面程序的结果为 #include iostream.h int c; class A private: int a; static int b; public: A( ) a 0;c 0; void seta( ) a ; void setb( ) b ; void setc( ) c ; void display( ) cou

9、t a “ “ b “ “ c; ; int A: :b 0; void main( ) A a1,a2; a1.seta( ) ; a1.setb( ) ; al .setc( ) ; a2.seta( ) ; a2.setb( ) ; a2.setc( ) ; a2.display( ) ; ( A) 1 2 1 ( B) 1 2 2 ( C) 1 1 2 ( D) 2 2 2 23 下列描述中哪个是正确的 ? ( A)私有派生的子类无法访问父类的成员 ( B)类 A的私有派生子类的派生类 C无法初始化其祖先类 A对象的属性,因为类 A的成员对类 C是不可访问的 ( C)私有派生类不能作为

10、基类派生子类 ( D)私有派生类的所有子孙类将无法继续继承该类的成员 24 下列关于构造函数 说法不正确的是 ( A)构造函数必须与类同名 ( B)构造函数可以省略不写 ( C)构造函数必须有返回值 ( D)在构造函数中可以对类中的成员进行初始化 25 如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是 ( A)一元运算符 ( B)二元运算符 ( C)选项 A) 和选项 B) 都可能 ( D)重载错误 26 在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是 ( A)一元成员运算符 ( B)二元成员运算符 ( C)一元友元运算符 ( D)选项 B) 和选项 C)

11、都可能 27 下列关于模板的说法正确的是 ( A)模板的实参在任何时候都可以省略 ( B)类模板与模板类所指的是同一概念 ( C)类模板的参数必须是虚拟类型的 ( D)类模板中的成员函数全部都是模板函数 28 表示在输出时显示小数位,以及在文件输入时判断文件尾的函数分别是 ( A) showbase ( ) 和 eof ( ) ( B) showpoint ( ) 和 eof ( ) ( C) showpoint ( ) 和 bad ( ) ( D) showpoint ( ) 和 good ( ) 29 下面程序段 的运行结果是 void main ( ) int t, a, b, C; a

12、 1;b 2;C 2; while(a b c) t a;a b;b t;c ; cout a “,“ b “,“ C; ( A) 1,2,0 ( B) 2,1,0 ( C) 1,2,1 ( D) 2,1,1 30 下列程序中下画线处应填入的语句是 class Base public: void fun( ) cout “Baseoffun“ endl; ; class Derived:public Base void fun( ) _/显示基类的成员函数 fun cout “Derived of fun“ endl; ; ( A) fun( ) ; ( B) Base. fun( ) ; (

13、 C) Base: :fun( ) ; ( D) Base fun( ) ; 31 若定义 int k 7,x 12;,则能使值为 3的表达式是 ( A) x% (k% 5) ( B) x% (k k%5) ( C) x% k k%5 ( D) (x% k) (k% 5) 32 在位运算中,操作数每右移一位,其结果相当于 ( A)操作数乘以 2 ( B)操作数除以 2 ( C)操作数乘以 4 ( D)操作数除以 4 33 有以下结构体说明和变量的定义,且指针 p指向变量 a,指针 q指向变量 b。则不能把节点 b连接到节点 a之后的语句是 struct node char data; stmc

14、t node * next; a,b, * p ( A) a. next q; ( B) p. next ( C) p next ( D) ( * p) .next q; 34 一个类的友元函数能够访问该类的 ( A)私有成员 ( B)保护成员 ( C)公有成员 ( D)所有成员 35 下面程序的输出结果是 #include iostream.h #include string.h void main( ) char p110 ,p210 ; strcpy(p1,“abc“) ; strcpy(p2,“ABC“) ; char str50 “xyz“; strcpy(str 2,strcat(

15、p1,p2) ) ; cout str; ( A) xyzabcABC ( B) zabcABC ( C) xyabcABC ( D) yzabcABC 36 算法的基本特征是可行性、确定性、 _和拥有足够的情报。 37 在 长度为 n的有序线性表中进行二分查找。最坏的情况下,需要的比较次数为_。 38 在面向对象的程序设计中,类描述的是具有相似性质的一组 _。 39 通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为_。 40 数据库管理系统常见的数据模型有层次模型、网状模型和 _3种。 41 执行语句序列 char str110=“ABCD“,str210=“XYZxyz“;

16、for(int i=0;strli=str2i;i+); 后,数组 strl中的字符串是 _。 42 下列程序的执行结果是 _。 #include lostream.h int a; int sum_a(void) a=a+5; return a; void main(void) a=a+sum_a( ); cout a endl; 43 根据输出结果填空完成下面程序。 #include iostream.h class Test private: static int val; int a; public: static int func( ); void sfunc(Test ; _/初始

17、化静态变量 val int Test:func( ) return val+; void Test:sfunc(Test cout “Result3=“ r.a; void main( ) cout “Resultl=“ Test:func( ) endl; Test A; cout “Result2=“ A.fune( ) endl; A. sfunc(A); 输出结果为: Result1=201 Result2=202 Result3=125 44 下列程序的运行结果 是 _。 #include iostream.h class test private: int hum; public:

18、 test( ); int TEST( )return num+100;) test( ); ; test:test( )num=0;) test: test( )cout “Destructor is active“ endl;) void main( ) test x3; cout x1.TEST( ) endl; 45 请将下列类定义补充完整。 class Basepublic:void fun( )cout “Base:fun“ endl; class Derived:public Base public: void fun( ) _/显式调用基类的 fun函数 cout “Deriv

19、ed:fun“ endl; ; 46 有以下程序: #include iostream.h class A int x; public: A(int a) x=a; friend class B; ; Class B public: void print(A a) a.x- -; cout a.x endl; ; void main() A a(10); B b; b.print(a); 程序执行后的输出结果是 _ 47 下列程序编译时发现 pb- f(10);语句出现错误,其原因是 _。 #include iostream.h class Base public: void f(int x)

20、cout “Base:“ x endl;) ; class Derived:public Base public: void f(char*str)cout “Derived:“ str endl; ; void main(void) Derived*pd=new Derived; Pd- f(10); 48 下列程序的运行结果是 _。 #include iostream.h class SomeClass public: SomeClass(int value) some value=value; ); void show_data(voiD) cout data some_value en

21、dl; ; static void set_data(int value) data=value; ; private: static int data; int some_value; ; int SomeClass:data=0; void main(void) SomeClass my_class(1001), your_class(2002); your_class.set_data(4004); my_class.show_data( ); 49 有以下程序: #included iostream using namespace std; class Base public: Bas

22、e( ) x=0; int x; ; class Derived1:virtual public Base public: Derived1( ) x=10; ; class Derived2:virtual public Base public: Derived2( ) x=20; ; class Derived: public Derived1,protected Derived2 ; int main( ) Derived obj; cout obj. x endl; return 0; 该程序运行后的输出结果是 _。 50 下列程序对加号进行了重载,划线部分的语句是 _。 #inclu

23、de iostream.h #include math.h class Triangle int x,y,z; double area; public: Triangle(int i,int j,int k) double s; x=i;y=j;z=k; s=(x+y+z)/2.0; area=sqrt(s*(s-x)*(s-y)*(s-z); void disparea( ) cout “Area=“ area endl; friend double operator+(Triangle tl,Triangle t2) _ ; void main( ) Triangle tl(3,4,5),

24、t2(5,12,13); double s; cout “tl:“;t1. disparea( ); cout “t2:“;t2. disparea( ); s=t1+t2: cout “总面积: =“ s endl; 51 在 C语言中,访问一个对象的成员所用的运算符是 _ ,访问一个指针所指向的对象的成员所用的运算符是 _。 国家二级( C+)笔试模拟试卷 152答案与解析 1 【正确答案】 A 【试题解析】 数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科 ,它包含 3个方面的内容,即数据的逻辑结构、存储结构和数据的运算。 2 【正确答案】 D 【试题解析】 串的长度指的是串

25、中的字符的个数,且其字符个数可以为零。 3 【正确答案】 B 【试题解析】 计算机算法是指解题方案的准确而完整的描述,它有以下几个基本特征 :可行性、确定性、有穷性和拥有足够的情报。 4 【正确答案】 C 【试题解析】 对象有如下一些基本特点,即标识唯一性、分类性、多态性、封装性和模块独立性。 5 【正确答案】 B 【试题解析】 软件工程概念的出现源自软 件危机。所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。总之,可以将软件危机归结为成本、质量、生产率等问题。 6 【正确答案】 C 【试题解析】 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的

26、基本原理和与软件设计有关的概念,它们是抽象、模块化、信息隐蔽和数据独立性。自底向上是集成测试中增量测试的一种。 7 【正确答案】 A 【试题解析】 软件的显著特点是规模庞大,复杂度超线性增长,在开发大型软件时,要保证高质量,极端复杂困难,不仅涉及技术 问题,更重要的是必须要有严格而科学的管理。 8 【正确答案】 A 【试题解析】 SQL语句中凡创建都用 CREATE,删除都用 DROP,改变用ALTER,再跟类型和名字,附加子句。 9 【正确答案】 B 【试题解析】 数据库系统 (DataBase System,简称 DBS) 包括数据库 (DataBase,简称 DB) 、数据库管理系统 (

27、DataBase Management System,简称 DBMS) 、数据库管理员、硬件和软件。 10 【正确答案】 C 【试题解析】 关系模型允 许定义 3类数据约束,它们是实体完整性约束、参照完整性约束及用户自定义的完整性约束。其中前两种完整性约束由关系数据库系统支持,对于用户自定义的完整性约束,则由关系数据库系统提供完整性约束语言,用户利用该语言给出约束条件,运行时由系统自动检查。 11 【正确答案】 C 【试题解析】 C语言中的类是可以组成层次结构的,类是用于描述事物的属性和对事物的操作,类与类之间有相对的独立性,但其可以通过一些方法进行信息的通信。 12 【正确答案】 B 【试题

28、解析】 C语言中语句的结束符是分号。 13 【正确答案】 A 【试题解析】 关于 C语言,我们应该了解以下必须要掌握的基础知识 : c程序是由类构成的。 一个函数由两部分组成 :函数的首部和函数体。 一个类由两部分组成 :类成员变量和类成员函数。 一个 C程序总是从 main函数开始执行的,而不论 main函数在整个程序中的位置如何 (main函数可以放在程序最前头,也可以放在程序最后,或写在一些函数之前,在另一些函数之后 ) 。 C程序在书写上,表现形式比较自由,一行内可以写几个语句,一个语句可以分写在几行上。每个语句和数据定义的最后 必须有一个分号。 可以用 /* */ 和 /对 C语言的

29、程序的任何部分作注释。 14 【正确答案】 B 【试题解析】 “ ”,“ ”运算符不能用于常量。 15 【正确答案】 A 【试题解析】 在 main函数中,调用 reverse函数将 b数组中的前 8个成员进行互置,执行完毕后, b数组中的成员为 8,7,6,5,4,3,2,1,9,10,在执行 for循环结构后,将 b6 ,b7 b9 的值相加,结果为 1 2 9 10 22。注意 :在计算累加和时,应将累加变量赋值为零。 16 【正确答案】 B 【试题解析】 dowhile 语句的一般形式是 do 语句 while(表达式 ) ; 特点是 :“直到型 ”循环结构。先执行一次 “语句 ”,判

30、 “表达式 ”,当 “表达式 ”为非0,再执行 “语句 ”,直到 “表达式 ”的值为 0时停止执行语句。在一般情况下,用while和 dowhile 语句解决同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但当 while后面的 “表达式 ”一开始就为 “假 ”时,两种循环的结果不同。这是因为此时 while循环的循环不被 执行,而 dowhile 循环 的循环体被执行一次。本题的关键是两个加数分别能被 13和 11整除,在 i 0时,直接将 316赋值给 k,当 k%11的值为 0时,则不必执行循环,将执行 jk/11语句,输出结果,所以该表达式合理的条件是 k%11。 17 【正

31、确答案】 C 【试题解析】 在给数组赋值时,可以用一个字符串作为初值,这种方法直观、方便,而且符合人们的习惯。数组 array的长度不是 5,而是 6,这点必须要注意。因为字符串常量的最后由系统加上一个 0,因此,上面的初始化与下面的等价 : Char array C,h,i,n,a,0; 18 【正确答案】 D 【试题解析】 通常,引用一个数组元素可以用下标法,如 ap a 形式,或指针法,如 * (语句中,程序先输出 x的值,然后再加 1,所以结果为 1,此时 x的值为 2;在 int x 0;x y * 2;语句中,将 0的值赋给 x,然后运算 x y * 2的值,结果为 x 6(此时

32、x的值为局部变量 ) , y的值不变,最后执行了 x语句后的值,所以应为 2。 20 【正确答案】 D 【试题解析】 本题首先通过第一个 while循环计算字符串 a的长度,再通过第二个循环,将字符串 a和 b相连,最后返回连接后的总长度。 21 【正确答案】 B 【试题解析】 首先,当 i 0时,数组中的位置是 a2 0 7,当然,如果用排除法的话,就不用考虑后面的循环了,因为在 4个选项中,第 1个数为 7的选项只有 B) 。本题执行第 2次 循环时, i的值为 1,则 cout函数中的数组指向为 a1 1 5,依次循环,可求出答案。 22 【正确答案】 B 【试题解析】 C语言中全局变量

33、是任何函数都可以改变的量,静态变量的有效范围在定义它的类中,而普通的变量的有效性只在使用它的函数中,在本题中 c为全局变量, b为静态变量, a为普通变量, b和 c在类 A的对象 a1和 s2中都自加 1。所以 b、 c为 2, a为 1。 23 【正确答案】 B 【试题解析】 C语言中一个派生类能不能继承基类的所有数据成员受继承方式的限制。 24 【 正确答案】 C 【试题解析】 构造函数是一类特殊的函数,其特点是函数名与类同名,没有返回值,也可以省略不写,还可以对类中的成员进行初始化。 25 【正确答案】 D 【试题解析】 C中用友元函数重载运算符至少有一个参数,重载一目运算符要有一个参

34、数,重载二目运算符要有两个参数。 26 【正确答案】 D 【试题解析】 C语言中用成员函数重载时,重载一目运算符没有参数,重载二日运算符要有一个参数。 27 【正确答案】 D 【试题解析】 在 C中规定,如果一个类被声明为类 模板,那么其中的所有成员函数就都成为了模板函数。 28 【正确答案】 B 【试题解析】 表示在输出时显示小数位,以及在文件输入时判断文件尾的函数分别是 showpoint( )和 eof ( )。 29 【正确答案】 A 【试题解析】 本题中 (a b c) 的运算次序是先算 a b,返回 1,再运算 1 c,返回 1,所以表达式 a b c的值为 1。 30 【正确答案

35、】 C 【试题解析】 如果在子类中要访问父类的函数应用 “: :”运算符。 31 【正确答案】 D 【试题解析】 运算符 “%”的两侧都应该是整型数。另外,本题需要掌握的知识点是 x% k等价于 x x%k。 32 【正确答案】 B 【试题解析】 右移运算符 “ ”是双目运算符。其功能是把 “ ”左边的运算数的各二进位全部右移若干位, “ ”右边的数指定移动的位数。例如 :设 a15, a 2表示把 000001111右移为 00000011 (十进制 3) 。 33 【正确答案】 B 【试题解析】 要把节点 b连接到节点 a之后,必须把 b的地址给 a的 next指针,选项 A) 中,指针变

36、量 q保存的就是 变量 b的地址,选项 B) 中的 p是指针变量,应该是 p next 在选项 D) 中,用 *运算符取出结构体变量,并且保存的就是 b的地址,所以正确。 34 【正确答案】 D 【试题解析】 一个类的友元函数对类成员的访问能力等同于类的成员函数,即能访问类的所有成员。 35 【正确答案】 C 【试题解析】 该函数的调用方式是 strcpy(字符数组,字符串 ) ,其中 “字符串 ”可以是串常量,也可以是字符数组。函数的功能是将 “字符串 ”完整地复制到 “字符数组 ”中,字符数组中原有内容被覆盖。使用该函数时 注意 : 字符数组必须定义得足够大,以便容纳复制过来的字符串。复制

37、时,连同结束标志 0一起复制。 不能用赋值运算符 “ ”将一个字符串直接赋值给一个字符数组,只能用 strcpy( ) 函数来处理。 strcat (字符数组,字符串 ) 的功能是把 “字符串 ”连接到 “字符数组 ”中的字符串尾端,并存储于 “字符数组 ”中。 “字符数组 ”中原来的结束标志被 “字符串 ”的第一个字符覆盖,而 “字符串 ”在操作中未被修改。使用该函数时注意 : 由于没有边界检查,编程者要注意保证 “字符数组 ”定义得足够大,以便容纳连接后的目标字符串 ;否则, 会因长度不够而产生问题。 连接前两个字符串都有结束标志 0,连接后 “字符数组 ”中存储的字符串的结束标志 0被舍

38、弃,只在目标串的最后保留一个 0。 36 【正确答案】 有穷性 【试题解析】 算法是指解题方案的准确而完整的描述。它有 4个基本特征,分别是可行性、确定性、有穷性和拥有足够的情报。 37 【正确答案】 log2n 【试题解析】 对于长度为 n的有序线性表,在最坏情况下,二分查找只需要比较log2n次,而顺序查找需要比较 n次。 38 【正确答案】 对象 【试题解析】 将 属性、操作相似的对象归为类,也就是说,类是具有共同属性、共同方法的对象的集合。 39 【正确答案】 软件生命周期 【试题解析】 软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般包括可行性研究

39、与需求分析、设计、实现、测试、交付使用及维护等活动。 40 【正确答案】 关系模型 【试题解析】 数据库管理系统是位于用户与操作系统之间的一层系统管理软件,是一种系统软件,是用户与数据库之间的一个标准接口。其总是基于某种数据模型,可以分为层次模型、网状模型和关系模型 。 41 【正确答案】 XYZxyz 【试题解析】 注意 for的循环体为空语句,其第二个表达式为一个赋值语句而不是一个逻辑表达式语句。因此, for循环的作用实际上是将 str2的字符逐个赋值给str1中的对应位置。 42 【正确答案】 10 【试题解析】 本题考查全局变量的使用。全局变量被系统默认初始化为 0,故在执行 a=a

40、+sum-a( );语句时,首先执行 sum_a函数,将 a的值改变为 5,该函数的返回值也是 5,故最后 a的值被赋值为 10。 43 【正确答案】 int Test:val=200; 【试题解析】 类的静态成员变量必须要进行初始化才能使用,初始化时需要用域限定符 :指明该变量所属的类名。 44 【正确答案】 100 Destructor is active Destructor is active Destructor is active 【试题解析】 本题比较简单,考查考生基本的类的定义,构造函数以及对象数组的概念。 45 【正确答案】 Base:fun( ); 【试题解析】 本题考核虚

41、基类。作用域分辨符号是 “:“,它可以用来 限定要访问的成员所在的类的名称。一般来说,在派生类中对基类成员的访问应该是唯一的。但是,多继承情况下可能造成对基类中某个成员的访问出现不唯一的情况,通过使用对象作用域分辨符可以解决这种对基类成员访问的二义性问题。 46 【正确答案】 9 【试题解析】 本题考核友元类的应用。在程序中,类 B是类 A的友元类,因此,在类 B的所有成员函数中均可访问类 A的任何成员。在 main( )中,先定义类A的一个对象 a(10)和类 B的一个对象 b。然后通过对象 b调用其成员函数 print输出对象 a的私有成员 x的值减 1即 9。 47 【正确答案】 数据类

42、型不匹配 【试题解析】 pd为派生类 Derived的指针,指向派生类的成员函数f(char*Str),不指向基类的 f(intx)。 48 【正确答案】 4004 1001 【试题解析】 本题考查静态成员变量在不同对象间的共享现象。无论哪个对象修改了其静态变量的值,其他对象再访问该变量时已经发生了变化。 49 【正确答案】 20 【试题解析】 本题考核虚基类。本题中,虽然 Derived 1和 Derived 2都是由共同的基类 x派生而来的,但由于引入虚基 类,使得它们分别对应基类的不同副本。这时数据成员 x只存在一份拷贝,不论在类 Derired 1中修改,还是在类Derived 2中修

43、改,都是直接对这唯一拷贝进行操作。本题程序执行语句 “Derived obj;”时,就会先调用虚基类 Base的构造函数,使得 x=0,然后执行类 Derived 1的构造函数使得 x=10,再执行类 Derived 2的构造函数,使得 x=20。最后输出 x的值为 20。 50 【正确答案】 return tl.area+t2.area; 【试题解析】 符号重载时往往采用的方法是对对象 中的每个成员分别处理,封装之后体现出对象参与运算的现象。 51 【正确答案】 成员选择运算符 (或 ”.”);成员访问运算符 (或 “ “) 【试题解析】 本题考查的是使用对象和对象指针访问成员所使用的符号的不同,考生请注意它们的区别。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1