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

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

1、国家二级( C+)笔试模拟试卷 71及答案与解析 1 在数据结构中,从逻辑上可以把数据结构分成 ( )。 ( A)动态结构和静态结构 ( B)线性结构和非线性结构 ( C)集合结构和非集合结构 ( D)树形结构和图状结构 2 在一个长度为 n的线性表中插入一个元素,以下说法不正确的是 ( )。 ( A)最好情况下需要移动的数据元素数目为 0 ( B)最坏情况下需要移动的数据元素数目为 n ( C)在平均情况下需要移动的数据元素数目为 n/2 ( D)最坏情况下需要移动的数据元素数目为 n/2 3 下 列关于栈的叙述中,不正确的是 ( )。 ( A)在栈的两端都能插入或删除数据 ( B)在栈中只

2、能从一端插入或删除数据 ( C)栈中的数据是先进后出 ( D)栈是一种特殊的线性表 4 下列各项中,属于面向对象程序设计语言不同于其他语言的主要特点的是 ( )。 ( A)继承性 ( B)消息传递 ( C)多态性 ( D)静态联编 5 在结构化方法中,软件功能分解属于下列软件开发中的阶段是 ( )。 ( A)详细设计 ( B)需求分析 ( C)总体设计 ( D)编程调试 6 下列各种调试方法 中,靠演绎、归纳以及二分法来实现的是 ( )。 ( A)强行排错法 ( B)回溯法 ( C)原因排除法 ( D)静态调试 7 设树 T的度为 4,其中度为 1, 2, 3, 4的节点个数分别为 4, 2,

3、 1, 1。则 T中叶子节点数为 ( )。 ( A) 8 ( B) 7 ( C) 6 ( D) 5 8 数据管理技术的发展是与计算机技术及其应用的发展联系在一起的,经历了由低级到高级的发展过程。分布式数据库、面向对象数据库等新型数据库是属于 ( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)高级数据库技术阶段 9 一棵含 18个节点的二叉树的高度至少为 ( )。 ( A) 3 ( B) 4 ( C) 5 ( D) 6 10 设有 n元关系 R及 m元关系 S,则关系 R与 S经笛卡儿积后所得新关系是一个( )元关系。 ( A) m ( B) n ( C) m

4、+n ( D) m*n 11 下列关于对象概念的描述中,错误的是 ( )。 ( A) C+中的对象就是 C语言中的结构变量 ( B)对象代表着正在创建的系统中的一个实体 ( C)对象是一个状态和操作 (或方法 )的封装体 ( D)对象之间的 信息传递是通过消息进行的 12 下列变量定义中,合法的是 ( )。 ( A) short_a=1-1e-1; ( B) doubleb=1+5e2.5; ( C) long do=0xfdaL; ( D) float2_and=1-e-3; 13 下列关于 C+运算符结合性的说法中,正确的是 ( )。 ( A)赋值运算符是左结合的 ( B)复合运算符是左结

5、合的 ( C)单目运算符是左结合的 ( D)双目算术运算符是左结合的 14 t为 int类型,进入下面的循环之前, t的值为 0。 while(t=1) 则以下叙述中,正确的是 ( )。 ( A)循环控制表达式的值为 0 ( B)循环控制表达式的值为 1 ( C)循环控制表达式不合法 ( D)以上说法都不对 15 下列关于指针运算的描述中,错误的是 ( )。 ( A)在一定条件下,两个指针可以相加 ( B)在一定条件下,两个指针可以进行逻辑判断 ( C)在一定条件下,指针可以为空值 ( D)在一定条件下,两个指针可以相互赋值 16 有以下程序: #include iostream using

6、namespace std; void fun(int i,int j) cout (i+j) end1; void fun(int i) cout i+end1; int main() int a=1; fun(A) ; return 0; 该程序执行后的输出结果是 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 17 下列关于静态数据成员的描 述中,正确的是 ( )。 ( A)静态数据成员是类的所有对象共享的数据 ( B)类的每个对象都有自己的静态数据成员 ( C)类的不同对象有不同的静态数据成员值 ( D)静态数据成员不能通过类的对象调用 18 下列关于构造函数的描述中

