【计算机类职业资格】二级C++笔试-444及答案解析.doc
《【计算机类职业资格】二级C++笔试-444及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++笔试-444及答案解析.doc(29页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+笔试-444 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于线性表、栈和队列的叙述,错误的是A) 线性表是给定的 n(n 必须大于零)个元素组成的序列B) 线性表允许在表的任何位置进行插入和删除操作C) 栈只允许在一端进行插入和删除操作D) 队列允许在一端进行插入在另一端进行删除(分数:2.00)A.B.C.D.2.模块化程序设计过程中,追求模块的独立性,尽量做到( )。A) 模块的控制耦合要尽可能高B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强D)
2、模块的扇入系数要大,扇出要小(分数:2.00)A.B.C.D.3.下列叙述中正确的是( )。A) 线性链表是线性表的链式存储结构 B) 栈与队列是非线性结构C) 双向链表是非线性结构 D) 只有根结点的二叉树是线性结构(分数:2.00)A.B.C.D.4.下列叙述中正确的是( )。A) 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B) 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C) 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D) 循环队列中元素的个数是由队头指针和队尾指针共同决定(分数:2.00)A.B.C.D.5.在软件开发中,需求分析阶段产生
3、的主要文档是( )。A) 可行性分析报告 B) 集成测试计划C) 概要设计说明书 D) 软件需求规格说明书(分数:2.00)A.B.C.D.6.已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为 90的元素时,查找成功的比较次数为( )。A1 B2 C3 D9(分数:2.00)A.B.C.D.7.数据库、数据库系统和数据库管理系统之间的关系是A) 数据库包括数据库系统和数据库管理系统B) 数据库系统包括数据库和数据库管理系统C) 数据库管理系统包括数据库和数据库系统D) 三者没有明显的包含关系(分数:2.00)A.B.C.D.8.对
4、建立良好的程序设计风格,下面描述正确的是( )。A) 程序应简单、清晰、可读性好 B) 符号名的命名只要符合语法C) 充分考虑程序的执行效率 D) 程序的注释可有可无(分数:2.00)A.B.C.D.9.下列描述中正确的是( )。A程序就是软件B软件开发不受计算机系统的限制C软件既是逻辑实体,又是物理实体D软件是程序、数据与相关文档的集合(分数:2.00)A.B.C.D.10.在下列关系运算中,可能改变关系中属性个数的是A) 并 B) 差 C) 投影 D) 交(分数:2.00)A.B.C.D.11.有三个关系 R、S 和 T 如下:RA B Ca 1 2b 2 1c 3 1sA D C 4TA
5、 B C Dc 3 1 4则由关系 R 和 S 得到关系 T 的操作是A) 自然连接B) 交C) 投影D) 并(分数:2.00)A.B.C.D.12.类模板的使用实际上是将类模板实例化成一个具体的( )。A类 B对象C函数 D模板类(分数:2.00)A.B.C.D.13.关于运算符重载,下列表述中正确的是( )。A) C+已有的任何运算符都可以重载B) 运算符函数的返回类型不能声明为基本数据类型C) 在类型转换符函数的定义中不需要声明返回类型D) 可以通过运算符重载来创建 C+中原来没有的运算符(分数:2.00)A.B.C.D.14.下列程序的输出结果是#include iostreamusi
6、ng namespace std;int main ()char a = “Hello,World“:char*ptr = a;while (*ptr)if(*ptr= a else cout*ptr;ptr+;return 0;A) HELLO. WORLDB) Hello, WorldC) hELLO, wORLDD) hello, world(分数:2.00)A.B.C.D.15.下列对变量的引用中,错误的是A) int a; int SetVariable(int i)value=i;private:int value;则对下列语句序列正确的描述是( )。MyClass*P, my;
7、p=A) 语句 p= 是把对象 my 赋值给指针变量 PB) 语句 MyClass*p, my; 会调用两次类 MyClass 的构造函数C) 对语句*P. SetVariable(5)的调用是正确的D) 语句 p-SetVariable(5)与语句 my.SetVariable(5)等价(分数:2.00)A.B.C.D.22.下列函数的运行结果是( )。#includeiostreamhint f(int a,int b)int c;if(ab)c=1;else if(a=b)c=0;else c=-1;return(c);void main()int i=2,j=3;iht p=f(i,j
8、);coutp;A-1 B1C2 D编译出错,无法运行(分数:2.00)A.B.C.D.23.计算斐波那契数列第 n 项的函数定义如下:int fib(int n)if (n=0)return 1;else if(n=1) return 2;else return fib(n=1)+fib(n=2);若执行函数调用表达式 fib(2),函数 fib 被调用的次数是( )。A1 B2 C3 D4(分数:2.00)A.B.C.D.24.以下叙述中不正确的是A) 一个类的所有对象都有各自的数据成员,它们共享函数成员B) 一个类中可以有多个同名的成员函数C) 一个类中可以有多个构造函数、多个析构函数D
9、) 在一个娄中可以声明另一个类的对象作为它的数据成员(分数:2.00)A.B.C.D.25.下列关于继承的描述中,错误的是( )。A) 析构函数不能被继承B) 派生类是基类的组合C) 派生类的成员除了它自己的成员外,还包含了它的基类的成员D) 派生类中继承的基类成员的访问权限到派生类保持不变(分数:2.00)A.B.C.D.26.设有定义:int n1=0,n2,*p=n2,*q=n1;,以下赋值语句中与 n2=n1;语句等价的是_。(A) *p=*q;(B) p=q;(C) *p=n1;(D) p=*q;(分数:2.00)A.B.C.D.27.已知语句 int m=10;则下列引用的表示中正
10、确的是A) int B) int C) int D) float(分数:2.00)A.B.C.D.28.下列代码段声明了 3 个类:class Person;class Student:public Person;class Undergraduate:Student;下列关于这些类之间关系的描述中,错误的是( )。A类 Person 是类 Undergraduate 的基类B类 Undergraduate 从类 Student 公有继承C类 Student 是类 Person 的派生类D类 Undergraduate 是类 Person 的派生类(分数:2.00)A.B.C.D.29.下列是
11、关于派生类声明的开始部分,其中正确的是 A) class virtual B:publice A B) virtual class B:publice A C) class B:public A virtal D) class B:virtual public A(分数:2.00)A.B.C.D.30.下面是类 Shape 的定义:class Shapepublic:virtual void Draw()=0;下列关于 Shape 类的描述中,正确的是( )。A类 Shape 是虚基类B类 Shape 是抽象类C类 Shape 中的 Draw 函数声明有误D语句“Shape s;”能够建立 S
12、hape 的一个对象 s(分数:2.00)A.B.C.D.31.下面程序的运行结果是#includeiostream.hvoid fun(int * a,int * b) int x * a;* a * b; * bX;cout * a * b “ “;void main( ) int x1,y2;fun(cout X y endl;) 12 12 ) 12 21 ) 21 12 ) 21 21(分数:2.00)A.B.C.D.32.有如下程序:#include iostreamusing namespace std;class AAint n;public:AA(int k):n(k) in
13、t get()return n; int get()constreturn n+1;int main()AA a(5);const AA b(6);couta.get()b.get();return 0;执行后的输出结果是( )。A. 55 B. 57C. 75 D. 77(分数:2.00)A.B.C.D.33.实现运行时的多态性用A) 重载函数 B) 构造函数 C) 析构函数 D) 虚函数(分数:2.00)A.B.C.D.34.C+语言函数中不能由系统自动生成的是A) 析构函数 B) 构造函数C) 内联函数 D) 复制构造函数(分数:2.00)A.B.C.D.35.有如下类声明:class
14、XAint X;public:XA(int n)x=n;class XB:publicXAint y;public:XB(int a,int b););在构造函数 XB 的下列定义中,正确的是( )。AXB:XB(int a,int b):x(a),y(b)BXB:XB(int a,int b):XA(a),y(b)CXB:XB(int a,int b):x(a),XB(b)DXB:XB(int a,int b):XA(a),XB(b)(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:30.00)36.软件维护活动包括改正性维护、适应性维护、 1 维护和预防性维护。(分数:2.
15、00)填空项 1:_37.对软件设计的最小单位(模块或程序单元)进行的测试通常称为 1 测试。(分数:2.00)填空项 1:_38.在进行模块测试时,要为每个被测试的模块另外设计两类模块:驱动模块和承接模块(桩模块)。其中U /U的作用是将测试数据传送给被测试的模块,并显示被测试模块所产生的结果。(分数:2.00)填空项 1:_39.在关系数据库中,把数据表示成二维表,每一个二维表称为 1。(分数:2.00)填空项 1:_40.开发一个 C语言程序的步骤通常包括编辑、 、链接、运行和调试。(分数:2.00)填空项 1:_41.虚函数必须是类的 1。(分数:2.00)填空项 1:_42.若将一个
16、二元运算符重载为类的成员函数,其形参个数应该是 1 个。(分数:2.00)填空项 1:_43.下面函数返回数组中最大元素的下标,数组中元素个数为 t,将程序补充完整。int findmax(int s,int t) int k,p;for(p=0,k=p;pt;p+) ifU /Uk=p;return k;(分数:2.00)填空项 1:_44.下列程序编译错误,因为 add 函数返回值是一个引用,故对 return 后返回值的要求是U /U。#includeiostream. hintvoid main( )int i=3,j=19;cout(add(i,j)+ =20)end1;(分数:2.
17、00)填空项 1:_45.以下程序的输出结果是 。#includeiostream.hunsigned fun(unsigned num) unsigned k1;dok * num%10;num/10;while(num) ;return k;void main( ) unsigned n26;cout fun(n) endl;(分数:2.00)填空项 1:_46.重载函数的实现和功能不同,但函数的U /U相同。(分数:2.00)填空项 1:_47.下列程序将 x、y 和 z 按从小到大的顺序排列,请将下面的函数模板补充完整。template class Tvoid order(_)T a;
18、if (xy)a=x; x=y; y=a;if (yz)a=y; y=z; z=a;if (xy)a=x; x=y; y=a;(分数:2.00)填空项 1:_48.若下列程序运行时输出结果为1,A,1012,B,35请将程序补充完整。#includeiostreamusing namespace std;int main()void test(mt,char,double_);test(1,A,10.1);test(2,B);return 0;void test(int a,char b,double c)couta,b,cendl;(分数:2.00)填空项 1:_49.多数运算符既能作为类的
19、成员函数重载,也能作为类的非成员函数重载,但 运算符只能作为类的 1 函数重载。(分数:2.00)填空项 1:_50.补充完整下面的类定义:class XCHchar*a;public:XCH(char*aa) /构造函数a=new charstrlen(aa)+1;strcpy(a,aa);XCHa=new charstrlen(x,a)+1;strcpy(a,x,a);_;XCH( )deletea;)(分数:2.00)填空项 1:_二级 C+笔试-444 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.下列关于线性表、栈和队列的叙述,错
20、误的是A) 线性表是给定的 n(n 必须大于零)个元素组成的序列B) 线性表允许在表的任何位置进行插入和删除操作C) 栈只允许在一端进行插入和删除操作D) 队列允许在一端进行插入在另一端进行删除(分数:2.00)A. B.C.D.解析:解析 线性表的插入和删除允许在任何位置进行,所以 B 选项的说法是正确的;栈的操作只允许在栈顶进行,因此,栈称为先进后出表(FILO,First In Last Out),或“后进先出”表(LIFO,Last In First Out),所以 C 选项说法也是正确的;队列(queue)是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头(front)
21、,允许插入的一端叫做队尾(rear),因此队列亦称作先进先出 (FIFO, First In First Out)的线性表,或后进后出(LILO, Last In Last Out)的线性表。所以 D 选项说法也是正确的。2.模块化程序设计过程中,追求模块的独立性,尽量做到( )。A) 模块的控制耦合要尽可能高B) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强D) 模块的扇入系数要大,扇出要小(分数:2.00)A.B. C.D.解析:解析 为了使模块尽可能独立,要求模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱。3.下列叙
22、述中正确的是( )。A) 线性链表是线性表的链式存储结构 B) 栈与队列是非线性结构C) 双向链表是非线性结构 D) 只有根结点的二叉树是线性结构(分数:2.00)A. B.C.D.解析:解析 线性表、栈、队列和双向链表都是典型的线性结构;而二叉树是典型的非线性结构。知识拓展 什么是线性结构?有 3 个衡量标准:有且只有一个根结点;每个结点最多有一个前件(直接前驱),也最多有一个后件(直接后继):删除或插入任何一个结点后还应该是线性结构。如下图所示的就是一个线性结构。不是线性结构就一定是非线性结构。4.下列叙述中正确的是( )。A) 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)
23、 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C) 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D) 循环队列中元素的个数是由队头指针和队尾指针共同决定(分数:2.00)A.B.C.D. 解析:解析 循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。5.在软件开发中,需求分析阶段产生的主要文档是( )。A) 可行性分析报告 B) 集成测试计划C) 概要设计说明书 D) 软件需求规格说明书(分数:2.00)A.B.C.D. 解析:解析 软件的生命周期分为计划、开发和运行 3 个时期。其中计划期包括问题定义和可行
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 笔试 444 答案 解析 DOC
