1、二级 C+笔试-354 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.多态性指的是(分数:2.00)A.以任何方式调用一个虚函数B.以任何方式调用一个纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数D.借助于指向对象的基类指针或引用调用一个纯虚函数2.下列程序的输出结果是#include“iostream“using namespace std;int Max(int a,int b)if (a b)return a;elsereturn b;void main()int m,n;m=10,n=5;int max=Max(m,n)
2、;coutmaxendl;(分数:2.00)A.10B.程序有误C.1D.03.需求分析阶段的任务是确定(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能4.下面程序的执行结果为 #include“iostream“using namespace std;class Aint a;public:void Sera(int x)a=x;void Display_a()coutaendl;class Bint b;public:void Setb(int x) b=x;void Dispaly_b() coutbendl;class C:public A,priva
3、te B private:int c;public:void Setc(int x,int y,int z)c=z;Sera(x);Serb(y);void Display_c()coutcendl; void main() C cc; ccSeta(1); ccDisplay_a(); ccSetc(2,2,3); ccDispaly_b(); ccDisplay_c();(分数:2.00)A.输出为 2 2 3B.有错误在第 5行C.输出为 1 2 3D.有错误在第 7行5.不能重载的运算符是(分数:2.00)A.newB.sizeofC.*D.+6.c+语言函数中不能由系统自动生成的是(
4、分数:2.00)A.析构函数B.构造函数C.内联函数D.拷贝构造函数7.只能作为成员函数重载的是(分数:2.00)A.=B.+C.*D.new8.下面程序输出的结果为#include“iostreamh“class Apublic:A()cout“CLASSA“endl;A() ;class B:public Apublic:B()cout“CLASSB“endl;B() ;void main()A * p;p=new B;B *q;q=new B;(分数:2.00)A.CLASS ACLASS BB.CLASS ACLASS BCLASS BC.CLASS ACLASS BCLASS ACL
5、ASS BD.CLASS ACLASS BCLASS BCLASS B9.虚函数必须是类的(分数:2.00)A.成员函数B.友元函数C.构造函数D.析构函数10.以下哪个特征不是面向对象思想中的主要特征?(分数:2.00)A.多态B.继承C.封装D.垃圾回收11.下面程序错误的语句是#include“iostreamh“ void main() int A=0; int i0;+i);D.for( ;);19.下面程序的执行结果是#include“iostreamh“void main()int * p,r;p=new int;*p=20;r=sizeof(*p);coutrendl;dele
6、te p;(分数:2.00)A.程序错误B.内存为 20地址的大小C.20D.420.关于构造函数 A()的拷贝构造函数正确的是(分数:2.00)A.A(A *B.;B)A(AB) ;C.AD.(21.线性表的顺序存储结构和线性表的链式存储结构分别是(分数:2.00)A.顺序存取的存储结构、顺序存取的存储结构B.随机存取的存储结构、顺序存取的存储结构C.随机存取的存储结构、随机存取的存储结构D.任意存取的存储结构、任意存取的存储结构22.栈通常采用的两种存储结构是(分数:2.00)A.线性存储结构和链表存储结构B.散列方式和索引方式C.链表存储结构和数组D.线性存储结构和非线性存储结构23.一
7、个关系中属性个数为 1时,称此关系为(分数:2.00)A.对应关系B.单一关系C.一元关系D.二元关系24.关于 continue语句叙述不正确的是(分数:2.00)A.continue语句用于循环体中,结束循环B.continue语句用于循环体中,它使执行流跳出循环体中尚未执行的语句,并进行下一循环判断C.continue可以用于 if语句中D.continue语句不能代替 break语句25.为用户与数据库系统提供接口的语言是(分数:2.00)A.高级语言B.数据描述语言(DDL)C.数据操纵语言(DML)D.汇编语言26.以下定义数组中错误的是(分数:2.00)A.int a 10;B.
8、int a 220;C.int a20 ;D.int a;27.以下哪个不是 C+语言中的有效标识符?(分数:2.00)A.34aB._ABC.A_BD.A2528.下面程序的结果为#include“iostreamh“void change(int a,int b)int temp;temp=a;a = b;b=temp;void main()int m,n;m=8;n=9;change(m,n);coutm “ “ n endl;(分数:2.00)A.8 9B.9 8C.程序有错误D.9 929.语句 coutsetprecision(2)1024.4567;的输出结果为(分数:2.00)
9、A.1024.4567B.1024C.1024.45D.le+00330.最简单的交换排序方法是(分数:2.00)A.快速排序B.选择排序C.堆排序D.冒泡排序31.完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例的测试方法是(分数:2.00)A.黑箱测试法B.白箱测试法C.错误推测法D.安装测试法32.下面程序的运行结果是#include“iostreamh“#define sum(a,b)a*bvoid main()int x;X=sam(1+2,3);coutx;(分数:2.00)A.0B.9C.7D.533.关于模板下列说法不正确的是(分数:2.00)A.用类模板定义
10、一个对象时,不能省略实参B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数34.C+语言中类定义中默认的访问权限是(分数:2.00)A.publicB.protectedC.privateD.default35.相对于数据库系统,文件系统的主要缺陷有数据关联差、数据不一致性和(分数:2.00)A.可重用性差B.安全性差C.非持久性D.冗余性二、填空题(总题数:14,分数:30.00)36.栈和队列通常采用的存储结构是 【1】 。(分数:2.00)填空项 1:_37.在程序设计阶段应该采取 【2】 和逐步求精的方法,把一个模块的功能逐步分解,细化为
11、一系列具体的步骤,进而用某种程序设计语言写成程序。(分数:2.00)填空项 1:_38.软件结构是以 【3】 为基础而组成的一种控制层次结构。(分数:2.00)填空项 1:_39.数据库系统阶段的数据具有较高独立性,数据独立性包括物理独立性和 【4】 两个含义。(分数:2.00)填空项 1:_40.数据库保护分为安全性控制 【5】 、并发性控制和数据的恢复。(分数:2.00)填空项 1:_41. 【6】 是 C+语言程序的入口。(分数:2.00)填空项 1:_42.程序#include“iostreamh“void main()int i=10;int i=5;cout j+i+endl;的结
12、果为 【7】 。(分数:2.00)填空项 1:_43.C+语言的基本控制结构为顺序结构、选择结构和 【8】 。(分数:2.00)填空项 1:_44.语句 int*i;i=new int10;,释放指针 i的语句是 【9】 。(分数:2.00)填空项 1:_45.函数重载要求重载的函数必须有和原函数一样的 【10】 。(分数:2.00)填空项 1:_46.在 C+语言中每个类都有一个 【11】 指针,该指针指向正在调用成员函数的对象。(分数:2.00)填空项 1:_47.设置虚基类的目的是 【12】 ,通过 【13】 表示虚基类。(分数:4.00)填空项 1:_48.程序的结果为 【14】 。#
13、include“iostreamh“templatetypename TT total(T*data)Ts=0;while(*data)s+=*data+;return s;int main()int x = 2,4,6,8,0,12,14,16,18 ;couttotal(X);return 0;coutendl;(分数:2.00)填空项 1:_49.语句 cout/n还可表示为 【15】 。(分数:2.00)填空项 1:_二级 C+笔试-354 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:35,分数:70.00)1.多态性指的是(分数:2.00)A.以任何方式调
14、用一个虚函数B.以任何方式调用一个纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数 D.借助于指向对象的基类指针或引用调用一个纯虚函数解析:命题目的 考查多态性的基本概念。解题要点 多态性主要是指借助于指向对象的基类指针或引用调用一个虚函数。考点链接 注意多态和重载的关系和应用。2.下列程序的输出结果是#include“iostream“using namespace std;int Max(int a,int b)if (a b)return a;elsereturn b;void main()int m,n;m=10,n=5;int max=Max(m,n);coutmaxendl
15、;(分数:2.00)A.10 B.程序有误C.1D.0解析:命题目的 考查 return语句的用法和函数的调用。解题要点 本题函数 Max的功能是求出两个整数中的较大者,并且通 return语句返回。考点链接 return 语句的用法,注意 return的条件。3.需求分析阶段的任务是确定(分数:2.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能 解析:命题目的 考查考生对需求分析的内容的了解。解题要点 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后在此基础上确
16、定新系统的功能。错解分析 选项 A)软件开发方法是在总体设计阶段完成的任务;选项 B)软件开发工具是在实现阶段需完成的任务;选项 C)软件开发费用是在可行性研究阶段需完成的任务:考点链接 需求分析的任务和它的 6种方法。4.下面程序的执行结果为 #include“iostream“using namespace std;class Aint a;public:void Sera(int x)a=x;void Display_a()coutaendl;class Bint b;public:void Setb(int x) b=x;void Dispaly_b() coutbendl;class
17、 C:public A,private B private:int c;public:void Setc(int x,int y,int z)c=z;Sera(x);Serb(y);void Display_c()coutcendl; void main() C cc; ccSeta(1); ccDisplay_a(); ccSetc(2,2,3); ccDispaly_b(); ccDisplay_c();(分数:2.00)A.输出为 2 2 3B.有错误在第 5行C.输出为 1 2 3D.有错误在第 7行 解析:命题目的 考查类的继承方法。解题要点 private 继承不能调用 Displ
18、ay_b函数, public 继承可以调用基类中非 private成员。考点链接 类的继承方式 public,proctected和 private的区别。5.不能重载的运算符是(分数:2.00)A.newB.sizeofC.* D.+解析:命题目的 运算符重载的概念考查。解题要点 c+语言规定*运算符是不能被重载的。考点链接还有,- * ,? :这几个运算符不能重载。6.c+语言函数中不能由系统自动生成的是(分数:2.00)A.析构函数B.构造函数C.内联函数 D.拷贝构造函数解析:命题目的 考查一个类中由系统自动生成的函数。解题要点 一个类巾由系统自动生成的函数有构造函数,析构函数,拷贝构
19、造函数。错解分析 内联函数只能由用户自己定义。考点链接 类能自动生成的函数,尤其注意构造函数和析构函数,还有拷贝构造函数。7.只能作为成员函数重载的是(分数:2.00)A.= B.+C.*D.new解析:命题目的 关于重载概念的考查。解题要点 C+语言规定“=”运算符只能作为成员函数重载。8.下面程序输出的结果为#include“iostreamh“class Apublic:A()cout“CLASSA“endl;A() ;class B:public Apublic:B()cout“CLASSB“endl;B() ;void main()A * p;p=new B;B *q;q=new B
20、;(分数:2.00)A.CLASS ACLASS BB.CLASS ACLASS BCLASS BC.CLASS ACLASS BCLASS ACLASS B D.CLASS ACLASS BCLASS BCLASS B解析:命题目的 考查类的继承和实例化。解题要点 每实例化一个类就要调用其构造函数,结束运行该实例后调用析构函数。考点链接 类的实例化和构造函数、析函数的调用方式和何时调用。9.虚函数必须是类的(分数:2.00)A.成员函数 B.友元函数C.构造函数D.析构函数解析:命题目的 考查虚函数的基本概念。解题要点 虚函数只能是类的成员函数,不能是构造函数或析构函数。考点链接 虚函数可以
21、是另个类的友元函数。10.以下哪个特征不是面向对象思想中的主要特征?(分数:2.00)A.多态B.继承C.封装D.垃圾回收 解析:命题目的 考查面向对象语言的基本思想。解题要点 面向对象语言的基本特性是封装,继承和多态。错解分析 垃圾回收是 Java的主要特点。考点链接 要掌握面向对象的优点。11.下面程序错误的语句是#include“iostreamh“ void main() int A=0; int i0;+i);D.for( ;);解析:命题目的 考查循环语句 for的使用。解题要点 for 循环的一般格式为 for(初始化部分;终止条件判断部分;迭代部分)循环体;说明如下:for循环
22、开始时,首先执行初始化操作,然后判断终止条件是否满足,如果满足,则执行循环体中的语句,最后执行迭代部分。完成一次循环后,重新判断终止条件。错解分析 在 for语句中,如果省略了终止条件判断部分,开且在语句中没有 break,或者是终止条件判断部分始终没有终止,都将出现死循环。考点链接 for 循环语句可由 while循环语句来代替。19.下面程序的执行结果是#include“iostreamh“void main()int * p,r;p=new int;*p=20;r=sizeof(*p);coutrendl;delete p;(分数:2.00)A.程序错误B.内存为 20地址的大小C.20
23、D.4 解析:命题目的 考查指针和运算符 sizeof的运用。解题要点 理解 sizeof的用法,它可以运算出各种数据类型所占内存空间的多少。错解分析 选项 C)中是指针 p所指向的内存地址中内容是 20。考点链接 在用完申请后的内存应立刻释放。20.关于构造函数 A()的拷贝构造函数正确的是(分数:2.00)A.A(A *B.;B)A(AB) ;C.A D.(解析:命题目的 考查拷贝构造函数的方法。解题要点 固定的一种拷贝方式就是类名: 类名const类名int main()int x = 2,4,6,8,0,12,14,16,18 ;couttotal(X);return 0;coutendl;(分数:2.00)填空项 1:_ (正确答案:20)解析:命题目的 模板函数的运用。解题要点 要理解,data 的含意。49.语句 cout/n还可表示为 【15】 。(分数:2.00)填空项 1:_ (正确答案:coutendl;)解析:命题目的 考查“/n”和 endl的意义。解题要点“/n”表示换行,endl 也可表示换行。考点链接 endl 和“/n”可以通用。