【计算机类职业资格】二级C++笔试-375及答案解析.doc
《【计算机类职业资格】二级C++笔试-375及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-375及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-375 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列程序的输出结果是( )。#includeiostreamusing namespace std;voidfun(int int main()int n=50;fun(n);coutnend1;return 0;(分数:2.00)A.0B.20C.50D.1002.以下程序运行后的输出结果是( )。#includeiostream.hvoid main()char aft=“abbcabbcabbc“;int i=0,j=0,k=0;while(ai)if(ai=a)
2、j+;if(ai=b)k+;i+;coutj“kend1;(分数:2.00)A.2,6B.3,5C.4,7D.3,63.栈 C最多能容纳 4个元素,现有 6个元素按 A、B、C、D、E、F 的顺序进栈,下列哪个序列不是可能的出栈序列( )。(分数:2.00)A.C、B、E、D、A、FB.C、D、B、F、E、AC.A、D、E、C、B、FD.A、F、E、D、C、B4.下列关于指针的运算中,( )是非法的。(分数:2.00)A.两个指针在一定条件下,可以进行相等或不等的比较运算B.可以将一个空指针赋值给某个指针C.一个指针可以加上两个整数之差D.两个指针在一定条件下可以相加5.下列说法中错误的是(
3、)。(分数:2.00)A.公有继承时基类中的 public成员在派生类中仍是 public的B.公有继承时基类中的 private成员在派生类中仍是 private的C.私有继承时基类中的 public成员在派生类中是 private的D.保护继承时基类中的 public成员在派生类中是 protected的6.有以下程序段:#includeiostream.h#define MAX(x,y)(x)(y)?(x):(y)void main()int i,j,k;i=10;j=15;k=MAX(i,j)*10;coutkend1;程序执行后的输出结果是( )。(分数:2.00)A.15B.100
4、C.150D.107.下面程序输出的结果为( )。#includeiostream.hvoid fun(int a,int b)int temp;temp=a;a=b;b=temp;void main()int m,n;m=1;n=2;fun(m,n);coutm“nend1;(分数:2.00)A.12B.21C.22D.程序有错误8.对于一个类定义,下列叙述中错误的是( )。(分数:2.00)A.如果没有定义拷贝构造函数,编译器将生成一个拷贝构造函数B.如果没有定义缺省的构造函数,编译器将一定生成一个缺省的构造函数C.如果没有定义构造函数,编译器将生成一个缺省的构造函数和一个拷贝构造函数D.
5、如果已经定义了构造函数和拷贝构造函数,编译器不会生成任何构造函数9.如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都必须使用( )关键字来修饰。(分数:2.00)A.constB.staticC.voidD.class10.下面程序的输出结果为( )。#ineludeiostream.hvoid main()int x;int /变量引用y=99;cout“x=“xend1;(分数:2.00)A.x=99B.x=9C.x=0D.异常11.多继承的构造顺序可分为如下四步:所有非虚基类的构造函数按照它们被继承的顺序构造所有虚基类的构造函数按照它们被继承的顺序构造所有子对象
6、的构造函数按照它们声明的顺序构造派生类自己的构造函数体这四个步骤的正确顺序是( )。(分数:2.00)A.B.C.D.12.在下列关于二叉树的叙述中,正确的一项是( )。(分数:2.00)A.在二叉树中,任何一个结点的度都是 2B.二叉树的度为 2C.在二叉树中至少有一个结点的度为 2D.一棵二叉树的度可以小于 213.设有以下定义和程序:#includeiostream.hclass A1public:void show1()cout“class A1“end1;class A2:public A1public:void show2()cout“class A2“end1;class A3:
7、protected A2public:void show3()cout“class A1“end1;void main()A1 obj1;A2 obj2;A3 obj3;则以下不合语法的调用语句是( )。(分数:2.00)A.obj1.show1();B.obj2.show1();C.obj3.show1();D.obj2.show2();14.下列有关函数重载的叙述中,错误的是( )。(分数:2.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同D.重载函数的参数可以带有默认值15.有以下程序:#includeiostreamusi
8、ng namespace std;class Rpublic:R(int r1,int r2)R1=r1;R2=r2;void print();void print()const;private:int R1,R2;void R:print()coutR1“,“R2end1;void R:print()constcoutR1“,“R2end1;int main()R a(5,4);const R b(20,52);b.print();return 0;执行后的输出结果是( )。(分数:2.00)A.5,4B.4,5C.20,52D.52,2016.下列关于 this指针的叙述中,正确的是( )
9、。(分数:2.00)A.this指针是一个隐含指针,它隐含于类的成员函数中B.只有在使用 this时,系统才会将对象的地址赋值给 thisC.类的友元函数也有 this指针D.this指针表示了成员函数当前操作的数据所属的对象17.下列函数的功能是判断字符串 str是否对称,对称则返回 true,否则返回 false,则横线处应填上( )。Bool fun(char*str)int i=0,j=0;while(strj)j+;for(j-;iji+,j-);return i_j;(分数:2.00)A.=B.|C.void main()cout“Please input a number:“;i
10、nt a,result=0;cina;result=fun((分数:2.00)A.;class pointprivate:double x;double y;public:point(double a,double b)x=a;y=b;friend double distances(point a,point b);double distances(point a,point b)return sqrt(a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y);int main()point p1(1,2);point p2(5,2);coutdistances(p1,p2
11、)end1;return 0;(分数:2.00)A.2B.4C.8D.1623.下面关于构造函数和析构函数的描述中,错误的是( )。(分数:2.00)A.析构函数可以声明为虚函数B.对虚析构函数的调用可以采用动态联编C.一个类的虚函数仅对派生类中重定义的函数起作用,对其他函数没有影响D.构造函数可以声明为虚函数24.下列叙述中错误的是( )。(分数:2.00)A.线性表是由 n个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件D.线性表可以是空表25.下列程序的输出结果是( )。#includeiostreamusing namespace std;te
12、mplatetypename TT fun(T a,T b)return(a=b)?a:b;)int main()coutfun(3,6),fun(3.14F,6.28F)end1;return 0;(分数:2.00)A.0,3.14B.3,3.14C.3,3D.3.14,3.1426.假定 MyClass为一个类,则该类的拷贝构造函数的声明语句为( )。(分数:2.00)A.MyClass(MyClass x);B.MyClass(MyClassclass Complexpublic:Complex(double r=0,double i=0):re(r),im(i)double real(
13、)constreturn re;double imagoconstreturn im;Complex operator+(Complex C) constreturn Complex(re+c.re,im+c.im);private:double re,im;int main()Complex a=Complex(1,1)+Complex(5);couta.real()+a.imag()iend1;return 0;(分数:2.00)A.6+iB.2i+5C.6+1iD.1i+529.下列叙述中正确的是( )。(分数:2.00)A.一个算法的空间复杂度大,则其时间复杂度必定大B.一个算法的空间
14、复杂度大,则其时间复杂度必定小C.一个算法的时间复杂度大,则其空间复杂度必定小D.上述三种说法都不对30.两个或两个以上模块之间联系的紧密程度称为( )。(分数:2.00)A.耦合性B.内聚性C.复杂性D.数据传输特性31.关于模板,下列说法不正确的是( )。(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数32.数据流图中带有箭头的线段表示的是( )。(分数:2.00)A.控制流B.数据流C.模块调用D.事件驱动33.设有如下关系表:(分数:2.00)A.T=R/SB.T=RSC.T=R
15、SD.T=RS34.定义如下枚举类型:enumMonday,Tuesday,Wednesday,Thrusday,Friday=2;表达式 Wednesday=Friday的值是( )。(分数:2.00)A.falseB.trueC.2D.异常35.设根结点的层次为 0,高度为 K的二叉树最最大结点数为( )个。(分数:2.00)A.2KB.2K+1-1C.2k+1D.2K+1+1二、填空题(总题数:15,分数:30.00)36.数据结构分为线性结构和非线性结构,带链的队列属于 1。(分数:2.00)填空项 1:_37.队列是限定在表的一端进行插入和在另一端进行删除操作的线性表。允许插入的一端
16、称作 1。(分数:2.00)填空项 1:_38.一棵二叉树第 6层(根结点为第一层)的结点最多为 1 个。(分数:2.00)填空项 1:_39.给定一个关键字序列(24,19,32,43,38,6,13,22),进行快速排序,扫描一趟后的结果是 1。(分数:2.00)填空项 1:_40.在一个容量为 24的循环队列中,若头指针 front=8,尾指针 rear=3,则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_41.若有函数 fun(x,y),并且已经使函数指针变量 p指向函数 fun,则使用 p调用函数 fun的方法是 1。(分数:2.00)填空项 1:_42.以下程序的运
17、行结果是_。#includeiostrearn.bfun(int a,int b)int m=0,i=2;i+=m+1;m=i+a+b;return m;void main()int k=4,m=1,p;p=fun(k,m);coutpend1;(分数:2.00)填空项 1:_43.下列程序的输出结果为:0bject id=00biect id=1请将程序补充完整。#includeiostreamusing namespace std;class Pointpublic:Point(int xx=0,int yy=0)X=xx;Y=yy;countP+;Point()countP-;int G
18、etX()return X;int GetY()return Y;static void GetC()cout“0bject id=“countPend1;private:int X,Y;static int countP;_/静态数据成员的初始化int main()Point:GetC();Point A(4,5);A.GetC();return 0;(分数:2.00)填空项 1:_44.有以下程序:#includeiostreamusing namespace std;class MyClasspublic:static int s;MyClass();void SetValue(int
19、val);int MyClass:s=0;MyClass:MyClass()s+;void MyClass:SetValue(int val)s=val;int main()MyClass my3,*p;p=my;for(int k=0;k3;k+)P-SetValue(k+1);p+;coutMyClass:send1;return 0;运行后的输出结果是_。(分数:2.00)填空项 1:_45.operator是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专用函数名,务必把该函数说明为 1 的。(分数:2.00)填空项 1:_46.若有定义语句:int*a,b
20、;,则变量 b的数据类型是 1。(分数:2.00)填空项 1:_47.若要访问指针变量 p所指向的数据,应使用表达式 1。(分数:2.00)填空项 1:_48.已知有函数 f的定义如下:int f()static int s=0;s+=2;return s;则在某程序中第二次执行函数调用语句 f();时,函数 f的返回值是_。(分数:2.00)填空项 1:_49.有如下定义:class MAint value;public:MA(int n=0):value(n);MA*ta,tb;其中 MA类的对象名标识符是_。(分数:2.00)填空项 1:_50.Staff类含有 int型数据成员 ID,
21、两个 Staff对象相等是指它们的 ID相同。下面的函数重载了运算符“=”,它用来判断两个 Staff对象是否相等,相等时返回 true,否则返回 false。请将横线处缺失部分补充完整。bool Staff:Staff=(const Staff (分数:2.00)填空项 1:_二级 C+笔试-375 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列程序的输出结果是( )。#includeiostreamusing namespace std;voidfun(int int main()int n=50;fun(n);coutnend1;
22、return 0;(分数:2.00)A.0B.20C.50D.100 解析:解析 题中主程序中首先定义整型变量 n=50,然后调用函数 fun,实际参数为 n。函数 fun中参数为引用,为地址。即函数中形参的改变会影响实参的值,函数的功能是参数乘以 2。2.以下程序运行后的输出结果是( )。#includeiostream.hvoid main()char aft=“abbcabbcabbc“;int i=0,j=0,k=0;while(ai)if(ai=a)j+;if(ai=b)k+;i+;coutj“kend1;(分数:2.00)A.2,6B.3,5C.4,7D.3,6 解析:解析 程序中
23、首先定义字符数组 a,然后在 while循环中统计字符 a和 b的个数。其中 j记录 a的个数,k 记录 b的个数。第一个 if语句是当第 i个字符为 a时,i 加 1;第二个 if语句是当第 i个字符为 b时,k 加 1。3.栈 C最多能容纳 4个元素,现有 6个元素按 A、B、C、D、E、F 的顺序进栈,下列哪个序列不是可能的出栈序列( )。(分数:2.00)A.C、B、E、D、A、FB.C、D、B、F、E、AC.A、D、E、C、B、FD.A、F、E、D、C、B 解析:解析 栈是一种特殊的线性表,栈是限定在表的一端进行插入和删除运算的线性表。栈的操作原则是“后进先出”。依题意,栈 S最多能
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 375 答案 解析 DOC
