【计算机类职业资格】二级C++笔试-230及答案解析.doc

上传人:towelfact221 文档编号:1324471 上传时间:2019-10-17 格式:DOC 页数:29 大小:91KB
下载 相关 举报
【计算机类职业资格】二级C++笔试-230及答案解析.doc_第1页
第1页 / 共29页
【计算机类职业资格】二级C++笔试-230及答案解析.doc_第2页
第2页 / 共29页
【计算机类职业资格】二级C++笔试-230及答案解析.doc_第3页
第3页 / 共29页
【计算机类职业资格】二级C++笔试-230及答案解析.doc_第4页
第4页 / 共29页
【计算机类职业资格】二级C++笔试-230及答案解析.doc_第5页
第5页 / 共29页
点击查看更多>>
资源描述

1、二级 C+笔试-230 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.关于在调用模板函数时模板实参的使用,下列叙述中正确的是(分数:2.00)A.对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略B.对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略C.对于虚拟类型参数所对应的模板实参,若能够省略则必须省略D.对于常规参数所对应的模板实参,任何情况下都不能省略2.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是(分数:2.00)A.DB 包含 D

2、BS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系3.if 语句的语法格式可描述为 格式 1:if(条件)语句 或 格式 2:if(条件)语句 1else语句 2 关于上面的语法格式,下列表述中错误的是(分数:2.00)A.条件部分可以是一个 if 语句,例如 if(if(a=0)B.条件部分可以是一个 if 语句,例如 if()if()C.如果在条件前加上逻辑非运算符!并交换语句 1和语句 2的位置,语句功能不变D.语句部分可以是一个循环语句,例如 if()while()4.在 E-R 图中,用来表示实体的图形是(分数:2.00)A.矩

3、形B.椭圆形C.菱形D.三角形5.下列叙述中正确的是(分数:2.00)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构6.有如下类声明: class SAMPLE int n; public: SAMPLE(int i=0):n(i) void setValue(mt nO); ; 下列关于 setValue 成员函数的实现中,正确的是(分数:2.00)A.SAMPLE:setValue(int nO)n=nO;B.void SAMPLE:setValue(int nO)n=nO;C.void setValue(int nO)n

4、=nO;D.setValue(int nO)n=nO;7.有如下程序: #includeiostream using namespaee std; class Base protected: Base( )toutA; Base(char C) coutc; ; class Derived:public Base public: Derived(char C) eoutc; ; int lnaiD( ) Derived dl(B); return 0; 执行这个程序屏幕上将显示输出(分数:2.00)A.BB.BAC.ABD.BB8.有如下程序: #includeiostream #includ

5、eiomanip using namespace std; int main( ) coutsetprecision(3)fixedsetfill(*)SETW(8);cout12.345_34.567; return 0; 若程序的输出是: *12.345*34.567 则程序中下画线处遗漏的操作符是(分数:2.00)A.setprecision(3)B.fixedC.setfill(*)D.stew(8)9.下列关于 C+函数的叙述中,正确的是(分数:2.00)A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是 return 语句C.标准 C+要求在调用一个函数之前

6、,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式10.两个或两个以上模块之间关联的紧密程度称为(分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性11.有如下程序: #lneludeIOstream using namespaee std; class Complex double re,im; public: Complex(double r,double i):re(r),im(i) double real( )constreturn re; double image( )constreturn im; Complex im+=a.im; re

7、turn*this; ; ostream public: Obj( )i+ Obj( )i-; static int getVal( )return i; ; int Obj:i=0; void f( )Obj ob2;coutob2getVal( ); int main( ) Obj obl; f( ); Obj*ob3=new Obj;coutob3-getVal( ); delete ob3;coutObj:getVal( ); return 0; 程序的输出结果是(分数:2.00)A.232B.231C.222D.22115.以下关键字不能用来声明类的访问权限的是(分数:2.00)A.

8、publicB.staticC.protectedD.private16.有下面的函数调用 fun(a+b,3,max(n-1)B) 则 fun 的实参个数是(分数:2.00)A.3B.4C.5D.617.下列选项不属于结构化程序设计方法的是(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用18.运算符重载是对已有的运算符赋予多重含义,因此(分数:2.00)A.可以对基本类型(如 int 类型)的数据,重新定义“+”运算符的含义B.可以改变一个已有运算符的优先级和操作数个数C.只能重载 C+中已经有的运算符,不能定义新运算符D.C+中已经有的所有运算符都可以重载19.有如下程序:

9、#includeiostream #includeiomanip using namespace std; class MyClass public: MyClass( )coutA; MyClass(char C) coutc; MyClass( )coutB; ; int main( ) MyClass pl,*p2; p2=new MyClass(X); delete p2; return 0; 执行这个程序屏幕上将显示输出(分数:2.00)A.ABXB.ABXBC.AXBD.AXBB20.有如下程序: #includeiostream using namespace std; clas

10、s Base private: void funl( )constcout“funl“; protected: void fun2( )consttout“fun2“; public: void fun3( )consteout“fun3“; ; class Derived:protected Base public: void fun4( )constcout“fun4“; ; int main( ) Derived obj; obj.funl( ); / obj.fun2( ); / obj.fun3( ); / obj.fun4( ); / return 0; 其中有语法错误的语句是(分

11、数:2.00)A.B.C.D.21.按照“后进先出”原则组织数据的数据结构是(分数:2.00)A.队列B.栈C.双向链表D.二叉树22.在深度为 7 的满二叉树中,叶子结点的个数为(分数:2.00)A.32B.31C.64D.6323.下列语句中,错误的是(分数:2.00)A.const int buffei=256;B.const double*point;C.int const buffer=256;D.double*const point:;24.在公有继承的情况下,允许派生类直接访问的基类成员包括(分数:2.00)A.公有成员B.公有成员和保护成员C.公有成员、保护成员和私有成员D.保

12、护成员25.下列符号中,正确的 C+标识符是(分数:2.00)A.enumB.2bC.foo-9D._3226.由于常对象不能被更新,因此(分数:2.00)A.通过常对象只能调用它的常成员函数B.通过常对象只能调用静态成员函数C.常对象的成员都是常成员D.通过常对象可以调用任何不改变对象值的成员函数27.下列叙述中正确的是(分数:2.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上 3 种说法都不对28.“商品”与“顾客”两个实体集之间的联系一般是(分数:2.00)A.一对一B.一对多C.多对一D.多对多29.有如下说明: in

13、ta10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是(分数:2.00)A.*p+9B.*(p+8)C.*p+=9D.p+830.有如下程序: #includeiostream using namespaee std; int i=1; class Fun public: static int i; int value( ) return i-1; int value( )cons return i+1; ; int Fun:i=2; int main( ) int i=3; Fun funl; const Fun fun2; _: return 0; 若程序

14、的输出结果是: 123 则程序中下画线处遗漏的语句是(分数:2.00)A.coutfunlvalue( )Fun:ifun2value( );B.coutFun:ifunlvalue( )fun2value( );C.coutfunlvalue( )fun2value( )Fun:i;D.coutfun2value( )Fun:ifunlvalue( );31.下列关于输入流类成员函数 getline( )的描述中,错误的是(分数:2.00)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符串长度是受限制的C.该函数读取字符串时,遇到终止符便停止D.该函数读取字符串时,可以包含空格32

15、.关于关键字 class 和 typename,下列叙述中正确的是(分数:2.00)A.程序中的 typename 都可以替换为 classB.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型33.下列关于虚函数的叙述中,正确的是(分数:2.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数34.关于运算符重载,下列叙述中正确的是(分数:2.00)A.C+已有的任何运算符都可以

16、重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型D.可以通过运算符重载来创建 C+中原来没有的运算符35.有如下程序: #includeiostream using namespace std; class Base public: void funl( )cout“Base/n“; virtual void fun2( )cout“Base/n“; ; class Derived:public Base public: void funl( )eout“Derived/n“; void fun2( )cout“Derived/n“; ; voi

17、d f(Base B) b.funl( );b.fun2( ); int main( ) Derived obj; f(obj); return 0; 程序的输出结果是(分数:2.00)A.BaseBaseB.BaseDerivedC.DerivedBaseD.Derived Derived二、填空题(总题数:15,分数:30.00)36.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_37.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_38.在关系模型中,把数据看成是二维表,每一个二维表称为

18、一个 1。(分数:2.00)填空项 1:_39.程序测试分为静态分析和动态测试。其中 1 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(分数:2.00)填空项 1:_40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 1。(分数:2.00)填空项 1:_41.有一种只在循环语句或 switch 语句中使用的流程控制语句,表示该语句的关键字是 1。(分数:2.00)填空项 1:_42.程序中有如下语句 for(int i=0;i5;i 十+)cout*(P+i)“,“; 能够依次

19、输出 int 型一维数组 DATA 的前 5 个元素。由此可知,变量 P 的定义及初始化语句是_。(分数:2.00)填空项 1:_43.若下面程序运行时输出结果为 1,A,10.1 2,B,3.5 请将程序补充完整。 #includeiostream using namespace std; int main( ) void test(int,char,double_); test(1,A,10.1); test(2,B); return 0; void test(int a,char b,doubleC) couta,b,cendl;(分数:2.00)填空项 1:_44.有如下类声明: cl

20、ass MyClass int i; private: int j; protected: int k; public: int m,n; ; 其中,私有成员的数量为_。(分数:2.00)填空项 1:_45.有如下程序: #include iostream using namespace std; class Con char ID; public: Con( ):ID(A)cout1; Con(char ID) :ID(ID) eout2; Con(Con im+=a.im; return*this; ; ostream public: Obj( )i+ Obj( )i-; static i

21、nt getVal( )return i; ; int Obj:i=0; void f( )Obj ob2;coutob2getVal( ); int main( ) Obj obl; f( ); Obj*ob3=new Obj;coutob3-getVal( ); delete ob3;coutObj:getVal( ); return 0; 程序的输出结果是(分数:2.00)A.232B.231C.222D.221 解析:解析 因为实现了同类之间的不同对象之间的数据共享,所以静态数据成员无论有多少个类对象的建立和删除,都只有一个副本。Obj obl;调用构造函数一次,i=1,f( );再调

22、用 f 函数,新生成局部对象 ob2,调用构造函数一次,i=2,调用 ob2.getVal();打印 i=2;f 函数调用结束时,对象 ob2 被删除,调用析构函数一次,i=1;0bj*ob3=new Obj;生成一个对象指针,调用构造函数一次,此时i=2,coutob3-getVal( );打印 i 的值为 2,delete ob3;调用析构函数一次,i-1,coutObj:getVal( );为 1。15.以下关键字不能用来声明类的访问权限的是(分数:2.00)A.publicB.static C.protectedD.private解析:解析 类的访问权限有 public、prirate

23、、protected 3 种方式。16.有下面的函数调用 fun(a+b,3,max(n-1)B) 则 fun 的实参个数是(分数:2.00)A.3 B.4C.5D.6解析:解析 函数的实参可以有常量、变量和表达式,但是一个表达式只能是一个实参。前后用“,”隔开。17.下列选项不属于结构化程序设计方法的是(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的原则可以概括为自顶向下,逐步求精,模块化,限制使用 goto 语句。代码可重用性是面向对象程序设计方法的一大特点。18.运算符重载是对已有的运算符赋予多重含义,因此(分数:2.00)A.可以对基本类

24、型(如 int 类型)的数据,重新定义“+”运算符的含义B.可以改变一个已有运算符的优先级和操作数个数C.只能重载 C+中已经有的运算符,不能定义新运算符 D.C+中已经有的所有运算符都可以重载解析:解析 C+规定:运算符重载不能改变运算符操作对象的个数,不能改变运算符原有的结合特性,不能改变运算符原有的优先级;同时重载只能针对已有的运算符,而不能创建新的运算符。C+中“*”、“”、“:”、“?:”、sizeof 等几个运算符不能重载。19.有如下程序: #includeiostream #includeiomanip using namespace std; class MyClass pu

25、blic: MyClass( )coutA; MyClass(char C) coutc; MyClass( )coutB; ; int main( ) MyClass pl,*p2; p2=new MyClass(X); delete p2; return 0; 执行这个程序屏幕上将显示输出(分数:2.00)A.ABXB.ABXBC.AXBD.AXBB 解析:解析 Myclass p1,*p2;在生成对象 pl 时要调用 Myclass 的无参构造函数打印A;p2=newMyclass(X);生成对象时调用有参构造函数打印 X;在删除指针 p2 时调用 MyClass 的析构函数一次,打印

26、B;在程序结束时,删除对象 p1,调用析构函数一次,打印 B。20.有如下程序: #includeiostream using namespace std; class Base private: void funl( )constcout“funl“; protected: void fun2( )consttout“fun2“; public: void fun3( )consteout“fun3“; ; class Derived:protected Base public: void fun4( )constcout“fun4“; ; int main( ) Derived obj;

27、obj.funl( ); / obj.fun2( ); / obj.fun3( ); / obj.fun4( ); / return 0; 其中有语法错误的语句是(分数:2.00)A.B. C.D.解析:解析 使用保护方式派生,派生类对象不可访问基类中的任何成员。21.按照“后进先出”原则组织数据的数据结构是(分数:2.00)A.队列B.栈 C.双向链表D.二叉树解析:解析 栈是采用“后进先出”的原则组织数据的一种数据结构,队列采用“先进先出”的原则组织数据,双向链表是存储结构,采用两种方式均可实现。22.在深度为 7 的满二叉树中,叶子结点的个数为(分数:2.00)A.32B.31C.64

28、D.63解析:解析 满二叉树的深度和结点的关系公式为 k=log2n+1,则有 n=2k-1(n 为树结点数,k 为树的深度)。23.下列语句中,错误的是(分数:2.00)A.const int buffei=256;B.const double*point; C.int const buffer=256;D.double*const point:;解析:解析 定义常变量的一般形式为: const 类型名变量名=初始值 定义常指针的一般形式为: const 类型名*变量名=初始值 或者为: 类型名*const 变量名=初始值24.在公有继承的情况下,允许派生类直接访问的基类成员包括(分数:2.

29、00)A.公有成员B.公有成员和保护成员 C.公有成员、保护成员和私有成员D.保护成员解析:解析 在公有继承方式下,派生类允许直接访问基类的公有成员和保护成员,而不能访问私有成员。25.下列符号中,正确的 C+标识符是(分数:2.00)A.enumB.2bC.foo-9D._32 解析:解析 在 C+中,变量标识符必须以大小写字母、下画线开始,是由数字或者字母下画线等组成的一个字符串,其中 C+关键字不能作为标识符,不能包含-、+、*、/等运算符号。26.由于常对象不能被更新,因此(分数:2.00)A.通过常对象只能调用它的常成员函数 B.通过常对象只能调用静态成员函数C.常对象的成员都是常成

30、员D.通过常对象可以调用任何不改变对象值的成员函数解析:解析 常对象只能调用常成员,而不能调用其他非常成员函数。27.下列叙述中正确的是(分数:2.00)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上 3 种说法都不对 解析:解析 软件测试的原则:软件开发人员即程序员要避免测试自己开发的程序;尽早地和不断地进行软件测试,在整个开发的各个阶段都要进行不断的测试。 软件维护是从软件交付使用直到软件生命周期结束的整个过程都必须进行的工作。28.“商品”与“顾客”两个实体集之间的联系一般是(分数:2.00)A.一对一B.一对多C.多对一D.

31、多对多 解析:解析 一类商品能卖给多个顾客,而一个顾客可以买走多种商品,因此是多对多的关系。29.有如下说明: inta10=1,2,3,4,5,6,7,8,9,10,*p=a; 则数值为 9 的表达式是(分数:2.00)A.*p+9B.*(p+8) C.*p+=9D.p+8解析:解析 当指针指向数组的首地址时,数组内各元素地址为 p+n(数组下标从 0 开始到 n-1 结束),n为数组下标,取数组元素值为*(p+n)。30.有如下程序: #includeiostream using namespaee std; int i=1; class Fun public: static int i;

32、 int value( ) return i-1; int value( )cons return i+1; ; int Fun:i=2; int main( ) int i=3; Fun funl; const Fun fun2; _: return 0; 若程序的输出结果是: 123 则程序中下画线处遗漏的语句是(分数:2.00)A.coutfunlvalue( )Fun:ifun2value( ); B.coutFun:ifunlvalue( )fun2value( );C.coutfunlvalue( )fun2value( )Fun:i;D.coutfun2value( )Fun:i

33、funlvalue( );解析:解析 funl 是 FUN 的普通实例对象,而 fun2 是常对象,i 是 FUN 的静态成员。funl.value( )是调用成员函数 int value( )return i-1;,值为 1。Fun:i 是静态成员函数 i 的值,i 值不变为2,fun2 为常对象,只能调用常成员函数 int value( )constreturn i+1;,所以其返回值为 3。31.下列关于输入流类成员函数 getline( )的描述中,错误的是(分数:2.00)A.该函数是用来读取键盘输入的字符串的B.该函数读取的字符串长度是受限制的 C.该函数读取字符串时,遇到终止符便

34、停止D.该函数读取字符串时,可以包含空格解析:解析 getline(字符数组,字符个数 n,终止标志字符)的功能是从流中读取 n-1 个字符,然后插入一个/n,getline 可以读取一系列字符,其中包括空白字符、Tab 键、回车键。32.关于关键字 class 和 typename,下列叙述中正确的是(分数:2.00)A.程序中的 typename 都可以替换为 class B.程序中的 class 都可以替换为 typenameC.在模板形参表中只能用 typename 来声明参数的类型D.在模板形参表中只能用 class 或 typename 来声明参数的类型解析:解析 只有在目标声明中

35、,typename 和 class 才可以相互替换,即 typename 可以被 class 替换,而有的 class,不一定能被 typename 替换。33.下列关于虚函数的叙述中,正确的是(分数:2.00)A.从虚基类继承的函数都是虚函数B.虚函数不得是静态成员函数 C.只能通过指针或引用调用虚函数D.抽象类中的成员函数都是虚函数解析:解析 C+规定:虚函数必须是其所在类的成员函数,而不能是友元函数,也能是静态成员函数,虚函数的调用可以通过指针或者引用,也可以通过对象来调用。抽象类成员函数里至少有一个虚函数,但是并非所有的成员函数都为虚函数。34.关于运算符重载,下列叙述中正确的是(分数

36、:2.00)A.C+已有的任何运算符都可以重载B.运算符函数的返回类型不能声明为基本数据类型C.在类型转换符函数的定义中不需要声明返回类型 D.可以通过运算符重载来创建 C+中原来没有的运算符解析:解析 C+对“”、“*”、“:”、“?:”、sizeof 等运算符不允许重载,运算符重载不能创建新的运算符。运算符重载的返回类型只能为重载该运算符的类型。类型转换函数不需要声明返回类型,但必须有 return 语句,返回值类型为该转换函数的目标类型。35.有如下程序: #includeiostream using namespace std; class Base public: void funl

37、( )cout“Base/n“; virtual void fun2( )cout“Base/n“; ; class Derived:public Base public: void funl( )eout“Derived/n“; void fun2( )cout“Derived/n“; ; void f(Base B) b.funl( );b.fun2( ); int main( ) Derived obj; f(obj); return 0; 程序的输出结果是(分数:2.00)A.BaseBaseB.BaseDerived C.DerivedBaseD.Derived Derived解析:

38、解析 函数 f 的形参为基类对象,在调用时可以用派生类的对象作为实参,但是该对象就被弱化为基类对象,故 bfunl( )调用的是基类的 funl( )函数,bfun2( )调用的是被重新定义后的虚函数,所以打印的结果是 DERVIED。二、填空题(总题数:15,分数:30.00)36.对长度为 10 的线性表进行冒泡排序,最坏情况下需要比较的次数为 1。(分数:2.00)填空项 1:_ (正确答案:45)解析:解析 冒泡排序最坏的情况的情况下的比较次数是*其中 k 为比较次数,n 为元素个数,所以k=45。37.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填

39、空项 1:_ (正确答案:类)解析:解析 类是对某种类型的对象定义变量和方法的原型,它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。38.在关系模型中,把数据看成是二维表,每一个二维表称为一个 1。(分数:2.00)填空项 1:_ (正确答案:关系)解析:解析 在关系数据库模型中,一张二维表就是一个关系,一个关系在数据库中可表示成一张二维表。39.程序测试分为静态分析和动态测试。其中 1 是指不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。(分数:2.00)填空项 1:_ (正确答案:静态分析)解析:解析 静态分析是指不执行程序,而只是对程序

40、文本进行检查,通过阅读和讨论,分析和发现程序中的错误。动态分析是基于计算机的测试,根据软件各个阶段的规格说明和程序的内部结构而设计的测试用例,并通过这些用例去运行程序,以发现程序错误的过程。40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 1。(分数:2.00)填空项 1:_ (正确答案:物理独立性)解析:解析 物理独立性指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的,即数据在磁盘中怎样存储由 DBMS 管理,应用程序主要处理知识数据的逻辑结构。当数据的物理存储改变了,应用无须发生任何改变。41.有一种

41、只在循环语句或 switch 语句中使用的流程控制语句,表示该语句的关键字是 1。(分数:2.00)填空项 1:_ (正确答案:break;)解析:解析 由程序基本结构,根据题干而得。42.程序中有如下语句 for(int i=0;i5;i 十+)cout*(P+i)“,“; 能够依次输出 int 型一维数组 DATA 的前 5 个元素。由此可知,变量 P 的定义及初始化语句是_。(分数:2.00)填空项 1:_ (正确答案:int*p=DATA)解析:解析 p 作为整型指针,指向数组 DATA 的首地址,这样 cout*(p+i)“,“才能输出 DATA的前 5 个元素。43.若下面程序运行

42、时输出结果为 1,A,10.1 2,B,3.5 请将程序补充完整。 #includeiostream using namespace std; int main( ) void test(int,char,double_); test(1,A,10.1); test(2,B); return 0; void test(int a,char b,doubleC) couta,b,cendl;(分数:2.00)填空项 1:_ (正确答案:5)解析:解析 为函数的参数设置默认值,根据题干,要打印 2、B、3.5,则第三个参数的默认值该为3.5。故应该填“=3.5”。44.有如下类声明: class

43、MyClass int i; private: int j; protected: int k; public: int m,n; ; 其中,私有成员的数量为_。(分数:2.00)填空项 1:_ (正确答案:2)解析:解析 如果数据成员没用显式的作用域修饰符去修饰,则默认为私有数据成员。45.有如下程序: #include iostream using namespace std; class Con char ID; public: Con( ):ID(A)cout1; Con(char ID) :ID(ID) eout2; Con(Con,可知,函数返回值应该为一个对象且是 Myclass

44、 对象,所以前面函数返回类型为 MyClass。49.插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置。InsertSort 类的成员函数 sort( )实现了插入排序算法。请将画线处缺失的部分补充完整。 class InsertSort public: InsertSort(int*aO,int nO):a(aO),n(nO) /参数 a0 是某组首地址,n 是数组元素个数 void sort( ) /此函数假设已排序序列初始化状态只包含 a0,未排序序列初始为 a1.an-1 for(int i=1;in;+i); int t=ai; int j; f

45、or(_;j0;-j) if(taj-1)break; aj=aj-1; aj=t; protected: int*a,n; /指针 a 用于存放数组首地址,n 用于存放数组元素个数 ;(分数:2.00)填空项 1:_ (正确答案:j=i)解析:解析 插入排序算法的主要思想是:每次从未排序序列中取出一个数据,插入到已排序序列中的正确位置,外循环控制待插入的元素,内循环控制在已经有序的元素中查找位置。采用倒序查找办法,所以 j 的初始值从 i 位置开始往前查,该处填“j=i”。50.下列程序的输出结果是_。 #includeiostream using namespace std; class

46、A int a; public: A( ):a(9) virtual void print( )constcouta; ; class B:public A char b; public: B( )b=S; void print()eonstcoutb; ; void show(A X)Xprint( ); int main( ) A dl,*P; B d2; P=&d2; d1.print( ); d2.print( ); p-print( ); show(d1); show(d2); return 0; (分数:2.00)填空项 1:_ (正确答案:9SS9S)解析:解析 d1 是基类 A 的对象,故 d1.print( )调用基类成员虚函数,打印 9;d2 是派生类 B 的对象,故 d2.print( )调用派生类 B 的成员函数,打印 S;p 是基类指针,指向派生类对象,执行 p-print( )时,可以访问从基类继承来的成员,故执行派生类 B 的重新定义的虚成员函数,打印 S;show(d1),show函数的形参类型为 A,所以执行类 A 的 print( )函数,打印 9;同样,执行 show(d2)时,将派生类对象赋值给形参 A 类型,执行的是对虚函数进行重新定义后的 print( ),打印 S。

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

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

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