【计算机类职业资格】二级C++笔试71及答案解析.doc

上传人:inwarn120 文档编号:1324808 上传时间:2019-10-17 格式:DOC 页数:16 大小:87.50KB
下载 相关 举报
【计算机类职业资格】二级C++笔试71及答案解析.doc_第1页
第1页 / 共16页
【计算机类职业资格】二级C++笔试71及答案解析.doc_第2页
第2页 / 共16页
【计算机类职业资格】二级C++笔试71及答案解析.doc_第3页
第3页 / 共16页
【计算机类职业资格】二级C++笔试71及答案解析.doc_第4页
第4页 / 共16页
【计算机类职业资格】二级C++笔试71及答案解析.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、二级 C+笔试 71 及答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层次模型C.网状模型D.数据模型2.下列叙述中正确的是(分数:2.00)A.线性表是线性结构B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构3.下列打开文件的表达式中,错误的是(分数:2.00)A.ofstream ofile; ofilopen(“C:/vc/abtxt“,ios:binar;B.fstream iofile; iofilopen(“abtxt“,ios:at

2、;C.ifstream ifile(“C:/vc/abtxt“);D.cout,open(“C:/vc/abtxt“,ios:binar;4.若有以下程序: #include iostream using namespace std; class data public: int x; data(int x) data: :x=x; ; class A private: data d1; public: A(int x): d1(x) void dispa() coutd1.x“,“; ; class B: public A private: data d2; public: B(int x)

3、: A(x-1),d2(x) void dispb() coutd2.xend1; ; class C: public B public: C(int x): B(x-1) void disp() dispa(); dispb(); ; int main() C obj(5); obj.disp(); return 0; 程序执行后的输出结果是 (分数:2.00)A.5,5B.4,5C.3,4D.4,35.下面不属于软件设计原则的是(分数:2.00)A.抽象B.模块化C.自底向上D.信息隐蔽6.下列叙述中正确的是(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向

4、对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小D.上述三种说法都不对7.设有以下程序段: int a5=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是(分数:2.00)A.p+qB.p-qC.p*qD.Pq8.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:2.00)A.5B.6C.7D.89.若执行语句:coutsetfill(*)setw(10)123OKend1 后将输出(分数:2.00)A.*123OKB.123*OKC.*123*OKD.123*OK

5、*10.派生类的构造函数的成员初始化列表中,不能包含(分数:2.00)A.基类的构造函数B.派生类中子对象的初始化C.基类的子对象初始化D.派生类中一般数据成员的初始化11.如果表达式 y*x+十中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为(分数:2.00)A.operator+(0).operator *(;B.operator * (operator+(0),;C.operator * (operator+(x,0)D.operator * (operator+(x,0),12.下列类的定义中,有( )处语法错误。 cl

6、ass Base public: Base() Base(int i) data=i; private: int data; ; class Derive: public Base public: Derive(): Base(0) Derive(int x) d=x; void setvalue(int i) data=i; private: d; ;(分数:2.00)A.1B.2C.3D.413.下列叙述中正确的是(分数:2.00)A.数据的逻辑结构与存储结构必定一一对应B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,

7、因此,利用数组只能处理线性结构D.以上三种说法都不对14.C+语言中 while 循环和 do-while 循环的主要区别是(分数:2.00)A.do-while 的循环体至少无条件执行一次B.while 的循环控制条件比 do-while 的循环控制条件严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句15.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.MyClass class Base public: Base() x=0; int x; ; class Derivedl: virtual public B

8、ase public: Derivedl() x=10; ; class Derived2: virtual public Base public: Derived2() ( x=20; ; class Derived: public Derivedl,protected Derived2 ; int main() Derived obj; coutobj.xend1; return 0; 该程序运行后的输出结果是(分数:2.00)A.20B.30C.10D.017.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余B.数据库系统避免了一切冗余C.数据库系统中数据

9、的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据18.若有如下程序: #include iostream using namespaces std; int s=0; class sample static iht n; public: sample(int i) n=i; static void add() s+=n; ; int sample:s=0; int main() sample a(2),b(5); sample:add(); coutsendl; return 0; 程序运行后的输出结果是(分数:2.00)A.2B.5C.7D.319.有以下程序: #inclu

10、deiostream using namespace std; class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,sample s2) this-n=s1.n+s2.n; return (*this); void disp() cout“n=“nend1; int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是(分数:2.00)A.n=10B.n=5C.n=20D

11、.n=1520.若有以下程序: #include iostream using namespaces std; class A public: A() A(int i) x1=i; void dispa() coutx1=“x1“,“; private: int x1; ; class B: public A public: B() B(int i):A(i+10) x2=i; void dispb() dispa(); cout“x2=“x2end1; private: int x2; ; int main() B b(2); b.dispb(): return 0; 程序运行后的输出结果是

12、(分数:2.00)A.x1=10,x2=2B.x1=12,x2=10C.x1=12,x2=2D.x1:2,x2=221.下列对派生类的描述中,错误的是(分数:2.00)A.一个派生类可以作为另一个派生类的基类B.派生类至少有一个基类C.派生类的成员除了它自己的成员外,还包含了它的基类的成员D.派生类中继承的基类成员的访问权限到派生类中保持不变22.C+流中重载了运算符,它是一个(分数:2.00)A.用于输出操作的成员函数B.用于输入操作的成员函数C.用于输入操作的非成员函数D.用于输出操作的非成员函数23.下列运算符中不能在 C+中重载的是(分数:2.00)A.?:B.+C.-D.=24.关于

13、类模板,下列表述不正确的是(分数:2.00)A.用类模板定义一个对象时,不能省略实参B.类模板只能有虚拟类型参数C.类模板本身在编译中不会生成任何代码D.类模板的成员函数都是模板函数25.下面关于虚函数的描述中正确的是(分数:2.00)A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数既可以在函数说明时定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型26.面向对象程序设计思想的主要特征中不包括(分数:2.00)A.继承性B.功能分解,逐步求精C.封装性和信息隐藏D.多态性27.若有以下定义: int a=1,2,3,4,5,6,7; ch

14、ar c1=b,C2=2; 则数值不为 2 的表达式是(分数:2.00)A.a1B.d-c1C.a3-c2D.c2-028.有如下函数模板定义: template typename T1,typename T2,typename T3 T2 plus(T1 t1,T3 t3)return t1+t3;(分数:2.00)A.plus(3,5;B.plus(3,5;C.plusint(3,5;D.plusint, double(3,5;29.下列叙述中错误的是(分数:2.00)A.在数据库设计的过程中,需求分析阶段必须考虑具体的计算机系统B.在数据库设计的过程中,概念结构设计与具体的数据库管理系统

15、有关C.在数据库设计的过程中,逻辑结构设计与具体的数据库管理系统有关D.在数据库设计的过程中,物理结构设计依赖于具体的计算机系统30.已知:int n=10;那么下列语句中错误的是(分数:2.00)A.int*p=new long;B.int p;C.int*p=new long(;D.int p10;31.下列叙述中正确的是(分数:2.00)A.黑箱(盒)测试方法完全不考虑程序的内部结构和内部特征B.黑箱(盒)测试方法主要考虑程序的内部结构和内部特征C.白箱(盒)测试不考虑程序内部的逻辑结构D.上述三种说法都不对32.程序设计方法要求在程序设计过程中(分数:2.00)A.先编制出程序,经调试

16、使程序运行结果正确后再画出程序的流程图B.先编制出程序,经调试使程序运行结果正确后再在程序中的适当位置处加注释C.先画出流程图,再根据流程图编制出程序,最后经调试使程序运行结果正确后再在程序中的适当位置处加注释D.以上三种说法都不对33.有以下程序 #include iostream using namespace std; static int days= 31,28,31,30,31,30,31,31,30,31,30,31 ; class date private: int month, day, year; public: date( int m, int d, int y ) mon

17、th = m; day = d; year = y; date() void disp() coutyear“-“month“-“dayend1; date operator+( int day ) date dt = *this; day+= dt.day; while ( day daysdt.month - 1 ) day -= days dt.month - 1 ; if ( +dt.month = 13 ) dt.month = 1; dt.year+; dt.day = day; return dt; ; int main() date d1( 6, 20, 2004 ), d2;

18、 d2: d1 + 20; d2.disp(); return 0; 执行后的输出结果是(分数:2.00)A.2004-7-10B.2004-6-20C.2004-7-20D.程序编译时出错34.以下程序执行后的输出结果是 #includeiostream using namespace std; void try(int,int,int,int); int main() int x,y,z,r; x=1; y=2; try(x,y,z,r); coutrend1; return 0; void try(int x,int y, int z,int r) z = x+y; x = x*x; y

19、 = y*y; r = z+x+y; (分数:2.00)A.18B.9C.10D.不确定35.模板函数的真正代码是在( )时候产生。(分数:2.00)A.源程序中声明函数时B.源程序中定义函数时C.源程序中调用函数时D.运行执行函数时二、B填空题/B(总题数:14,分数:28.00)36.在一个容量为 25 的循环队列中,若头指针 front=16,尾指针 rear=9,则该循环队列中共有上U 【1】 /U个元素。(分数:2.00)填空项 1:_37.在面向对象方法中,属性与操作相似的一组对象称为U 【2】 /U。(分数:2.00)填空项 1:_38.Jackson 方法是一种面向U 【3】

20、/U的结构化方法。(分数:2.00)填空项 1:_39.一个项目具有一个项目主管,一个项目主管可管理多个项目。则实体集“项目主管”与实体集“项目”的联系属于U 【4】 /U的联系。(分数:2.00)填空项 1:_40.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,所以,基于逻辑结构的应用程序不必修改,称为U 【5】 /U。(分数:2.00)填空项 1:_41.假设 a、b 均是整型变量,则表达式 a=2,b=5,a+,b+,a+b 值为U 【6】 /U。(分数:2.00)填空项 1:_42.设在主函数中有以下定义和函数调用语句,且 fun()函数为 void

21、 类型,请写出 fun()函数的首部U 【7】 /U。 int main() double s1022; int n; fun(s); return 0; (分数:2.00)填空项 1:_43.若有以下程序段: #include iostream using namespace std; int main() char*p=“abcdefgh“,*r; long*q; q=(long*)p;q+; r=(char*)q; coutrend1; return 0; 该程序的输出结果是U 【8】 /U。(分数:2.00)填空项 1:_44.表达式 c3=c1.operator+(c2)或 c3=o

22、perator+(c1,c2)还可以表示为U 【9】 /U。(分数:2.00)填空项 1:_45.下列程序的输出结果是U 【10】 /U。 #include iostream using namespace std; void fun(int int main() int num= 500; fun(num); coutnumend1; return 0; (分数:2.00)填空项 1:_46.在下面程序的横线处填上适当的语句,使该程序的输出为 12。 #include iostream using namespace std; class Base public: int a; Base(i

23、nt i)a=i; ; class Derived: public Base int a; public: Derived(int x): Base(x),b(x+l) void show() U 【11】 /U;输出基类数据成员 a 的值。 coutbend1; ; int main() Derived d(1); d.show(); return 0; (分数:2.00)填空项 1:_47.假定 A 为一个类,则语句 A(A 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:_4

24、9.下面程序的输出是: *5.23 5.23* 请将下划线上遗漏的部分补充完整。 #include iostream #include iomanip using namespace std; void main() double i=5.23; coutU 【14】 /Usetw(14)i coutendlU 【15】 /Usetw(14)i; (分数:2.00)填空项 1:_二级 C+笔试 71 答案解析(总分:98.00,做题时间:90 分钟)一、B选择题/B(总题数:35,分数:70.00)1.用树形结构来表示实体之间联系的模型称为(分数:2.00)A.关系模型B.层次模型 C.网状模

25、型D.数据模型解析:解析 在数据库系统中,由于采用的数据模型不同,相应的数据库管理系统 (DBMS)也不同。目前常用的数据模型有 3 种:层次模型、网状模型和关系模型。在层次模型中,实体之间的联系是用树结构来表示的,其中实体集(记录型)是树中的结点,而树中各结点之间的连线表示它们之间的关系。所以,本题的正确答案是 B。2.下列叙述中正确的是(分数:2.00)A.线性表是线性结构 B.栈与队列是非线性结构C.线性链表是非线性结构D.二叉树是线性结构解析:解析 非空的数据结构如果满足下列两个条件则称为线性结构:有且只有一个根结点;每一个结点最多有一个前件,也最多有一个后件。线性表是线性结构。选项

26、A 的说法正确;栈与队列是特殊的线性表,因此,它们也是线性结构,选项 B 的说法错误:线性链表是线性表的链式存储结构,因此,其对应的逻辑结构也是线性结构,而不是非线性结构,选项 C 的说法错误;二叉树是非线性结构,而不是线性结构,选项 D 的说法错误。3.下列打开文件的表达式中,错误的是(分数:2.00)A.ofstream ofile; ofilopen(“C:/vc/abtxt“,ios:binar;B.fstream iofile; iofilopen(“abtxt“,ios:at;C.ifstream ifile(“C:/vc/abtxt“);D.cout,open(“C:/vc/ab

27、txt“,ios:binar; 解析:解析 本题考核文件的 I/O 操作。流可以分为 3 类:输入流、输出流以及输入/输出流,相应地必须将流说明为 ifstream、ofstream 以及 fstream 类的对象。如,说明一个输入流对象:ifstream ifile;。说明了流对象后,可使用函数 open()打开文件。文件的打开即是在流与文件之间建立一个连接。open()的函数原型为:void open(const char *filename,int mode,int port=filebuf:openprot);其中,filename 是文件名字,它可包含路径说明。mode 说明文件的打

28、开模式。除了 open()成员函数外,ifstream、ofstream 以及 fstream 三类流的构造函数也可以打开文件,其参数同 open()函数。例如:ifstream ifile(c:/vc/abctxt“);。打开的文件使用完毕后,必须使用 close()函数将其关闭。close()函数也是流类的成员函数,它没有参数与返回值,其作用是将缓冲区的内容刷新并撤销流与文件之间的连接。当流对象的生存周期后,相应的析构函数也会将文件关闭。由此可知,A、B 和 C 选项的表达式都是正确的。对于 D 选项,由于 open 函数并不是 tout 对象中的成员函数,所以对 open 的调用是非法的

29、。4.若有以下程序: #include iostream using namespace std; class data public: int x; data(int x) data: :x=x; ; class A private: data d1; public: A(int x): d1(x) void dispa() coutd1.x“,“; ; class B: public A private: data d2; public: B(int x): A(x-1),d2(x) void dispb() coutd2.xend1; ; class C: public B public

30、: C(int x): B(x-1) void disp() dispa(); dispb(); ; int main() C obj(5); obj.disp(); return 0; 程序执行后的输出结果是 (分数:2.00)A.5,5B.4,5C.3,4 D.4,3解析:解析 本题考核派生类的定义和访问权限。本题涉及多层次的继承关系。类 B 是类 A 的派生类,类 C 又是类 B 的派生类。类 C 中的构造函数调用了类 B 的构造函数来初始化类 B 的私有数据成员,而类 B的构造函数又调用了类 A 的构造函数来初始化类 A 的私有数据成员。由此可知,程序最后的输出为 3,4。5.下面不属

31、于软件设计原则的是(分数:2.00)A.抽象B.模块化C.自底向上 D.信息隐蔽解析:解析 软件设计遵循软件工程的基本目标和原则,建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念。它们是:抽象、模块化、信息隐蔽、模块独立性。没有自底向上,所以,本题的正确答案是 C。6.下列叙述中正确的是(分数:2.00)A.在面向对象的程序设计中,各个对象之间具有密切的联系B.在面向对象的程序设计中,各个对象都是公用的C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小 D.上述三种说法都不对解析:解析 在面向对象的程序设计中,对象是面向对象的软件的基本模块,它是由数据及可以对这些数

32、据施加的操作所组成的统一体,而且对象是以数据为中心的,操作围绕对其数据所需做的处理来设置,没有无关的操作。从模块的独立性考虑,对象内部各种元素彼此结合得很紧密,内聚性强。由于完成对象功能所需要的元素(数据和方法)基本上都被封装在对象内部,它与外界的联系自然就比较少,所以,对象之间的耦合通常比较松。所以,选项 A 与 B 错误,选项 C 正确。7.设有以下程序段: int a5=0,*p,*q; p=a; q=a; 则下列选项中,合法的运算是(分数:2.00)A.p+qB.p-q C.p*qD.Pq解析:解析 本题考核指针的运算。C+语言中,指向同一字符串的指针之间可以,也只能进行减运算,减运算

33、后返回的是一整型数,表示指针之间的地址偏移量。8.设树 T 的度为 4,其中度为 1,2,3,4 的结点个数分别为 4,2,1,1。则 T 中的叶子结点数为(分数:2.00)A.5B.6C.7D.8 解析:解析 根据给定的条件,在树中,各结点的分支总数为:41+22+13+41=15:树中的总结点数为:15(各结点的分支总数)+1(根结点)=16:非叶子结点总数为: 4+2+1+1=8。因此,叶子结点数为16(总结点数)-8(非叶子结点总数)=8。因此,本题的正确答案为 D。9.若执行语句:coutsetfill(*)setw(10)123OKend1 后将输出(分数:2.00)A.*123O

34、K B.123*OKC.*123*OKD.123*OK*解析:解析 本题考核格式控制数据的输入输出。函数 setfill(charc)用于设置填充字符,在输出数据时,如果数据宽度小于设置的宽度,则空闲位置要用填充字符填满。函数 setw(int n)用于设置输入输出宽度,宽度设置的效果只对一次输入或输出有效,在完成一次数据的输出或输入后,宽度设置自动恢复为0,例如题中语句以宽度 10 输出数据“123”后,字符串“OK的输出宽度就自动恢复为 0 了。而且输出的初始状态为右对齐,所以最终的输出为*123OK。10.派生类的构造函数的成员初始化列表中,不能包含(分数:2.00)A.基类的构造函数B

35、.派生类中子对象的初始化C.基类的子对象初始化 D.派生类中一般数据成员的初始化解析:解析 本题考核构造函数。在 C+中,构造函数不能被继承,因此,派生类的构造函数必须通过调用基类的构造函数来初始化基类子对象。所以,在定义派生类的构造函数时,除了对自己的数据成员进行初始化外,还必须负责调用基类构造函数使基类的数据成员得以初始化。如果派生类中还有子对象,还应包含对子对象初始化的构造函数。但是它不负责基类中子对象的初始化。11.如果表达式 y*x+十中,“*”是作为成员函数重载的运算符,“+”是作为友元函数重载的运算符,采用运算符函数调用格式,该表达式还可表示为(分数:2.00)A.operato

36、r+(0).operator *(;B.operator * (operator+(0),;C.operator * (operator+(x,0) D.operator * (operator+(x,0),解析:解析 本题考核运算符的重载。假定已经作为某个类的成员函数重载了二元运算符 +,且 c1、c2都是该类的对象,则 c1.operator+(c2)与 c1+c2 含义相同。如果+作为该类的非成员函数重载,则operator 十(c1,c2)与 c1+c2 含义相同。同理,运算符*作为成员函数重载,则广(x+)与yoperator*(x+)含义相同,后缀什作为友元函数重载,那么 x+与

37、operator+(x,0)含义相同,所以选项 C 是正确的。12.下列类的定义中,有( )处语法错误。 class Base public: Base() Base(int i) data=i; private: int data; ; class Derive: public Base public: Derive(): Base(0) Derive(int x) d=x; void setvalue(int i) data=i; private: d; ;(分数:2.00)A.1B.2 C.3D.4解析:解析 本题考核派生类的定义和成员的访问权限。第一处错误:在派生类的构造函数 Deri

38、ve(int x)中没有调用基类的构造函数对基类对象初始化:第二处错误:数据 data 是基类 Base 的私有成员,派生类 Derive 不能访问,所以在函数 setvalue 中对 data 的赋值是错误的。13.下列叙述中正确的是(分数:2.00)A.数据的逻辑结构与存储结构必定一一对应B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构C.程序设计语言中的数组一般是顺序存储结构,因此,利用数组只能处理线性结构D.以上三种说法都不对 解析:解析 一种数据的逻辑结构根据需要可以表示成多种存储结构,因此,数据的逻辑结构与存储结构不一定是一一对应的,因此选项 A 错误。

39、计算机的存储空间是向量式的存储结构,但一种数据的逻辑结构根据需要可以表示成多种存储结构,如线性链表是线性表的链式存储结构,数据的存储结构不一定是线性结构,因此选项 B 错误。 数组一般是顺序存储结构,但利用数组也能处理非线性结构。选项 C 错误。 只有选项 D 的说法正确。14.C+语言中 while 循环和 do-while 循环的主要区别是(分数:2.00)A.do-while 的循环体至少无条件执行一次 B.while 的循环控制条件比 do-while 的循环控制条件严格C.do-while 允许从外部转到循环体内D.do-while 的循环体不能是复合语句解析:解析 本题考核 C+语

40、言中 while 循环和 do-while 循环之间的区别。do-while 语句与 while 语句不同的是,do-while 循环中的语句至少会执行一次,而 while 语句中当条件在第一次循环就不满足时,语句一次也不会执行。15.假定 MyClass 为一个类,则该类的拷贝构造函数的声明语句为(分数:2.00)A.MyClass class Base public: Base() x=0; int x; ; class Derivedl: virtual public Base public: Derivedl() x=10; ; class Derived2: virtual publ

41、ic Base public: Derived2() ( x=20; ; class Derived: public Derivedl,protected Derived2 ; int main() Derived obj; coutobj.xend1; return 0; 该程序运行后的输出结果是(分数:2.00)A.20 B.30C.10D.0解析:解析 本题考核虚基类的应用。本题中,虽然 Derivedl 和 Derivec2 都是由共同的 基类 x 派生而来的,但由于引入了虚基类,使得它们分别对应基类的不同副本。这时数据成员 x 只存在一份拷贝,不论在类 Derivedl 中修改,还是

42、在类 Derivect2 中修改,都是直接对这惟一拷贝进行操作。本题程序执行语句“Derived obj;”时,就会先调用虚基类 Base 的构造函数,使得 x=0,然后执行类 Derivedl 的构造函数使得 x=10,再执行类 Derived2 的构造函数,使得 x=20。最后输出 x 的值为 20。17.下述关于数据库系统的叙述中正确的是(分数:2.00)A.数据库系统减少了数据冗余 B.数据库系统避免了一切冗余C.数据库系统中数据的一致性是指数据类型一致D.数据库系统比文件系统能管理更多的数据解析:解析 数据库是一个通用化的、综合性的数据集合,它可以为各种用户所共享,具有最小的冗余度和

43、较高的数据与程序的独立性,而且能并发地为多个应用服务,同时具有安全性和完整性。即数据库系统减少了数据冗余,但不能避免一切冗余。所以选项 A 正确,选项 B 错误。 在数据库管理阶段中,数据是结构化的,面向系统,数据冗余度小,从而节省了数据的存储空间,也减少了对数据的存取时间,提高了访问效率,避免了数据的不一致性。数据的不一致性,是指对数据的存取方式,选项 C 错误。 数据库系统比文件系统能管理更多的数据,并非是数据库系统的特点,选项 D 错误。 本题正确答案是 A。18.若有如下程序: #include iostream using namespaces std; int s=0; class

44、 sample static iht n; public: sample(int i) n=i; static void add() s+=n; ; int sample:s=0; int main() sample a(2),b(5); sample:add(); coutsendl; return 0; 程序运行后的输出结果是(分数:2.00)A.2B.5 C.7D.3解析:解析 本题考核静态数据成员和静态成员函数的应用。程序中定义一个类 sample,它包括一个静态数据成员 n 和一个静态成员函数 add,并在类的构造函数中给类私有静态数据成员 n 赋值。 在主函数main 中,定义对象

45、 a(2)时,通过构造函数使静态数据成员 n 的值变为 2,在定义对象 b(5)时,通过构造函数使静态数据成员 n=5(覆盖了前面的 n=2),再执行 sample:add()使全局变量 s=5。19.有以下程序: #includeiostream using namespace std; class sample private: int n; public: sample() sample(int m) n=m; sample add(sample s1,sample s2) this-n=s1.n+s2.n; return (*this); void disp() cout“n=“nen

46、d1; int main() sample s1(10),s2(5),s3; s3.add(s1,s2); s3.disp(); return 0; 程序运行后,输出的结果是(分数:2.00)A.n=10B.n=5C.n=20D.n=15 解析:解析 本题考核 this 指针的使用。类成员函数 add 中通过 this 指针实现私有数据成员 n 的赋值。20.若有以下程序: #include iostream using namespaces std; class A public: A() A(int i) x1=i; void dispa() coutx1=“x1“,“; private: int x1; ; class B: public A public: B() B(int i):A(i+10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1