【计算机类职业资格】二级C++笔试-421及答案解析.doc
《【计算机类职业资格】二级C++笔试-421及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-421及答案解析.doc(31页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-421 及答案解析(总分:88.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.00)1.所有在函数中定义的变量及函数的形式参数,都属于A) 全局变量 B) 局部变量 C) 静态变量 D) 常量(分数:2.00)A.B.C.D.2.下列函数中对调用它的函数没有起到任何作用的是A) void f1(double B) double f1(double x)return x-1.5;C) void f3(double x)-x;D) double f4(double *x)-*x; return*x;(分数:2.00)A.B.C.D.3.下列关于多态性的描述,错误
2、的是A) C+语言中的多态性分为编译时的多态性和运行时的多态性B) 编译时的多态性可通过函数重载实现C) 运行时的多态性可通过模板和虚函数实现D) 实现运行时多态性的机制称为动态绑定(分数:1.00)A.B.C.D.4.下列运算符中不能在 C+中重载的是( )。A) ?: B) +C) - D) =(分数:2.00)A.B.C.D.5.下列程序的输出结果为 2,横线处应添加语句( )。#includeiostreamusing namespace std;public:_void fun()cout1;class TestClass2:public TestClass1public:void
3、fun()cout2;);int main()TestClass1 *p=new TestClass2;p-fun();delete p;Teturn 0;A) public B) private C) virtual D) protected(分数:2.00)A.B.C.D.6.当需要使用 ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用 #include 命令,使之包含_ 文件。A) iostream.h B) stdlib.hC) strstrea.h D) fstream.H(分数:2.00)A.B.C.D.7.下列运算符中,不能被重载的是 A) if(n=1
4、|n=2)s=2;else s=n-fun(n-1);return s;void main( )coutfun(3);A) 1 B) 2 C) 3 D) 4(分数:1.00)A.B.C.D.14.生成派生类对象时,派生类构造函数调用基类构造函数的条件是( )。A无需任何条件 B基类中显式定义了构造函数C派生类中显式定义了构造函数 D派生类构造函数明确调用了基类构造函数(分数:2.00)A.B.C.D.15.以下程序的执行结果是( )。#includeiostream.hint fun(int b,int n)int i,r=1;for(i=0;in;i+)r=r*bi;void main()i
5、nt x,a=1,2,3,4,5,6,7,8;x=fun(a,3);coutxendl;A) 5 B) 6 C) 7 D) 8(分数:2.00)A.B.C.D.16.在数据库系统中,是数据库中全体数据的逻辑结构和特征的描述的数据模式为( )。A概念模式 B外模式C内模式 D物理模式(分数:2.00)A.B.C.D.17.实现运行时的多态性要使用( )。A重载函数 B析构函数C构造函数 D虚函数(分数:2.00)A.B.C.D.18.在任意一棵二叉树中,度为 0的结点总是比度为 2的结点多( )。A) 1个 B) 2 个 C) 3 个 D) 4 个(分数:2.00)A.B.C.D.19.使用 i
6、fstream流类定义流对象并打开磁盘文件时,文件的隐含打开方式为( )。A) ios:in B) ios:outC) ios:inlios:out D) 没有默认(分数:2.00)A.B.C.D.20.有以下程序#includestring.h#includeiostream.hvoid main( )char*p=“abcde/0fghjik/0“;coutstrlen(p);程序运行后的输出结果是A) 12 B) 15 C) 6 D) 5(分数:1.00)A.B.C.D.21.有如下程序:#includeiostreamusing namespace std;class Basepubl
7、ic:void fun() cout“Base:fun“endl; ;class Derived: public Basepublic:void tim()_cout“Derived: fun“endl;int main()Derived d;d.fun();return O;已知其执行后的输出结果为:Base:funDerived:fun则程序中下划线处应填入的语句是A) Base.fun(); B) Base:fun();C) Base-fun(); D) fun();(分数:1.00)A.B.C.D.22.下面这个程序的结果是#includeiostream.hclass Aprivat
8、e:int a;public:void seta( );int geta( );void A:seta( )a = 1;int A:geta( ) return a;class Bprivate:int a;public:void seta( );int geta( );void B:seta( )a=2;int B:geta( )return a; class C:public A,public Bprivate:int b;public:void display( );void C:display( )int b=geta( );cout b;void main( )C c;c.seta(
9、 );c.display( );A) 1 B) 2C) 随机输出 1或 2 D) 程序有错(分数:1.00)A.B.C.D.23.支持子程序调用的数据结构是( )。A) 栈 B) 树C) 队列 D) 二叉树(分数:2.00)A.B.C.D.24.对如图所示二叉树进行前序遍历的结果为 (分数:2.00)A.B.C.D.25.下面程序的运行结果是( )。#includeiostream.hint fun(int a,int n)int result=1;for(int i=1;in;i+)result=result *ai;return result;void main()int a3=3,4,5
10、;eoutfun(a,3)end1;A) 12 B) 15 C) 20 D) 60(分数:2.00)A.B.C.D.26.有如下程序;#includeiostreamusing namespace std;class DA int k;public:DA(int x=1):k(x)DA( )coutk;int main( )DA d=DA(3),DA(3),DA(3);DA *p=new DA2;delete p;return ();这个程序的输出结果是( )。A) 111 B) 333C) 11333 D) 11133(分数:2.00)A.B.C.D.27.下列各种函数中,_ 不是类的成员函
11、数。A) 构造函数 B) 析构函数C) 友元函数 D) 拷贝构造函数(分数:2.00)A.B.C.D.28.如果表达式 y*x+中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为A) x.operator+(0).operator*(y); B) operator*(x.operator+(0),y);C) y.operator*(operator+(x,0) D) operator*(operator+(x,0),y)(分数:2.00)A.B.C.D.29.下列程序的输出结果是( )。#includeiostreamusing
12、namespace std;int main()于chara”Hello,Test”;Char*pa;while(*p)if(*p)ay=j;void show( )cout“x=“x“ “y=“yendl;void show( )constcout“x=“ “y=“yendl;privated:int x; int y;void main( )Myclass my l (3,4);const my2(7,8);my lshow( );my2show( );A) x=4,y=3;x=7,y=8 B) x=3,y=4;x=7,y=8C) x=7,y=8;x=4,y=3 D) x=8,y=7;x=
13、7,y=8(分数:1.00)A.B.C.D.34.以下关于私有和保护成员的叙述中,不正确的是A) 私有成员不能被外界引用,保护成员可以B) 私有成员不能被派生类引用,保护成员在公有继承下可以C) 私有成员不能被派生类引用,保护成员在保护继承下可以D) 私有成员不能被派生类引用,保护成员在私有继承下可以(分数:2.00)A.B.C.D.35.下列描述中,抽象类的特性是( )。A) 可以说明虚函数 B) 可以定义友元函数C) 可以进行构造函数重载 D) 不能说明其对象(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:27.00)36.下列程序运行后的输出结果是 _。#include
14、iostream.hvoid main()int s=0,kfor(k=7;k=0;k-)switch(k)case 1:case 4:case 7:s+ +;break:case 2:case 3:case 6:break;case 0:case 5:s+=2;break;cout“s=“sendl;(分数:1.00)填空项 1:_37.在类的对象被创建的时候, 1 函数会被自动调用。(分数:2.00)填空项 1:_38.有如下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;A()cout“A“;class BA
15、a;public:B()cout“B“;B()cout“B“;int main()B b;return 0:程序的输出结果是_。(分数:2.00)填空项 1:_39.在结构化分析方法中,用于描述系统中所用到的全部数据和文件的文档称为 1。(分数:2.00)填空项 1:_40.下面是复数类 complex的定义,其中作为友元函数重载的运算符“-”的功能是将参数对象的实部减1,然后返回对该对象的引用;请补充完整。class complexprivate:int real;int imag;public:complex(int r=0,int i=0):real(r),imag(i)void sho
16、w()coutreal(imag0?“-“:“+“)imagi;_;complex operator-(complex c)c.real-;return c;(分数:2.00)填空项 1:_41.有以下程序:#includefstream#includestringusing namespace std;int main()char ch=“The end“;ofstream outstr(“_“,ios_base:app);for(int i=0;istrlen(ch); i+) outstr.put(chi);outstr.close();return 0:若程序实现的功能是在文件 d:/
17、put.txt 的尾部追加写入一串字符,试将程序补充完整。(分数:2.00)填空项 1:_42.当线性表采用顺序存储结构实现存储时,其主要特点是 1。(分数:2.00)填空项 1:_43.设有二维数组 int a 1020;,则 aij的地址可由首元素 a00的地址来表达,由此可得访问数组元素 aij的表达式为 1。(分数:2.00)填空项 1:_44.数据的逻辑结构是从逻辑关系上描述数据,它与数据的 1 结构无关。(分数:2.00)填空项 1:_45.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为_。(分数:1.0
18、0)填空项 1:_46.下列程序编译错误,因为 add函数返回值是一个引用,故对 return后返回值的要求是_。#includeiostream. hintvoid main( )int i=3,j=19;cout(add(i,j)+ =20)end1;(分数:2.00)填空项 1:_47.有如下程序: #includeiostream using namespaee std;c lass Animal public: virtual char*getType( )constreturn“Animal“; virtual char*getVoice( )constreturn“Voice“;
19、 ; class Dog:public Animal public: char*getType( )constreturn“Dog“; char*getVoice( )eonstreturn“Woof“; ; void type(AnimalB) double f1(double x)return x-1.5;C) void f3(double x)-x;D) double f4(double *x)-*x; return*x;(分数:2.00)A.B.C. D.解析:解析 本题考核函数的调用和参数值的传递(形参、实参)。选项 C中的函数 D调用采用按值传递的方式,函数中对形参的修改没有影响到
20、实参的值,而且函数 G还没有返回值,所以函数耀对调用它的函数没有起到任何作用。选项 A中的函数 f1采用引用传递的方式影响实参的值,选项 D中的函数 f4通过返回值和指针调用来影响调用函数;选项 B中的函数 f2采用返回值的形式对其调用函数发生作用。3.下列关于多态性的描述,错误的是A) C+语言中的多态性分为编译时的多态性和运行时的多态性B) 编译时的多态性可通过函数重载实现C) 运行时的多态性可通过模板和虚函数实现D) 实现运行时多态性的机制称为动态绑定(分数:1.00)A.B.C. D.解析:解析 编译时的多态性是通过函数重载和模板体现的,运行时的多态性是通过虚函数体现的。4.下列运算符
21、中不能在 C+中重载的是( )。A) ?: B) +C) - D) =(分数:2.00)A. B.C.D.解析:5.下列程序的输出结果为 2,横线处应添加语句( )。#includeiostreamusing namespace std;public:_void fun()cout1;class TestClass2:public TestClass1public:void fun()cout2;);int main()TestClass1 *p=new TestClass2;p-fun();delete p;Teturn 0;A) public B) private C) virtual D
22、) protected(分数:2.00)A.B.C. D.解析:解析 由主函数 main入手,定义 TestClass1类的指针对象 p指向派生类 Testclass2。因为基类和派生类中都有 fun函数,题目要求输出为 2,就是基类对象访问派生类中 fun函数。通过虚函数与指向基类对象的指针变量的配合使用,就能方便调用同名函数。所以这里将基类中的 fun函数声明为virtual。并且当一个成员函数被声明为虚函数后,其派生类中的同名函数自动成为虚函数。6.当需要使用 ostrstream流类定义一个流对象并联系一个字符串时,应在文件开始使用 #include 命令,使之包含_ 文件。A) io
23、stream.h B) stdlib.hC) strstrea.h D) fstream.H(分数:2.00)A.B.C. D.解析:解析 strstrea.h 包含了常用的流对象并联系一个字符串,所以在文件开始使用#include 命令包含 strstrea.h。7.下列运算符中,不能被重载的是 A) if(n=1|n=2)s=2;else s=n-fun(n-1);return s;void main( )coutfun(3);A) 1 B) 2 C) 3 D) 4(分数:1.00)A. B.C.D.解析:解析 题中 fun函数进行了递归调用,第 1次调用:fun(3)n=3 s=3-fu
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 421 答案 解析 DOC