7、,错误的是 ( )。 ( A)构造函数可以设置默认参数 ( B)构造函数在定义类对象时自动执行 ( C)构造函数可以是内联函数 ( D)构造函数不可以重载 19 下列描述中,表达错误的是 ( )。 ( A)公有继承时基类中的 public成员在派生类中仍是 public的 ( B)公有继承时基类中的 private成员在派生类中仍是 private的 ( C)公有继承时基类中的 protected成员在派生类中仍是 protected的 ( D)私有继承时基类中的 public成员在派生类中是 private的 20 下列关于虚函数的说法中,正确的是 ( )。 ( A)如果在重定义虚函数时使用

8、了保留字 virtual,则该重定义函数仍然是虚函数 ( B)虚函数不得声明为静态函数 ( C)虚函数不得声明为另一个类的私有函数 ( D)派生类必须重新定义基类的虚函数 21 有以下程序: #include iostream using namespace std; int main() int intone; int intone=5; rInt=7; cout intOne“,“ rInt end1; return 0; 上述程序执行后的输出结果是 ( )。 ( A) 5,7 ( B) 7,5 ( C) 5,5 ( D) 7,7 22 若有以下程序: #include iostream

9、using namespace std; int main() int a4 4 = 1,2,3,-4,0,-12,-13,14, -21,23,0,-24,-31,32,-33,0; int i,j,s = 0; for(i=0;i 4;i+) for(j=O;j 4;j+) if(ai j =0) continue; s+=a i j; cout s end1; return 0; 执行后的输出结果是 ( )。 ( A) -138 ( B) 141 ( C) 75 ( D) -1 23 若有如下程序: #include iostream using namespace std; int m

10、ain() char *p=“abcdefgh“,*r; long *q; q=(long *)p; q+; r=(char *)q; cout r end1; return 0; 上述程序的输出结果是 ( )。 ( A) abcdefgh ( B) 0 ( C) abcd ( D) efgh 24 有以下程序: #include iostream using namespace std; class R public: R(int f1,int r2) R1=r1; R2=r2; void print(); void print ()const; private: int R1, R2; ;

11、 void R: :print() cout R1 “, “R2 end1; void R: :print() const cout Rl “, “ R2end1; int main () R a(5,4); const R b(20,52); b.print (); return 0; 执行后的输出结果是 ( A) 5,4 ( B) 20,52 ( C) 0,0 ( D) 4,5 25 有以下程序: #include iostream using namespace std; class sample private: int x; public: void setx(int i) x=i;

12、 int putx () return x; ; int main ( ) sample *p; sample A3; A0 .setx(5); A1 .setx (6); A2 .setx(7); for (int j=0;j 3;j+) p= cout p- putx () “, “; cout end1; return 0; 执行后执行结果是 ( )。 ( A) 5,6,7, ( B) 5,5,5, ( C) 6,6,6, ( D) 7,7,7, 26 有以下程序: #include iostream #include string using namespace std; class

