【计算机类职业资格】二级C++笔试-321及答案解析.doc
《【计算机类职业资格】二级C++笔试-321及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-321及答案解析.doc(27页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-321 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.结构化程序设计的三种基本结构是( )。(分数:2.00)A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移2.对于长度为 n 的线性表,在最坏情况下,下列各种排序法所对应的比较次数中,正确的是( )。(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/23.类 MyClass 的定义如下:class MyClasspublic:MyClass()value=0;SetVariable
2、(int i)value=i;private:int value;则对下列语句序列正确的描述是( )。MyClass*P, my; p=(分数:2.00)A.语句 p= 是把对象 my 赋值给指针变量 PB.语句 MyClass*p, my; 会调用两次类 MyClass 的构造函数C.对语句*P. SetVariable(5)的调用是正确的D.语句 p-SetVariable(5)与语句 my.SetVariable(5)等价4.下列是关于派生类声明的开始部分,其中正确的是( )。(分数:2.00)A.class virtual B:public AB.virtual class B:pub
3、lic AC.class B:public A virtualD.class B:virtual public A5.有如下程序:#includeiostreamusing namespace std;class Apublic:A()cout“A“;A()cout“A“;);class B:public AA*p;public:B()cout“B“;p=new A;B()cout“B“;delete p;int main()B obj;return 0;执行这个程序的输出结果是( )。(分数:2.00)A.BAAABAB.ABABAAC.BAABAAD.ABAABA6.下列选项中,不是一个算
4、法的基本特征是( )。(分数:2.00)A.完整性B.可行性C.有穷性D.拥有足够的情报7.下列关于线性链表的描述中正确的是( )。(分数:2.00)A.存储空间不一定连续,且各元素的存储顺序是任意的B.存储空间不一定连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且各前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的8.下列程序的执行结果是( )。#includeiostream.hint fun(int b,int n)int i,r=1;for(i=0;in;i+)r=r*bi;return r;void main()int x,a=1,2,3
5、,4,5,6,7,8;x=fun(a,3);coutxend1;(分数:2.00)A.5B.6C.7D.89.有如下类声明:class MyBASEint k;public:void set(int n)k=n;int get()constreturn k;class MyDERIVED:protected MyBASEprotected:int j;public:void set(int m, int n)MyBASE:set(m);j=n;int get()constreturn MyBASE:get()+j;则类 MyDERIVED 中保护的数据成员和成员函数的个数是( )。(分数:2.
6、00)A.4B.3C.2D.110.下列有关类继承的叙述中,错误的是( )。(分数:2.00)A.继承可以实现软件复用B.虚基类可以解决由多继承产生的二义性问题C.派生类构造函数要负责调用基类的构造函数D.派生类没有继承基类的私有成员11.在表达式 x+y*z 中,“+”是作为成员函数重载的运算符,“*”是作为非成员函数重载的运算符。下列叙述中正确的是( )。(分数:2.00)A.operator+有两个参数,operator*有两个参数B.operator+有两个参数,operator*有一个参数C.operator+有一个参数,operator*有两个参数D.operator+有一个参数,
7、operator*有一个参数12.下列叙述中错误的是( )。(分数:2.00)A.线性表是由 n 个元素组成的一个有限序列B.线性表是一种线性结构C.线性表的所有结点有且仅有一个前件和后件D.线性表可以是空表13.有如下类定义:class Testpublic:Test()a=0;c=0 /int f(int(分数:2.00)A.constthis-a=a; /static int g()return a; /void h(intB.Test:b; int main()char a=“Hello,Test“;char *p=a;while(*p)if(*p=aelse cout*p;p+;re
8、turn 0;(分数:2.00)A.hello,testB.Hello,TestC.HELLO,TESTD.hELLO,tEST15.运算符函数调用格式的表达式 y/x+与表达式 y.operator/(operator+(x,0)的含义相同,由此可看出( )。(分数:2.00)A.“/”和“+”都是作为成员函数重载的B.“/”和“+”都是作为非成员函数重载的C.“/”是作为成员函数重载的,“+”是作为非成员函数重载的D.“/”是作为非成员函数重载的,“+”都是作为成员函数重载的16.下列程序的输出结果是( )。#includeiostream.h#include“string.h“void
9、main()char a=“Hello Test“,b=“Test“;strcpy(a,b);coutaend1;(分数:2.00)A.HelloB.TestC.Hello TestD.Hello Test HelloTest17.下列有关运算符重载的叙述中,正确的是( )。(分数:2.00)A.运算符重载是多态性的一种表现B.C+中可以通过运算符重载创造新的运算符C.C+中所有运算符都可以作为非成员函数重载D.重载运算符时可以改变基结合性18.下列程序的执行结果是( )。#includeiostream.hclass Sampleint x,y;public:Sample() x=y=0;S
10、ample(int a,int b) x=a;y=b;Sample()if(x=y)cout“x=y“end1;elsecout“x!=y“end1;void disp()cout“x=“x“,y=“yend1;void main()Sample s1(2,3);s1.disp();(分数:2.00)A.x=2,y=2B.x=3,y:3C.x=2,y=3D.x=3,y=219.执行语句序列ofstream outfile(“datA.dat“);if()cout“ok“; else cout“fail“;后,如果文件打开成功,显示“ok”,否则显示“fail”。由此可知,上面 if 语句的“”
11、处的表达式是( )。(分数:2.00)A.outfile.fail()或 outfileB.outfile.good()或!outfileC.outfile.good()或 outfileD.outfile.fail()或!outfile20.下列数据结构中,能用二分法进行查找的是( )。(分数:2.00)A.顺序存储的有序线性表B.结性链表C.二叉链表D.有序线性链表21.最简单的交换排序方法是( )。(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序22.下列符号中可以用作 C+标识符的是( )。(分数:2.00)A._radiusB.foobarC.elseD.3room2
12、3.按照“先进先出”组织数据的数据结构是( )。(分数:2.00)A.队列B.栈C.双向链表D.二叉树24.下列关于 getline()函数的描述中,不正确的是( )。(分数:2.00)A.getline()函数是用来从键盘上读取字符串的B.getline()函数读取字符串长度是受限制的C.getline()函数读取字符串时,遇到终止符时就停止D.getline()函数中所使用的终止符只能是换行符25.下列程序将 x,y 和 z 按从小到大的顺序排列,请将下面的函数模板补充完整。templateclass Tvoid fun(_)T a;if(xy)a=x; x=y;y=a;if(yz)a=y
13、; y=z;z=a;if(xy)a=x; x=y;y=a;(分数:2.00)A.T x,T y,T zB.T x;y;zC.T int /变量引用y=99;cout“x=“xend1;(分数:2.00)A.x=99B.x=9C.x=0D.异常28.下列数据结构中,属于非线性的是( )。(分数:2.00)A.线性表B.队列C.树D.栈29.有如下程序:#includeiostreamusing namespace std;class TestClassprivate:int x,y;public:TestClass (int i,int j)x=i;y=j;void print()cout“pr
14、int1“end1;void print()constcout“print2“end1;int main()const TestClass a(1,2);a.print();return 0;该程序运行后的输出结果是( )。(分数:2.00)A.print1B.print2C.print1 print2D.程序编译时出错30.下列说法中错误的是( )。(分数:2.00)A.公有继承时基类中的 public 成员在派生类中仍是 public 的B.公有继承时基类中的 private 成员在派生类中仍是 private 的C.私有继承时基类中的 public 成员在派生类中是 private 的D
15、.保护继承时基类中的 public 成员在派生类中是 protected 的31.在重载一个运算符为成员函数时,其参数表中没有任何参数,这说明该运算符是 ( )。(分数:2.00)A.后缀一元运算符B.前缀一元运算符C.无操作数的运算符D.二元运算符32.某二叉树共有 60 个叶子结点与 50 个度为 1 的结点,则该二叉树中的总结点数为( )。(分数:2.00)A.148B.169C.182D.19833.当需要将一个函数 boo1 isnumber(char c)声明为内联函数时,则此内联函数的函数原型为( )。(分数:2.00)A.enum boo1 isnumber(charc);B.
16、define boo1 isnumber(charc);C.inline boo1 isnumber(charc);D.extem boo1 isnumber(charc);34.如果有以下定义及初始化:int a=3, *p=则由此可以推断,*p 的值是( )。(分数:2.00)A.变量 a 的值,即 3B.变帚 a 的地址值C.变量 p 的地址值D.无意义35.有如下类声明:class XAint x;public:XA(int n)x=n;class XB:public XAint y;public:XB(int a,int b);在构造函数 XB 的下列定义中,正确的是( )。(分数:
17、2.00)A.XB:XB(int a,intb):x(a),y(b)B.XB:XB(int a,intb):XA(a),y(b)C.XB:XB(int a,intb):x(a),XB(b)D.XB:XB(int a,intb):XA(a),XB(b)二、填空题(总题数:15,分数:30.00)36.软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于 1 中的一个阶段。(分数:2.00)填空项 1:_37.结构化分析方法是面向 1 进行分析的方法。(分数:2.00)填空项 1:_38.常用的软件结构设计工具是结构图(SC) ,也称程序结构图。其中,用矩形表示 1,用带空心圆的箭头表
18、示传递的是数据。(分数:2.00)填空项 1:_39.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块,其中 1 的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_40.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_41.类中数据成员和成员函数的默认访问级别为 1。(分数:2.00)填空项 1:_42.若已定义,以下 fun 函数的功能是在循环中给数组 a 前 4 个数组元素依次赋 1、2、3、4;在第二个循环中使 a 数组前 4 个元素中的值对称折叠,变成 1、2、2、1。请填空。fun(i
19、nt a)int i;for(i=1;i4;i+)_=i;for(i=0;i2;i+)_=ai;(分数:2.00)填空项 1:_43.若有函数 fun(x,y),并且已经使函数指针变量 p 指向函数 fun,则使用 p 调用函数 fun 的方法是( )。(分数:2.00)填空项 1:_44.已知下列程序的输出结果是 42,请将横线处缺失的部分补充完整。#includeiostreamusing namespace std;class TestClassint value;public:TestClass():value(0);void setValue(int value)_=value;/给
20、 TestClass 的数据成员 value 赋值void print()coutvalue;int main()TestClass f;f.setValue(42);f.print();return 0;(分数:2.00)填空项 1:_45.一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本,此虚函数又称为( )。(分数:2.00)填空项 1:_46.多态性分为两类:编译时的多态性和 1。(分数:2.00)填空项 1:_47.已知下列程序的输出结果是 23,请将横线处缺失的部分补充完整。#includeiostreamusing namespace std;
21、class MyClasspublic:void Print()constcout23;int main()MyClass*p=new MyClass();_.Print();return 0;(分数:2.00)填空项 1:_48.若,将一个二元运算符重载为类的成员函数,其形参个数应该是 1 个。(分数:2.00)填空项 1:_49.下面是一个栈类的模板,其中 push 函数将元素 i 压入栈顶,pop 函数弹出栈顶元素。栈初始为空,top 值为 0,栈顶元素在 stacktop-1)中,在下面横线处填上适当语句,完成栈类模板的定义。templateclass Tclass Tstackenu
22、msize=1000;T stacksize;int top;public:Tstack():top(0)void push(const T T pop()if(top= =0)exit(1); /栈空时终止运行return_;(分数:2.00)填空项 1:_50.有如下程序:#includeiostreamusing namespace std;class CApublic:CA()cout+A;class CB: private CApublic:CB()coutB;int main()CA a;CB b;return 0;这个程序的输出结果是_。(分数:2.00)填空项 1:_二级 C+
23、笔试-321 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.结构化程序设计的三种基本结构是( )。(分数:2.00)A.过程、子程序和分程序B.顺序、选择和重复 C.递归、堆栈和队列D.调用、返回和转移解析:解析 程序的 3 种基本控制结构包括顺序、选择和重复(循环),这 3 种结构就足以表达出各种其他形式的结构。2.对于长度为 n 的线性表,在最坏情况下,下列各种排序法所对应的比较次数中,正确的是( )。(分数:2.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/2 解析:解析 在最坏情况下,
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 321 答案 解析 DOC
