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

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

1、二级 C+笔试 378 及答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.在结构化分析方法中,数据字典的作用是(分数:2.00)A.存放所有需要处理的原始数据B.存放所有处理的结果C.存放所有的程序文件D.描述系统中所用到的全部数据和文件的有关信息2.在长度为 n 的有序线性表中进行二分查找,需要的比较次数为(分数:2.00)A.log2nB.nlog2nC.n/2D.(n+1)/23.对下列二叉树进行后序遍历的结果是 (分数:2.00)A.ZBTYCPXAB.ATBZXCYPC.ZBTACYXPD.ATBZXCPY4.下列运算符中,不

2、能重载的是(分数:2.00)A.?:B.+C.-D.=5.执行下列语句后,输出结果为 cout.put(s); coutca;(分数:2.00)A.caB.seaC.sD.a6.为引入对象的同义词,对象的别名称为(分数:2.00)A.指针B.引用C.枚举D.结构7.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算D.以上三种说法都不对8.以下关于虚函数的叙述中不正确的是(分数:2.00)A.虚函数属于成员函数B.虚函数不允许说明成静态的C.凡是虚函数

3、必须用 virtual 说明D.虚函数可以被继承9.下列表示纯虚函数的成员函数是(分数:2.00)A.virtual int func (in;B.void func(in=0;C.virtual void func=0;D.virtual void flmc(in10.C+语言中函数返回值的类型决定于(分数:2.00)A.return 语句中的表达式类型B.调用函数的主调函数类型C.调用、函数时临时类型D.定义函数时所指定的函数类型11.数据库的概念模型独立于(分数:2.00)A.具体的机器和 DBMSB.E-R 图C.信息世界D.现实世界12.下列叙述中正确的是(分数:2.00)A.软件交

4、付使用后还需要进行维护B.软件一旦交付使用就不需要再进行维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令13.C+语言中在 C 语言的基础上增加的特性不包括(分数:2.00)A.结构B.引用C.类和对象D.静态成员函数14.语句 cout(a=2)y=0;(y!=123)x+);(分数:2.00)A.是无限循环B.循环次数不定C.最多执行 4 次D.最多执行 3 次19.类的构造函数的作用是(分数:2.00)A.一般成员函数B.类的初始化C.对象的初始化D.删除对象创建的所有对象20.若有以下定义: int a=1,2,3,4,5,6,7); char c1=b,c

5、2=2; 则数值不为 2 的表达式是(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-021.继承机制的作用是(分数:2.00)A.信息隐藏B.数据封装C.定义新类D.数据抽象22.若有说明:int a34;则对 a 数组元素的非法引用是(分数:2.00)A.a02*1B.a13C.a4-20D.a0423.关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型24.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函

6、数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型25.设有如下关系表: (分数:2.00)A.T-RSB.T=RSC.T=RSD.T=R/S26.设 a 和 b 均为 double 型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是(分数:2.00)A.6.500000B.6C.5.500000D.6.00000027.在下面的函数声明中,存在着语法错误的是(分数:2.00)A.void BC(int a,inB.void BD(int,inC.void BE

7、(int,int t=5)D.int BF(int x;int28.程序设计方法要求在程序设计过程中(分数:2.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对29.下列叙述中正确的是(分数:2.00)A.算法的空间复杂度是指算法程序的长度B.算法的效率只与所处理数据的规模有关,而与数据的存储结构无关C.数据的逻辑结构与存储结构是一一对应的D.上述三种说法都不对30.判断字符型变量

8、ch 是否为大写英文字母,应使用表达式(分数:2.00)A.ch=A float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; coutxendl; (分数:2.00)A.27.000000B.27.500000C.28.000000D.28.50000035.下列数据结构中具有记忆作用的是(分数:2.00)A.栈B.队列C.有序表D.二叉树二、B填空题/B(总题数:15,分数:30.00)36.数据结构分为逻辑结构与存储结构,循环队列属于 1。(分数:2.00)填空项 1:_37.在最坏情况下,冒泡排序所需要的比较次数为 1。(分数:2.00)填空项 1:_38.设一棵完

9、全二叉树共有 839 个结点,则在该二叉树中有_个叶子结点。(分数:2.00)填空项 1:_39.数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于 1。(分数:2.00)填空项 1:_40.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 1。(分数:2.00)填空项 1:_41.为了表明一个函数不带返回值,应在定义函数时指定该函数类型为 1。(分数:2.00)填空项 1:_42.下列程序如果去掉 for 循环外围的大括号对,则会出现编译错误。错误原因是_。 #includeiostream.h int a=5; void main( ) int a=10,b=20; co

10、uta“,“bendl; int a=0,b=0; for(int i=1;i8;i+) a+=i; b+=a; couta“,“b“,“:aendl; couta“,“bendl; (分数:2.00)填空项 1:_43.有以下程序 #includeiostream using namespace std; long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return 2; int main( ) coutfib(3)endl; return 0; 则该程序的输出结果应该是_。(分数:2.00)填空项 1:_44.下列程序不能通过编译

11、,应该在划线部分填写的语句是_。 #includeiostream.h #includestdlib.h double Func(int a,int b,char ch) double x; switch(ch) case+: x=double(a)+b; break; case -: x=double(a)-b; break; case *: x=double(a)*b; break; case/: if(B)x=double(a)/b; else exit(1); break; default: exit(1); _ void main( ) coutFunc(32,6,-)“,“; co

12、utFunc(32,6, *)“,“; coutFunc(32,6,/)endl; (分数:2.00)填空项 1:_45.根据下面的主程序,完成类的一种构造函数的最简单形式。 #includeiostream.h class base private: int num; public: _; ; void main( ) base try(6); (分数:2.00)填空项 1:_46.下列程序的执行结果为_。 #includeiostream.h int f(int i) return+i; int g(int void main( ) int a,b; a=b=0; a+=f(g(a); b

13、+=f(f(b); cout“a=“a“,b=“bendl; (分数:2.00)填空项 1:_47.下列程序的运行结果是_。 #includeiostream.h class A public: virtual void use( ) cout“in A/n“; ; class B:public A public: virtual void use( ) cout“in B/n“; ; class C:public B public: virtual void use( )cout“in C/n“; ; void main( ) A*obj; obj=new C; obj-use( ); de

14、lete obj; (分数:2.00)填空项 1:_48.完成下列类的构造函数,初始化语句为_。 #includeiostream.h class Test private: int x,y; public: void Test(int initx,int inity) _ void printx( )coutx“-“y“=“x-y; ; void main( ) Test x(300,200); x.printx( ); (分数:2.00)填空项 1:_49.根据下列程序的执行结果,可以断定划线部分的修饰符应为_。执行结果: i9a football is created. a footba

15、ll is created. i=10 a football is destroyed. a football is created. i=20 a football is destroyed. a football is destroyed. 源程序: #includeiostream.h class Football public: Football( )cout“a football is created.“endl; Football( )tout“a football is destroyed.“endl; ; void func(int i) _Football f1; Footb

16、all f2; cout“i=“iendl; void main( ) func(10); func(20); (分数:2.00)填空项 1:_50.下列程序的输出结果为 2,请将程序补充完整。 #ineludeiostreamh using namespace std; class Base public: _ void fun( )cout1; ; class Derived: public Base pbulic: void fubn( )cout2; ; int main( ) Base*P=new Derived; Pfun( ); delete P; return 0; (分数:2

17、.00)填空项 1:_二级 C+笔试 378 答案解析(总分:100.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.在结构化分析方法中,数据字典的作用是(分数:2.00)A.存放所有需要处理的原始数据B.存放所有处理的结果C.存放所有的程序文件D.描述系统中所用到的全部数据和文件的有关信息 解析:解析 数据字典是结构化分析方法的核心,其作用是描述系统中所用到的全部数据和文件的有关信息。2.在长度为 n 的有序线性表中进行二分查找,需要的比较次数为(分数:2.00)A.log2n B.nlog2nC.n/2D.(n+1)/2解析:解析 在长度为 n 的有序线性

18、表中进行二分查找,在最坏情况下,需要的比较次数为 log2n。3.对下列二叉树进行后序遍历的结果是 (分数:2.00)A.ZBTYCPXA B.ATBZXCYPC.ZBTACYXPD.ATBZXCPY解析:解析 按照二叉树后序遍历的方法:在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。对本题中的二叉树进行后序遍历的结果应是 ZBTYCPXA。4.下列运算符中,不能重载的是(分数:2.00)A.?: B.+C.-D.=解析:解析 :?是 C+中唯一一个三目运算符,不能被重载。

19、5.执行下列语句后,输出结果为 cout.put(s); coutca;(分数:2.00)A.caB.sea C.sD.a解析:解析 本题很简单,考查 cout 对象的成员函数 put 方法和操作符的使用方法。6.为引入对象的同义词,对象的别名称为(分数:2.00)A.指针B.引用 C.枚举D.结构解析:解析 引用是 C+引入的一个新概念,表示变量或对象的别名。7.下列关于关系运算的叙述中正确的是(分数:2.00)A.投影、选择、连接是从二维表的行的方向来进行运算B.并、交、差是从二维表的列的方向来进行运算C.投影、选择、连接是从二维表的列的方向来进行运算 D.以上三种说法都不对解析:解析 在

20、关系模型的数据语言中,一般除了运用常规的集合运算(并、交、差、笛卡尔积等)外,还定义了一些专门的关系运算,如投影、选择、连接等运算。前者是将关系(即二维表)看成是元组的集合,这些运算主要是从二维表的行的方向来进行的;后者主要是从二维表的列的方向来进行运算。因此,选项A 与 B 中的说法都是错误的,而选项 C 中的说法是正确的。8.以下关于虚函数的叙述中不正确的是(分数:2.00)A.虚函数属于成员函数B.虚函数不允许说明成静态的C.凡是虚函数必须用 virtual 说明 D.虚函数可以被继承解析:解析 虚函数的引入是为了解决动态绑定问题,使类的实例表现出多态性,虚函数在继承后依然保持虚函数特性

21、,此时不需要用 virtual 关键词修饰。9.下列表示纯虚函数的成员函数是(分数:2.00)A.virtual int func (in;B.void func(in=0;C.virtual void func=0; D.virtual void flmc(in解析:解析 本题考查纯虚函数的定义形式。由于纯虚函数在最后要有“=0”,故据此排除 A 和 D。而B 中没有出现 virtual 关键词,故正确答案为 C。10.C+语言中函数返回值的类型决定于(分数:2.00)A.return 语句中的表达式类型B.调用函数的主调函数类型C.调用、函数时临时类型D.定义函数时所指定的函数类型 解析:

22、解析 函数在定义时已经可以指定其函数类型,则函数返回值类型就是该类型。11.数据库的概念模型独立于(分数:2.00)A.具体的机器和 DBMS B.E-R 图C.信息世界D.现实世界解析:解析 概念模型侧重于表达建模对象之间联系的语义,它是一种独立于计算机系统的模型,是现实世界的第一层次的抽象,是用户和数据库设计人员进行交流的工具。所以答案为 A。12.下列叙述中正确的是(分数:2.00)A.软件交付使用后还需要进行维护 B.软件一旦交付使用就不需要再进行维护C.软件交付使用后其生命周期就结束D.软件维护是指修复程序中被破坏的指令解析:解析 维护是软件生命周期的最后一个阶段,也是持续时间最长、

23、付出代价最大的阶段。软件工程学的目的就在于提高软件的可维护性,同时也要设法降低维护的代价。 软件维护通常有以下四类: 为纠正使用中出现的错误而进行的改正性维护; 为适应环境变化而进行的适应性维护; 为改进原有软件而进行的完善性维护; 为将来的可维护和可靠而进行的预防性维护。 软件维护不仅包括程序代码的维护,还包括文档的维护。文档可以分为用户文档和系统文档两类。 但无论是哪类文档,都必须与程序代码同时维护。只有与程序代码完全一致的文档才有意义和价值。 由此可知,本题中选项 B、C、D 中的说法都是错误的。13.C+语言中在 C 语言的基础上增加的特性不包括(分数:2.00)A.结构 B.引用C.

24、类和对象D.静态成员函数解析:解析 本题很简单,不过考生要注意引用是 C+的新特性。只有结构是 C 语言也有的特性。14.语句 cout(a=2)y=0;(y!=123)x+);(分数:2.00)A.是无限循环B.循环次数不定C.最多执行 4 次 D.最多执行 3 次解析:解析 本题考查 for 循环条件中三个表达式的执行顺序。首先执行表达式一,然后执行表达式二,如果表达式二为真,则循环体执行,然后执行表达式三,接着继续执行表达式二,如此循环。考生要注意的是,本题中表达式三中包含了变量 x 的增量操作,因此可以由表达式二和三一起控制循环体的执行次数。本题正确答案为 C。19.类的构造函数的作用

25、是(分数:2.00)A.一般成员函数B.类的初始化C.对象的初始化 D.删除对象创建的所有对象解析:解析 本题考查类的构造函数的作用,构造函数一般负责完成对象建立时的初始化工作,如资源的分配。20.若有以下定义: int a=1,2,3,4,5,6,7); char c1=b,c2=2; 则数值不为 2 的表达式是(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-0 解析:解析 本题考查数组的定义、初始化及其引用,以及对字符 ASCII 码值的熟悉程度。解本题的关键在于熟悉字符的 ASCIII 码值。字符在进行数学运算时取其ASCII 码值,其中b的 ASCII 码值为98,d的

26、ASCII 码值为 100,字符2的 ASCII:码值为 50。根据以上知识,可知 D 选项中表达式 c2-0的值为 50。21.继承机制的作用是(分数:2.00)A.信息隐藏B.数据封装C.定义新类 D.数据抽象解析:解析 继承是类的一个重要特性,没有继承,面向对象方法也就不存在。正是有了继承,才呈现出丰富多彩的类和对象。22.若有说明:int a34;则对 a 数组元素的非法引用是(分数:2.00)A.a02*1B.a13C.a4-20D.a04 解析:解析 在数组这部分的知识里面,数组下标越界是一个比较容易忽略的问题,其下标是从 0 开始,至 n-1 为止,因此选项 D 是正确答案。23

27、.关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 解析:解析 虚函数不能定义为静态函数;虚函数的作用在于继承,表现出动态性。所以,在派生类中定义的虚函数必须和基类中对应的虚函数具有相同的参数个数和类型。24.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数 C.虚函数可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型解

28、析:解析 本题考核虚函数的概念。虚函数是非静态的成员函数,它不能是友元函数,但可以在另一个类中被声明为友元函数。所以 A 选项不正确;虚函数必须是类的成员函数,所以 B 选项是错误的;虚函数声明只能出现在类定义的函数原型声明中,而不能在成员函数的函数体实现的地方,所以 C 选项是不正确的;一般要求基类中说明了虚函数后,派生类说明的虚函数应该与基类中虚函数的参数个数相等,对应参数的类型相同。如果不相同,则将派生类虚函数的参数类型强制转换为基类中虚函数的参数类型。故 D选项的说法是正确的。25.设有如下关系表: (分数:2.00)A.T-RSB.T=RS C.T=RSD.T=R/S解析:解析 显然

29、,关系表 T 是关系表 R 与 S 的并,即 T=RS。26.设 a 和 b 均为 double 型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是(分数:2.00)A.6.500000B.6C.5.500000D.6.000000 解析:解析 混合表达式的值的类型是由表达式中具有最高精度的类型确定,因此可知选项 B 可排除。注意 b/b 的结果应是 1.00000,而(int)a 则为 5,相加的结果还是 double 型,故正确答案应为 D。27.在下面的函数声明中,存在着语法错误的是(分数:2.00)A.void BC(int a,inB.void BD(int,i

30、nC.void BE(int,int t=5)D.int BF(int x;int 解析:解析 函数声明时,可以指定其形参的默认值,不过要从右向左指定;可以省略形参名,仅以形参类型表示;形参表之间用逗号分割。因此,本题答案为 D。28.程序设计方法要求在程序设计过程中(分数:2.00)A.先编制出程序,经调试使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对 解析:解析 在程序设计过程中,一个很重要的环节是首先确定

31、实现各种功能的算法,并且用某种工具将它精确地表达出来。流程图是其中的工具之一。因此,程序设计的过程应是先画出流程图,然后根据流程图编制出程序。因此,选项 A 中的说法是错误的。 程序中的注释是为了提高程序的可读性,使程序易于理解、易于维护,注释必须在编制程序的同时加入。因此,选项 B 和 C 中的说法也都是错误的。29.下列叙述中正确的是(分数:2.00)A.算法的空间复杂度是指算法程序的长度B.算法的效率只与所处理数据的规模有关,而与数据的存储结构无关C.数据的逻辑结构与存储结构是一一对应的D.上述三种说法都不对 解析:解析 算法的空间复杂度,一般是指执行这个算法所需要的内存空间,它包括算法

32、程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。因此,选项 A 中的说法是错误的。 虽然算法的计算工作量(即时间复杂度)是问题规模的函数,但它是与数据的存储结构有密切的关系。因此,选项 B 中的说法也是错误的。 一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系有可能是不同的。因此,选项 C 中的说法也是错误的,D 则是正确的。30.判断字符型变量 ch 是否为大写英文字母,应使用表达式(分数:2.00)A.ch=A float a=38.4,b=6.4,x; x=m/2+n*a/b+1/2; coutxendl; (分数:2.00)A.27.00

33、0000 B.27.500000C.28.000000D.28.500000解析:解析 本题考查表达式值的类型由参与运算的所有变量的类型中优先级最高的变量类型所决定。不过要注意的是整型向 float 型转换时,将丢失小数部分,即向下取值。35.下列数据结构中具有记忆作用的是(分数:2.00)A.栈 B.队列C.有序表D.二叉树解析:解析 栈是按照“先进后出”(FILO-First In Last Out)或“后进先出”(LIFO-Last In First Out)的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表。因此,栈具有记忆作用。二、B填空题/B(总题数:15,分数:30

34、.00)36.数据结构分为逻辑结构与存储结构,循环队列属于 1。(分数:2.00)填空项 1:_ (正确答案:存储结构)解析:解析 数据结构分为逻辑结构与存储结构,循环队列属于存储结构。因此,本题的正确答案为存储结构。37.在最坏情况下,冒泡排序所需要的比较次数为 1。(分数:2.00)填空项 1:_ (正确答案:n(n-1)/2)解析:解析 在最坏情况下,冒泡排序所需要的比较次数为 n(n-1)/2。38.设一棵完全二叉树共有 839 个结点,则在该二叉树中有_个叶子结点。(分数:2.00)填空项 1:_ (正确答案:420)解析:解析 一般二叉树有一个性质;在任意一棵二叉树中,度为 0 的

35、结点(即叶子结点)总是比度为 2的结点多一个。 在根据完全二叉树的定义,在一棵完全二叉树中,最多有 1 个度为 1 的结点。 综合以上两点可以得到如下结论: 设一棵完全二叉树具有 n 个结点。如果 n 为偶数,则在该二叉树中有 n/2 个叶子结点以及 n/2-1 个度为 2 的结点,还有 1 个是度为 1 的结点;如果 n 为奇数,则在该二叉树中有n/2+1 个叶子结点以及n/2个度为 2 的结点,没有度为 1 的结点。 在本题中,完全二叉树共有 839 个结点,839 是奇数,因此,在该二叉树中有 420 个叶子结点以及 419 个度为 2 的结点,没有度为 1 的结点。39.数据模型分为格

36、式化模型与非格式化模型,层次模型与网状模型属于 1。(分数:2.00)填空项 1:_ (正确答案:格式化模型)解析:解析 数据模型分为格式化模型与非格式化模型,层次模型与网状模型属于格式化模型。40.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 1。(分数:2.00)填空项 1:_ (正确答案:关系)解析:解析 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。41.为了表明一个函数不带返回值,应在定义函数时指定该函数类型为 1。(分数:2.00)填空项 1:_ (正确答案:void)解析:解析 void 表明该函数不带返回值,如果没有 void,则系统会返回一个默认类

37、型的随机值,这对程序可能造成不必要的问题。42.下列程序如果去掉 for 循环外围的大括号对,则会出现编译错误。错误原因是_。 #includeiostream.h int a=5; void main( ) int a=10,b=20; couta“,“bendl; int a=0,b=0; for(int i=1;i8;i+) a+=i; b+=a; couta“,“b“,“:aendl; couta“,“bendl; (分数:2.00)填空项 1:_ (正确答案:a,b 重定义)解析:解析 在本题中 for 循环外围的大括号对没有实质含义,仅用于函数的作用域范围。如果去掉该括号,编译错误

38、就会发生,因为变量 a,b 出现了重定义错误。43.有以下程序 #includeiostream using namespace std; long fib(int n) if(n2) return(fib(n-1)+fib(n-2); else return 2; int main( ) coutfib(3)endl; return 0; 则该程序的输出结果应该是_。(分数:2.00)填空项 1:_ (正确答案:4)解析:解析 本题主要考查 C+中递归函数,主函数通过调用 fib( )函数,fib( )函数的内部再通过一个分支结构判断是否进行递归调用或退出递归调用,调用方式为直接递归调用。主

39、函数通过实参将值 3 赋给 fib( )函数的形参 n,由于 n=3 满足 if 分支语句条件,因此函数进行递归调用,即计算 fib(2)和fib(1)的值;将 2 赋给 fib( )函数的形参后,由于 n=2 不满足 if 语句条件,因此程序退出递归,返回2;将 1 赋给 fib( )函数的形参后,函数同样返回 2。因此函数递归调用的最终结果为返回 2 +2=4,即fib(3)=4,程序最后输出值为 4。44.下列程序不能通过编译,应该在划线部分填写的语句是_。 #includeiostream.h #includestdlib.h double Func(int a,int b,char

40、ch) double x; switch(ch) case+: x=double(a)+b; break; case -: x=double(a)-b; break; case *: x=double(a)*b; break; case/: if(B)x=double(a)/b; else exit(1); break; default: exit(1); _ void main( ) coutFunc(32,6,-)“,“; coutFunc(32,6, *)“,“; coutFunc(32,6,/)endl; (分数:2.00)填空项 1:_ (正确答案:return x;)解析:解析 本

41、题函数声明时指定了函数的返回值为 double,因此在函数体中必须存在一个 return 语句。45.根据下面的主程序,完成类的一种构造函数的最简单形式。 #includeiostream.h class base private: int num; public: _; ; void main( ) base try(6); (分数:2.00)填空项 1:_ (正确答案:10 base(int n))解析:解析 注意,根据 main 函数中对类 base 的使用情况可知,base 类必须提供整型单参构造函数,同时要求构造其最简单的形式,故函数体为空。46.下列程序的执行结果为_。 #incl

42、udeiostream.h int f(int i) return+i; int g(int void main( ) int a,b; a=b=0; a+=f(g(a); b+=f(f(b); cout“a=“a“,b=“bendl; (分数:2.00)填空项 1:_ (正确答案:a=3,b=2)解析:解析 本题考查函数间引用传递的知识点。g(a)执行之后,返回值为 1,a 也变为 1,这就是引用传递的特点。然后执行 f(1),返回值为 2,此时 a=2+1,故 a 此时为 3。由于 f(b)不具有引用传递的特征,因此,执行后 b=0+2,结果为 2。47.下列程序的运行结果是_。 #inc

43、ludeiostream.h class A public: virtual void use( ) cout“in A/n“; ; class B:public A public: virtual void use( ) cout“in B/n“; ; class C:public B public: virtual void use( )cout“in C/n“; ; void main( ) A*obj; obj=new C; obj-use( ); delete obj; (分数:2.00)填空项 1:_ (正确答案:in C)解析:解析 本题考查虚函数和多态性。原本 obj 指向祖先

44、类,随后被赋值,指向新的子孙类,则在使用 use 这个重载的虚函数时,根据当前指向可确定调用子孙的同名虚函数。48.完成下列类的构造函数,初始化语句为_。 #includeiostream.h class Test private: int x,y; public: void Test(int initx,int inity) _ void printx( )coutx“-“y“=“x-y; ; void main( ) Test x(300,200); x.printx( ); (分数:2.00)填空项 1:_ (正确答案:x=initx; y=inity;)解析:解析 本题考查的是类的私有

45、数据如何从接口成员函数那里得到数据的。本题虽然简单,却体现了类的数据封装思想,并指明了如何完成这种封装。49.根据下列程序的执行结果,可以断定划线部分的修饰符应为_。执行结果: i9a football is created. a football is created. i=10 a football is destroyed. a football is created. i=20 a football is destroyed. a football is destroyed. 源程序: #includeiostream.h class Football public: Football( )cout“a football is created.“endl; Football( )tout“a football is destroyed.“endl; ; void func(int i) _Football f1; Football f2; cout“i=“iendl; void main( ) func(

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

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

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