13、Y; class X private: int x; char *strx; public: X(int a, char *str) x=a; strx=new charstrlen(str)+1; strcpy(strx,str); void show(Y ; class Y private: int y; char *stry; public: Y(int b,char *str) y=b; stry=new charstrlen(str)+1; strcpy(stry, str); friend void X: :show(Y ; void X: :show(Y cout ob, str

14、y end1; int main ( ) X a(10,“X“); Y b (20, “Y“); a. show(B) ; return 0; 执行后的输出结果是 ( )。 ( A) X,Y ( B) a,b ( C) X,X ( D) Y,Y 27 若有以下程序: #include iostream using namespace std; #define PI 3.14 class Point private: int x,y; public: Point(int a,int b) x=a; y=b; int getx() return x; int gety() return y; ;

15、class Circle : public Point private: 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); cout c1.area() end1; return 0; 程序执行后的输出结果是 ( )。 ( A) 314 ( B) 157 ( C) 78.5 ( D) 153.86 28 若有以下程序: #include iostream using

16、 namespace std; class Base private: int a,b; public: Base(int x, int y) a=x; b=y; void disp () cout a “ “ b end1; ; class Derived : public Base private: int c; int d; public: Derived(int x,int y, int z,int m) :Base(x,y) c=z; d=m; void disp () cout c “ “ d end1; ; int main() Base b(5,5),*pb; Derived

17、obj(1,2,3,4); pb= pb- disp(); return 0; 执行程序后的输出结果是( )。 ( A) 1,2 ( B) 3,4 ( C) 2,3 ( D) 5,5 29 下面是 “二维向量 ” vector2D 的定义,其中作为成员函数重载的运算符 “+”的功能是将两向量的分量 x和 y对应相加,然后返回作为相加结果的新对象。 那么应该在横线上填入的语句是 ( )。 class vector2D private: double x; /x分量 double y; /y分量 public: vector2D(double x0=0,double y0=0) :x(x0),y(

18、y0) void show(cout ( , y ) ; _; ; vector2D : operator + (vector2D a) return vector20(x+a.x,y+a.y); ( A) vector2D operator + (vector2D b) ( B) vector2D operator + (vector2D cout i; void print() cout i end1; ; class ClassTwo public: ClassTwo(int v=O) i=v;cout i; void print() cout i end1; private: Clas

19、sOne myObj; int i; ; void main() ClassTwo obj(1); obj.print(); ( A) 11 ( B) 111 ( C) 110 ( D) 101 31 设栈 S和队列 Q的初始状态为空,元素 e1、 e2、 e3、 e4、 e5和 e6依次通过栈S,一个元素出栈后即进入队列 Q,若 6个元素出队的顺序是 e2、 e4、 e3、 e6、e5、 e1,则栈 S的容量至少应是【 】。 32 下图所示的二叉树的先序遍历序列是【 】。 33 数据库管理系统是位于【 】之间的软件系统。 34 有以下程序: #include iostream using n

20、amespace std; int main() int i=010, j=10; cout (+i) “,“ i- end1; return 0; 则该程序运行后的输出结果是【 】。 35 若有以下程序: #include iostream using namespace std; int main() char a; a=H-A+0; cout a end1; return 0; 执行后输出的结果是【 】。 36 若二维数组 b有 m列,则在 bij前的元素的个数为【 】。 37 若有如下程序段: #include iostream using namespace std; int mai

21、n() char *p=“abcdefgh“, *r; long *q; q=(long *)p; q+; r=(char *)q; cout r end1; return 0; 该程序的输出结果是【 】。 38 以下程序的输出结果是【 】。 #include iostream using namespace std; void fun() static int a=0; a+=2; cout a; int main() int CC; for(CC=1; cc 4; CC+) fun(); cout end1; return 0; 39 假定用户没有给一个名为 MyClass的类定义析构函数

22、,则系统为其定义的默认析构函数首部形式为【 】。 40 【 】使一个函数可以定义成对许多不同数据类型完成同一个任务。 41 若有以下程序: #include iostream using namespace std; class Sample private: const int n; public: Sample(int i) :n(i) ) void print() cout “n=“ n end1; ; int main() sample a(10); a.print(); return 0; 上述程序运行后的输出结果是【 】。 42 有以下程序: #include iostream #

23、include fstream using namespace std; int main() ofstream ofile(“D:test.txt“); if(!ofile) cout “test.txt cant open“ end1; return 0; ofile “This book is C+“ “ “ 12345 end1; ofile.close(); ifstream ifile(“D:test.txt“); if ( ! ifile) cout “test.txt cant open“ end1; return 0; char str80; ifile str; ifile

24、.close(); cout str end1; return 1; 程序执行后的输出结果是【 】。 43 下面程序的功能是:将字符数组 a中下标值为偶数的元素从小到大排列,其他元素不变。请填空完成此程序。 #include iostream #include string using namespace std; int main ( ) char a=“changuage“,t,m; int i,j,k; k=strlen(A) ; for (i=0; i =k-2; i+=2) m=i; for (j=i+2; j =k;【 】 ) if (am a j m=j; if(【 】 ) t=

25、ai; ai=am; a m =t; cout a end1; return 0; 44 在 C+语言中,每个类都有一个隐含的指针叫【 】指针。该指针指向【 】。 国家二级( C+)笔试模拟试卷 71答案与解析 1 【正确答案】 B 【试题解析】 逻辑结构即数据元素之间的逻辑关系,是从逻辑关系上描述数据,与数据 的存储无关。因此根据数据元素与数据元素之间的关系,逻辑结构被分为两大类:线性结构和非线性结构。而集合结构与非集合结构、树形结构和图状结构指的都是特定的数据结构类型。 2 【正确答案】 D 【试题解析】 在一般情况下,要在第 i个元素之前插入一个新元素时,首先是从最后一个元素开始,直到第

26、 i个元素之间共 n-i+1个元素依次向后移动一个位置,最好情况指的是在线性表的最后的元素之后插入一个新元素,不需要移动表中元素,选项 A是正确的。最坏情况指的是在线性表的第一个元素之前插入一个新元素,则需要移动表中所有的元 素,选项 B是正确的。在平均情况下需要移动的数据元素数目为 n 2,选项 C是正确的。 3 【正确答案】 A 【试题解析】 栈的插入和删除运算都只在一端进行。即它的一端是封闭的,不允许进行插入与删除元素。一端是开口的,允许进行插入与删除元素,选项 B是正确的。栈中的数据是先进后出的,选项 C是正确的。栈是一种特殊的线性表,选项 D是正确的。 4 【正确答案】 A 【试题解

27、析】 继承是一个类 (子类 )直接使用另一个类 (父类 )的所有属性和方法 (权限为私有的属性和方法除外 )。它可以减少相似的类的重复说明,从 而体现出一般性与特殊性的原则,这使得面向对象程序设计语言有了良好的重用性,也是其不同于其他语言的最主要特点。 5 【正确答案】 C 【试题解析】 软件系统结构的总体设计包括:基于功能层次结构建立系统、按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系和模块间的接口、评估模块划分的质量等方面。详细设计的任务是:在使用程序设计语言编制程序以前,对所采用算法的逻辑关系进行分析,设计出全部必要的过程细节,并给

28、予清晰的表达。需求分析是指用户对目标软件系统在 功能、行为、性能、设计约束等方面的期望。需求分析的任务是发现需求、求精、建模和定义需求,通常包括:功能需求、性能需求、环境需求、可靠性需求、安全保密要求、用户界面需求、资源使用需求、成本消耗需求、开发进度需求等。编程调试的任务是诊断和改正程序中潜在的错误。综上所述。软件功能分解只能发生在总体设计阶段。 6 【正确答案】 C 【试题解析】 本题考查对几种调试方法的掌握,其中强行排错法是最常用也是最低效的,主要思想是通过 “计算机找错 ”。回溯法是从出现错误征兆处开始,人工沿控制流程往回追踪,直至发现出错 的根源。这是在小程序中常用的一种有效的调试方

29、法。程序变大后,可能的回溯路线显著增加,以致人工进行完全回溯望而不可及。静态调试是一种调试手段,主要是指通过人的思维来分析源程序代码和排错。 7 【正确答案】 A 【试题解析】 节点的度 节点拥有子树的个数。 树中节点总数为: 1*4+2*2+3*1+4*1=15与根节点之和,即 15+1=16。 树中非叶子节点数为 4+2+1+1=8。 树中叶子节点数为: 16-8=8 8 【正确答案】 C 【试题解析】 本题考查数据库系统的 发展,考生应掌握数据库发展的各个阶段,分布式数据库、面向对象数据库属于数据库系统阶段。 9 【正确答案】 C 【试题解析】 在二叉树的零层,有 20=1个节点即根节点

30、。第 1层根据根节点子节点的个数最多有 2个节点。第 2层的节点总数最多有 4个,以此类推,二叉树的第 n层的节点数最多为 2n。一棵含 18个节点的二叉树的高度至少为 5。 10 【正确答案】 C 【试题解析】 本题考核对笛卡儿积运算的掌握。笛卡儿积是两个关系的合并操作,因此 n元关系 R与 m元关系 S经笛卡儿积后所得新关系是 m+n元关系。 11 【正确答案】 A 【试题解析】 C+中的对象与 C语言中的结构变量是不一样的。对象是某一类类型的变量,而结构变量是结构类型的变量。同时 C+对 C的结构有了扩展,结构可以和类一样使用。 结构除了可以包含数据成员外,还可以包含成员函数; 成员也可

31、以加上 public、 private和 protected访问控制; 结构之间也可以继承。 两者惟一的不同之处是,结构中的成员默认是公有的,结构的继承默认是公有的,而类的继承默认是私有的,类的成员默认也是私有的。 12 【正 确答案】 B 【试题解析】 本题考核变量名的定义和赋值。在选项 A中,把实型表达式作为初值赋给整型变量,显然是非法的。在选项 C中,使用了 C+保留字 do作为变量名,是错误的。在选项 D中,表达式中的标识符 2 and是非法的。 13 【正确答案】 D 【试题解析】 运算符的结合方式有两种:左结合和右结合。左结合表示运算符优先与其左边的标识符结合进行运算,如加法:右结

32、合表示运算符优先与其右边的标识符结合,如单目算术运算符 +和 。赋值运算符、复合运算符和单目运算符都是右结合的。双目算术运算符是左结合的 ,所以只有选项 D是正确的。 14 【正确答案】 B 【试题解析】 本题考核对 while循环及逻辑表达式的理解。循环控制表达式为赋值表达式 “t=1”,永远为 1(为真 )。 15 【正确答案】 A 【试题解析】 本题考核指针的赋值和运算。在 C+语言中,指针可以进行赋值运算、算术运算、比较运算 (逻辑判断 )。但是在任何条件下,两个指针都不能允许相加。因为地址相加后可能会对内存进行不合法的访问。所以选项 A的描述是错误的。 16 【正确答案】 A 【试题

33、解析】 本题考核函数重载这个知识点。 函数 fun有两种实现:第 1种实现中,有两个 int型形参,第 2个实现中,是 1个 int型形参。由于这两种实现方式中形参的个数不同,形成了函数的重载。在主函数中,由于传递给函数 fun()的实参为 1个整型变量 a,所以调用函数 fun()的第 2中实现,输出 1。 17 【正确答案】 A 【试题解析】 静态数据成员是被类的所有对象共享,它不属于类的任何一个对象,它的作用域是类范围。静态数据成员在每个类对象中并不占有存储空间,它只是每个类中分配有存储空间,供所有对象公用。静态数据成员的值对每个对象都一样,但它的值可 以被任何一个对象更新,从而实现了同

34、一类的不同对象之间的数据共享。 18 【正确答案】 D 【试题解析】 构造函数是类的一个特殊成员函数,它与类同名,并且没有返回值。 C+在创建一个对象时,会自动调用类的构造函数,在构造函数中可以执行初始化成员变量的操作。构造函数可以是内联函数,也可以重载。 19 【正确答案】 B 【试题解析】 C+中,继承方式控制了基类中具有不同访问属性的成员在派生类中的访问属性。基类中的私有成员在派生类中是隐蔽的,只能在基类内部访问。所以选项 B是错误的。派生类中的 成员不能访问基类中的私有成员,但可以访问基类中的公有成员和保护成员。此时派生类对基类中各个成员的访问能力与继承方式无关,但继承方式将影响基类成

35、员在派生类中的访问控制属性。基类中公有成员和保护成员在派生类中的访问控制属性将随着继承方式而改变:派生类从基类公有继承时,基类的公有成员和保护成员在派生类中仍然是公有成员和保护成员;派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都改变为私有成员;派生类从基类保护继承时,基类的公有成员在派生类中改变为保护成员,基类的保护成员在派生类中仍然为保护成员。所以,选 项 A、 C和 D都是正确的。 20 【正确答案】 B 【试题解析】 使用虚函数时必须注意下列事项: 只有类的成员函数才能说明为虚函数。这是因为虚函数仅适用于有继承关系的类对象,所以普通函数不能说明为虚函数。 静态成员函数不能是

36、虚函数,因为静态成员函数不受限于某个对象。 内联函数不能是虚函数,因为内联函数是不能在运行中动态确定其位置。即使虚函数在类的内部定义,编译时仍将其看作是非内联的。 构造函数不能是虚函数,因为构造时对象还是一片未定型的空间。只有在构造完成后,对象才能 成为一个类的名副其实的实例。 析构函数可以是虚函数,而且通常说明为虚函数。说明虚函数的目的在于;使用 delete运算符删除一个对象时,能确保析构函数被正确地执行。这是因为设置虚析构函数后,可以利用动态联编方式选择析构函数。 一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类

37、虚函数的参数类型强制转换为基类中虚函数的参数类型。 21 【正确答案】 D 【试题解析】 程序中,引用 rim用 intone初始化以后, 无论改变 intOne还是rInt,实际上都是 intone,两者的值是一样的。所以执行语句 “rInt=7; ”后,整型变量 intOne、 rInt的值都被置为 7。 22 【正确答案】 A 【试题解析】 本题属于综合题,考查多个方面的知识点。程序首先定义了一个二维数组 a,并初始化其值。在内层 for循环体中,遇到大于等于 0的数,就继续执行下次循环,否则就执行 “s+=aij”,即把其值累加并保存在变量 s中。所以本题双重循环的功能是:计算数组中所

38、有负数的累加和,即 s=-138。 23 【正确答案】 D 【试题解析】 本题定义了一个字符型指针变量 p,并通过赋初值让它指向了一个字符串。还定义了另一个字符型指针变量 r和一个长整型指针变量 q。首先通过语句 “q=(long*)p; ”,把 p的地址值强制转换为长整型地址值并赋值给 q,然后执行“q+; ”,地址值增加了 4,执行语句 “r=(char*)q; ”,把长整型指针变量 q的值再强制转换成字符型地址值并赋给 r, r的值应为字符串中字符 “e”的地址。最后输出 r指向的字符串。 24 【正确答案】 B 【试题解析】 使用 const关键词修饰的对象成为常对象 ,题中对象 b被

39、声明为类R的常对象。使用 const关键词说明的成员函数称为常成员函数,类 R中用 const重载了函数 print()。在使用常对象和常成员函数时应注意以下几点: const是函数类型的一个组成部分,因此在函数部分也要带 const关键词。 常成员函数不能更新对象的数据成员,也不能调用该类中没有用 const修饰的成员函数。 如果将一个对象说明为常对象,则通过该常对象只能调用它的常成员函数,不能调用其他的成员函数。 const关键词可以参与区分重载函数。 本题中, b为类 R的常对象,通过 b只能调用类 R的常成员函数 print()输出20,52。 25 【正确答案】 A 【试题解析】 对

40、象数组是指数组元素为对象的元素,该数组中的每一个元素都是同一个类的对象。程序中,定义了类 sample的对象数组 A,并调用各个对象的成员函数给其私有数据成员赋值。然后通过 for循环将其值输出。 26 【正确答案】 A 【试题解析】 本题考核类的定义和友元函数的应用。 该程序中,类 X的成员函数 show()在类 Y中说明为友元,因此,在该友元成员 show()中可以访问 类 Y的私有成员 stry。 成员函数 show()的功能就是输出类 X的私有成员 strx和 Y对象 ob的私有成员 stry, 主函数 main()中定义了 X类的一个对象 a和 Y类的一个对象 b,并且都进行了初始化

41、。然后调用对象 a的成员函数 show,输出对象 a中私有成员 strx中的内容和对象 b中私有成员 stry中的内容,即字符串 stringX和 stringY。 27 【正确答案】 A 【试题解析】 本题考核派生类的定义和应用。本程序设计了一个点类 Point,包含了横、纵两个坐标数据 x和 y,由它派生 出了圆类 Circle,并加入了新的数据成员,即一个半径数据,和一个求圆面积的函数成员 area。 在主函数中,首先定义了一个圆 Circle类的对象 c1,并通过它的构造函数初始化其数据成员。由此可知,其半径 r的值为 10,所以其面积为 PI*10*10=314,即对象 c1的函数成

42、员area的返回值为 314。 28 【正确答案】 A 【试题解析】 本题考核基类指针的使用。本题首先定义了一个基类 Base和一个由 Base派生出来的派生类 Derived。在主函数中,定义了一个基类 Base指针 pb和基类对象 b, 还定义了派生类 Derived的对象 obj。然后将派生类对象 obj的地址赋值给指向基类 Base的指针 pb。由于 Derived是 Base的子类型,因此允许上述赋值,但这时指针 pb只能使用从基类 Base继承的成员,即当 pb指向 obj对象时, pb- disp还是调用基类 Base的成员函数 disp。所以程序最后输出的对象 d中对基类成员的

43、初始化值,即 1, 2。 29 【正确答案】 A 【试题解析】 此题在类 vector2D中将运算符 “+”重载为成员函数,实现将两向量的分量 x和 y对应相加的功能。那么由题可知,在空 格处填入的应当是运算符 “+”重载函数的声明。根据运算符 “+”重载函数在类体外的定义可知其声明语句为: vector2Doperator+(vector2DB) 30 【正确答案】 A 【试题解析】 类 ClassTwo中定义了成员对象 myObj,所以在构造类 ClassTwo的对象 obj时会先调用类 ClassOne的构造函数输出 0,然后调用 ClassTwo的构造函数输出 1。主函数最后调用 ob

44、j的成员函数 print()输出 1。所以最后结果为011。 31 【正确答案】 大于 3 【试题解析】 栈的操作原则 “后进先出 ”,队列的操作原则 “先进后出 ”。出队列顺序即为入队列顺序,而入队列顺序也就是出栈顺序是: e2、 e4、 e3、 e6、 e5、 e1。为得到出栈顺序为 e2、 e4、 e3、 e6、 e5、 e1。则入栈操作应为 e1、 e2进栈,e2出栈。 (进栈后有 e1、 e2,出栈后仅有 e1) e3、 e4进栈, e4、 e3出栈。 (进栈后有 e1、 e3、 e4,出栈后仅有 e1) e5、 e6进栈, e5、 e6、 e1出栈。 (进栈后有 el、e5、 e6

45、,出栈后为空 )。 32 【正确答案】 A B D G C E H I F 【试题解析】 二叉树的遍历是很重要的知识点,先序、中序、后序三种不同的方式要比较来掌握,注意其中的区别。此类题一定要先看清题目要求的是哪种遍历方法,然后根据不同遍历的特点来计算。本题要求是先序遍历,其遍历顺序应该为 访问根节点: 先序遍历左子树; 先序遍历右子树。按照定义,先序遍历序列是 ABDGCEHIF。 33 【正确答案】 用户与操作系统 【试题解析】 本题考核数据库管理系统的基本概念。数据库管理系统是一个帮助用户创建和管理数据库的应用程序的集合。因此,数据库管理系统需要操作系统的支持,为 用户提供服务。 34 【正确答案】 9, 10 【试题解析】 本题考核自增运算符和自减运算符的使用以及常量的表示形式。程序中 i的值是八进制,代表十进制中的 8, +i是在语句运算前自身加 1,而 j-是在语句运算结束后减 1。 35 【正确答案】 7 【试题解析】 字符型数据可作为整型参加算术运算

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

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

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