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

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

1、二级 C+-202 及答案解析(总分:88.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.50)1.下列语句都是程序运行时的第 1 条输出语句,其中一条语句的输出效果与其他 3 条语句不同,该语句是_。(分数:2.50)A.coutinternal12345;B.coutleft12345;C.coutright12345;D.coutsetw(6)12345;2.下面 _ 机制允许对一个函数名给出多个函数定义(分数:2.00)A.封装性B.继承性C.函数重载D.多态性3.在面向对象方法中, _ 描述的是具有相似属性与操作的一组对象。(分数:2.00)A.属性B.事件C.方

2、法D类4.有如下类定义: class Sample public: Sample(int x):ref(x) / private: Sample():ref(0) / static int val=5; / const int ref; / ; 上述程序段中,错误的语句是_。(分数:1.00)A.B.C.D.5.一个函数为 void(int,char=“a“),另一个函数为 void f(int),则它们 _ 。(分数:1.00)A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载D.以上说法均不正确6.有如下头文件: int f1( ); stati

3、c int f2( ); class MA public: int f3( ); static int f4( ); ; 在所描述的函数中,具有隐含的 this 指针的是(分数:2.00)Af1Bf2Cf3Df47.有如下程序: #includeiostream #includeiomanip using namespace std; int main( ) Coutsetw(10) setfill(“x“)setprecision(8) left; Cout12.3456793_98765; return 0; 若程厚的输出是 12.345679x98765xxxxx,则划线处缺失的部分是(

4、分数:2.00)A.setw(10)B.setfill(“x“)C.setprecision(8)D.right8.有如下程序: #includeiostream using namespace std; int main() cout.fill(“*“); cout.width(5); coutscientific314.15926535endl; retrun 0; 程序运行后,输出的结果是 _ 。(分数:2.00)A.3.141593e+002B.3.1416e+002C.*3.14e+002D.314.169.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语

5、句是_。(分数:2.50)A.MyClass p=MyClass;B.MyClass p=new MyClass;C.MyClassp=new MyClass;D.MyClass a,p=a;10.设有以下类和对象的定义: class A public; int m; ; A k1,k2, *p1,*p2; 则下面针对成员变量 m 的引用,错误的是_。(分数:2.50)A.k1.m=1B.k2m=2C.p1m=3D.(*p2).m=411.下列叙述中正确的是(分数:2.00)A.程序执行的效率与数据的存储结构密切相关B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据

6、量D.以上三种说法都不对12.下面是一个模板声明的开始部分: templutetypename Tdouble_ 由此可知_。(分数:2.00)A.这可能是一个函数模板的声明B.这可能是一个类模板的声明C.这既可能是一个函数模板的声明,也可能是一个类模板的声明D.这肯定是一个错误的模板声明13.已知一函数的形参说明为 int arr56,则与此等效的形参说明为(分数:2.00)A.int arrB.int5C.int*a6D.int(*a)614.若有函数调用“fun(x*y,3,max(a,b,c)”,则 fun 的实参个数为_。(分数:2.00)A.3B.4C.5D.615.派生类对象对其

7、基类中的什么成员是可访问的?(分数:1.00)A.公有继承的私有成员B.私有继承的公有成员C.私有继承的保护成员D.保护继承的保护成员16.下列函数模板声明中,合法的是_。(分数:1.00)A.templatetypename TT abs(T x);B.template classTvoid abs(T x);C.template Tclass Tabs(T x);D.templatetypename Tabs(T x);17.将 E-R 图转换到关系模式时,实体与实体间的联系可以表示成_。(分数:1.00)A.属性B.关系C键D域18.有如下类声明和函数声明: class Base int

8、 m; public: int n; protected: int p; ; class Derived:public Base int k; friend void f(Derived d); ; 则在函数 f 中通过 d 可访问类数据成员的个数是_。(分数:2.50)A.1B.2C.3D.419.有下列程序: #include stdio.h void main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+)csi+; for(i=1;i5;i+)printf(“%d“,ci); printf(“/n“) (分数:2.50

9、)A.1 2 3 4B.2 3 4 4C.4 3 3 2D.1 1 2 320.下列叙述中正确的是_。(分数:2.50)A.全局变量的作用域一定比局部变量的作用域范围大B.静态类别变量的生存期贯穿于整个程序的运行期间C.函数的形参都属于全局变量D.未在定义语句中赋初值的 auto 变量和 static 变量的初值都是随机值21.有如下函数定义: void func(int a,intb+; 若执行代码段: int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别是_。(分数:2.00)A.0 和 1B.1 和 1C.0 和 2D.1 和 222.下列关于继承方式的描述中,错

10、误的是_。(分数:1.00)A.如果不显式地指定继承方式,则默认的继承方式是私有 privateB.采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C.采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D.采用保护继承方式时,基类中的公有成员在派生类中仍然是公有成员23.下列有关函数重载的叙述中,错误的是_。(分数:1.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同D.重载函数的参数可以带有默认值24.下列关于类模板的模板参数的叙述中,错误的是 _ 。(分数:2.00)A.模板参数可以作为数据成员的类型B.模

11、板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型D.模板参数不能作为成员函数的局部变量的类型25.有如下程序: #includeiostream uslng namespace std; class Con char ID; public: Con():ID(“A)cout1; Con(char ID):ID(ID)cout2; Con(Conc):ID(c.getID()cout3; char getID()constreturn ID; ; void show(Con c)coutc.getID(); int main() Con c1; show(c1); Con

12、c2(“B“); show(c2); return 0; 执行上面程序的输出是_。(分数:1.00)A.13A23AB.23A13BC.13A23BD.13823A26.有如下程序 #includeiostream using namespace std; class MyClass public: MyClass()+count; MyClass()-count; static int getcount()return count; private: static int count; ; int MyClass:count=0; int main() MyClass obj; coutob

13、j.getcount(); MyClass*ptr=new MyClass; coutMyClass:getcount(); delete ptr; coutMyClass:getcount(); return 0; 程序的输出结果是_。(分数:2.50)A.121B.232C.221D.12227.有如下程序: #include iostream using namespace std; class A public: A() cout“A“; ; class B:public A public: B() cout“-B“;delete p; int main( ) B obj; retur

14、n 0;(分数:1.00)A.BAAABAB.ABABAAC.BAABAAD.ABAABA28.程序中有如下语句 for(int i=0;i5;i+)cout*(p+i)“,“;能够依次输出 int 型一维数组 a的前 5 个元素。由此可知,变量 P 的定义及初始化语句是 _ 。(分数:2.00)A.int*p=a;B.int p=a;C.*p=a;D.p=a;29.软件详细设计产生的图如下: (分数:1.00)A.N-S 图B.PAD 图C.程序流程图D.E-R 图30.下面描述中错误的是_。(分数:1.00)A.系统总体结构图支持软件系统的详细没计B.软件设汁是将软件需求转换为软件表示的过

15、程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具31.若是对类 BigNumber 中重载的类型转换运算符 long 进行声明,下列选项中正确的是_。(分数:2.50)A.operator long()const;B.operator long(BigNumber);C.long operator long()const;D.long operator long(BigNumber);32.下列程序将 x、y 和 z 按从小到大的顺序排列,横线处应添加语句 _ 。 templateclass T void fun (_) T a; if(xy) a=x;x=

16、y;y=a; if(yz) a=y;y=z;z=a; if(xy) a=x;x=y;y=a; (分数:2.00)A.Tx,Ty,TzB.Tx;y;zC.T void fl(intx,inty) int z=x;x=y;y=z; void f2(int x,int y) int z=x;x=y;y=z; int main() int x=10,y=26; f1(x,y); f2(x,y); coutyendl; return 0; 运行时的输出结果是_。(分数:2.50)A.10B.16C.26D.3635.有如下程序: int x=3; do x-=2; coutx; while(!(-x);

17、 执行这个程序的输出结果是_。(分数:1.00)A.1B.30C.1-2D.死循环二、填空题(总题数:15,分数:26.50)36.问题处理方案的正确而完整的描述称为 1。 (分数:2.00)37.下面程序的结果为 _ 1_ 。 #includeiostreamh voidmain() int a=1,b=2; bool c=1; if(ab)|(c)cout “ture“ end1; else cout “false“ end1; (分数:1.00)38.用于输出表达式值的标准输出流对象是 _ 1_ ,用于从键盘上为变量输入值的标准输入流对象是 _ 2_ 。 (分数:2.00)39.下列程序

18、的输出结果为 2,请将程序补充完整。 #include iostream using namespace std; class Base public: _ 1_ void fun() cout1; ; class Derived: public Base public: void fun() cout2; ; int main() Base *p=new Derived; p-fun(); delete p; return 0; (分数:2.00)40.下列程序的输出结果是 1。 #include iostream.h #include cstring.h using namespace s

19、td; void fun(const char*s,char int main ) char str =“ABCDE“; char ch=str1; fun(str,sh); coutCh; return 0; (分数:2.00)41.下面程序的输出结果是 1。 #include iostream.h using namespace std; char *x=“First“,“Second“, “Third“; void f(char *z) cout*+zendl; int main() char *y; y=x; f(y); return 0; (分数:2.50)42.对于下面定义的类 M

20、yClass,请在函数 f( )中添加对象成员把 n 的值修改为 50。 class MyClass public: MyClass(int x)n=x; void SetNum (int nl) n=nl; private: int n; ; int f( ) MyClass * ptr=new MyClass(45); 【12】 (分数:1.00)43.数据库应用的核心是指 _ 1_ 。 (分数:2.00)44.void 类型的指针是指指针指向的变量的数据类型是不固定的。对该指针进行操作时,应进行 _ 1_ 。 (分数:2.00)45.将下面的语句段(A) 补充完整,使其和语句段(B) 在

21、功能上完全等价。 (a) double s=0.0; _ 1_ ; int k=0; do s+=d; k+; d=1.0/(k*k+1); while( _ 2_ ); (b) double s=1.0; for(int k=1;k=10;k+) s+=1.0/(k*(k+1); (分数:1.00)46.软件生命周期分为软件定义期、软件开发期和软件维护期,详细设计属于 1 中的一个阶段。 (分数:2.00)47.常数据成员和静态数据成员在使用前共同的要求是要进行 _ 1_ 。 (分数:1.00)48.在算法正确的前提下,评价一个算法的两个标准是 _ 1_ 。 (分数:2.00)49.数据的基

22、本单位是 1。 (分数:2.00)50.请在横线处填写派生类 Derived 的继承方式,使得程序的输出结果为 Base。 #includeiostream using namespace std; class Base public: void print()cout“Base“; ; class Derived: 1Base); int main() Derived d; D.print(); return 0; (分数:2.00)二级 C+-202 答案解析(总分:88.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.50)1.下列语句都是程序运行时的第 1 条输出语句

23、,其中一条语句的输出效果与其他 3 条语句不同,该语句是_。(分数:2.50)A.coutinternal12345;B.coutleft12345;C.coutright12345;D.coutsetw(6)12345; 解析:解析 setw(6)将输出宽度设为 6,如果位数不够,则在最左边补齐,因此该项输出一定不会与其他 3 项一致。2.下面 _ 机制允许对一个函数名给出多个函数定义(分数:2.00)A.封装性B.继承性C.函数重载D.多态性 解析:3.在面向对象方法中, _ 描述的是具有相似属性与操作的一组对象。(分数:2.00)A.属性B.事件C.方法D类 解析:解析 类(class)

24、描述的是具有相似属性与操作的一组对象,而一个具体对象则是其对应类的一个实例。4.有如下类定义: class Sample public: Sample(int x):ref(x) / private: Sample():ref(0) / static int val=5; / const int ref; / ; 上述程序段中,错误的语句是_。(分数:1.00)A.B.C. D.解析:解析 应为“static const int val=5;”,只有静态常量才可以初始化。5.一个函数为 void(int,char=“a“),另一个函数为 void f(int),则它们 _ 。(分数:1.00)

25、A.不能在同一程序中定义B.可以在同一程序中定义并可重载C.可以在同一程序中定义,但不可以重载 D.以上说法均不正确解析:6.有如下头文件: int f1( ); static int f2( ); class MA public: int f3( ); static int f4( ); ; 在所描述的函数中,具有隐含的 this 指针的是(分数:2.00)Af1Bf2Cf3 Df4解析:解析 C+为成员函数提供一个名字为 this 的指针,每当创建一个对象时,就把 this 用于指向该对象,并把指针赋值为该对象的起始地址。因此,具有隐含 this 指针的必须是类的成员函数,而且不能为静态成

26、员函数,静态成员函数不能使用 this 指针调用。7.有如下程序: #includeiostream #includeiomanip using namespace std; int main( ) Coutsetw(10) setfill(“x“)setprecision(8) left; Cout12.3456793_98765; return 0; 若程厚的输出是 12.345679x98765xxxxx,则划线处缺失的部分是(分数:2.00)A.setw(10) B.setfill(“x“)C.setprecision(8)D.right解析:8.有如下程序: #includeiost

27、ream using namespace std; int main() cout.fill(“*“); cout.width(5); coutscientific314.15926535endl; retrun 0; 程序运行后,输出的结果是 _ 。(分数:2.00)A.3.141593e+002 B.3.1416e+002C.*3.14e+002D.314.16解析:9.要定义一个引用变量 p,使之引用类 MyClass 的一个对象,正确的定义语句是_。(分数:2.50)A.MyClass p=MyClass;B.MyClass p=new MyClass;C.MyClassp=new M

28、yClass;D.MyClass a,p=a; 解析:解析 选项 A 错误不存在这样的定义方式;选项 B 定义了一个 MyClass 类的对象 p;选项 C 是Java 里的定义方式。10.设有以下类和对象的定义: class A public; int m; ; A k1,k2, *p1,*p2; 则下面针对成员变量 m 的引用,错误的是_。(分数:2.50)A.k1.m=1B.k2m=2 C.p1m=3D.(*p2).m=4解析:解析 A*p1,A*p2 为指向 A 类对象的指针,故“p1m=3,(*p2).m=4”是正确的。但 k2 不是指针,k2m 的表示是错误的。11.下列叙述中正确

29、的是(分数:2.00)A.程序执行的效率与数据的存储结构密切相关 B.程序执行的效率只取决于程序的控制结构C.程序执行的效率只取决于所处理的数据量D.以上三种说法都不对解析:解析 本题考查程序效率。程序效率是指程序运行速度和程序占用的存储空间。影响程序效率的因素是多方面的,包括程序的设计、使用的算法、数据的存储结构等。在确定数据逻辑结构的基础上,选择一种合适的存储结构,可以使得数据操作所花费的时间少,占用的存储空间少,即提高程序的效率。因此,本题选项 A 的说法是正确的。12.下面是一个模板声明的开始部分: templutetypename Tdouble_ 由此可知_。(分数:2.00)A.

30、这可能是一个函数模板的声明 B.这可能是一个类模板的声明C.这既可能是一个函数模板的声明,也可能是一个类模板的声明D.这肯定是一个错误的模板声明解析:解析 此题考查的是函数模板的声明。声明一个函数模板的格式是:template模板形参表声明函数声明;定义类模板的格式是:template类型形参表class类模板名;。13.已知一函数的形参说明为 int arr56,则与此等效的形参说明为(分数:2.00)A.int arrB.int5C.int*a6D.int(*a)6 解析:解析 二维数组可以看作是一维数组的扩展。选项 D 表示的是一个一维数组,里面每个元素是一个指针,而指针肯定指向某个地址

31、,从而完成二维数组的扩展。考生要注意选项 C 中*和的运算优先级。14.若有函数调用“fun(x*y,3,max(a,b,c)”,则 fun 的实参个数为_。(分数:2.00)A.3 B.4C.5D.6解析:15.派生类对象对其基类中的什么成员是可访问的?(分数:1.00)A.公有继承的私有成员B.私有继承的公有成员C.私有继承的保护成员D.保护继承的保护成员 解析:解析 关于 c+语言继承问题中派生类对基类的访问能力的考查 【解题要点】C+语言中通常有三种继承修饰符 public,protected,Privale,限制依次严格,另外对类中的数据和函数也有这三种修饰符进行限制,有 3 种是不

32、能继承的:公有继承基类的私有成员,私有继承基类的私有成员,保护继承基类的私有成员。 16.下列函数模板声明中,合法的是_。(分数:1.00)A.templatetypename TT abs(T x); B.template classTvoid abs(T x);C.template Tclass Tabs(T x);D.templatetypename Tabs(T x);解析:解析 声明一个函数模板的格式是:template模板形参表声明函数声明,其中模板形参有三种形式:typename 参数名;class 参数名;类型修饰 参数名。函数模板的模板形参表是用尖括号括住的一个或多个模板形参

33、的列表,类型形参必须要有关键字 class 或 typename 修饰,选项 B 错误;函数的返回类型需要放在函数名之前,关键字 template 和模板形参表之后,选项 C 错误;函数必须要声明返回类型,选项 D 错误。答案为 A 选项。17.将 E-R 图转换到关系模式时,实体与实体间的联系可以表示成_。(分数:1.00)A.属性B.关系 C键D域解析:解析 将 E-R 图转换成指定 RDBMS 中的关系模式是数据库逻辑设计的主要工作。从 E-R 图到关系模式的转换是比较直接的,实体和联系都可以表示成关系。18.有如下类声明和函数声明: class Base int m; public:

34、int n; protected: int p; ; class Derived:public Base int k; friend void f(Derived d); ; 则在函数 f 中通过 d 可访问类数据成员的个数是_。(分数:2.50)A.1B.2C.3 D.4解析:19.有下列程序: #include stdio.h void main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+)csi+; for(i=1;i5;i+)printf(“%d“,ci); printf(“/n“) (分数:2.50)A.1 2 3

35、 4B.2 3 4 4C.4 3 3 2 D.1 1 2 3解析:解析 本题考查对 f。r 循环的使用,首先给两个数组赋值,第一个 for 循环从 0 开始循环 12 次遍历 s 教组的各个元素,数组将 s中的元素值作为 c数组中的下标,然后自加,使相应的值自加,当i=0,cs0+为 c1+,其值变为 1,当执行 i=1,2,11 后,c1、c2、c3、c4分别为4、3、3、2,故选项 C 正确。20.下列叙述中正确的是_。(分数:2.50)A.全局变量的作用域一定比局部变量的作用域范围大B.静态类别变量的生存期贯穿于整个程序的运行期间 C.函数的形参都属于全局变量D.未在定义语句中赋初值的

36、auto 变量和 static 变量的初值都是随机值解析:解析 本题考查的是变量的作用域及其生存周期。一个全局变量的生存周期从它被声明开始直到程序结束;一个局部变量的生存周期从它被声明开始,直到包含它的最近的一个程序块结束。静态变量的生存周期将延续到整个程序的终止。21.有如下函数定义: void func(int a,intb+; 若执行代码段: int x=0,y=1; func(x,y); 则变量 x 和 y 的值分别是_。(分数:2.00)A.0 和 1B.1 和 1C.0 和 2 D.1 和 2解析:解析 此题考查的是函数参数的传递方式。此题中形参 a 是普通参数,即传值调用,函数中

37、对 a增 1 不会影响到实参 x 的值;形参 b 是传址调用,函数中对 b 增 1 同时会改变实参 y 的值。故最终结果是0 和 2。22.下列关于继承方式的描述中,错误的是_。(分数:1.00)A.如果不显式地指定继承方式,则默认的继承方式是私有 privateB.采用公有继承方式时,基类中的公有成员在派生类中仍然是公有成员C.采用保护继承方式时,基类中的保护成员在派生类中仍然是保护成员D.采用保护继承方式时,基类中的公有成员在派生类中仍然是公有成员 解析:解析 不显式的指定继承方式,默认的继承方式是 private,选项 A 正确;采用公有继承方式时,基类的公有成员在派生类中仍然是公有成员

38、,选项 B 正确;采用保护继承方式时,基类的保护成员在派生类中仍然是保护成员,选项 C 正确;采用保护继承方式时,基类的公有成员在派生类中是保护成员,选项D 错误。答案为 D 选项。23.下列有关函数重载的叙述中,错误的是_。(分数:1.00)A.函数重载就是用相同的函数名定义多个函数B.重载函数的参数列表必须不同C.重载函数的返回值类型必须不同 D.重载函数的参数可以带有默认值解析:解析 所谓函数重载是指同一个函数名可以对应着多个函数的实现。每种实现对应着一个函数体,这些函数的名字相同,但是函数参数的类型不同,还允许参数的个数不同,但不能只有函数的返回值类型不同而参数的个数和类型相同的重载。

39、所以本题答案为 C。24.下列关于类模板的模板参数的叙述中,错误的是 _ 。(分数:2.00)A.模板参数可以作为数据成员的类型B.模板参数可以作为成员函数的返回类型C.模板参数可以作为成员函数的参数类型D.模板参数不能作为成员函数的局部变量的类型 解析:25.有如下程序: #includeiostream uslng namespace std; class Con char ID; public: Con():ID(“A)cout1; Con(char ID):ID(ID)cout2; Con(Conc):ID(c.getID()cout3; char getID()constreturn

40、 ID; ; void show(Con c)coutc.getID(); int main() Con c1; show(c1); Con c2(“B“); show(c2); return 0; 执行上面程序的输出是_。(分数:1.00)A.13A23AB.23A13BC.13A23B D.13823A解析:解析 Con c1 定义 c1 对象,调用 Con 的无参数构造函数,输出 1,ID 值变为 A,执行 show(c1)时会调用复制构造函数,将 cl 对象的值复制给 show 函数的形参,此时输出 3,然后在 show()中输出 cl的 ID 值 A,Con c2(“B“)定义 c2

41、 对象,调用 Con(char ID)构造函数,输出 2,c2 的 ID 值为 B,show(c2)执行时先调用复制构造函数输出 3,然后输出 B。因此程序输出结果为“13A23B”。26.有如下程序 #includeiostream using namespace std; class MyClass public: MyClass()+count; MyClass()-count; static int getcount()return count; private: static int count; ; int MyClass:count=0; int main() MyClass o

42、bj; coutobj.getcount(); MyClass*ptr=new MyClass; coutMyClass:getcount(); delete ptr; coutMyClass:getcount(); return 0; 程序的输出结果是_。(分数:2.50)A.121 B.232C.221D.122解析:解析 本题主要考查构造函数和析构函数的调用,以及静态成员的使用。生成对象,自动调用构造函数,执行“+count;”,count 变为 1。通过对象调用成员函数 getcount(),输出 count 值为 1。定义指针 ptr 指向动态分配的对象空间,也要自动调用构造函数,c

43、ount 第二次自增,值为 2。通过类名和作用域运算符“:”可以直接访问类的静态成员,输出 count 值为 2。“delete ptr;”需要回收 new 为其分配的动态空间,要自动调用析构函数,count 自减后值为 1。27.有如下程序: #include iostream using namespace std; class A public: A() cout“A“; ; class B:public A public: B() cout“-B“;delete p; int main( ) B obj; return 0;(分数:1.00)A.BAAABAB.ABABAA C.BAA

44、BAAD.ABAABA解析:解析 本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数。对象释放时,先执行派生类的析构函数,再执行基类的析构函数。所以本题答案为 B。28.程序中有如下语句 for(int i=0;i5;i+)cout*(p+i)“,“;能够依次输出 int 型一维数组 a的前 5 个元素。由此可知,变量 P 的定义及初始化语句是 _ 。(分数:2.00)A.int*p=a; B.int p=a;C.*p=a;D.p=a;解析:解析 从循环语句中可以看出,是在 04 的循环中输出数组 a 中的前,5 个元素,输出的值为*

45、(p+i),即为指针 p 向后移动指向的元素。所以初始化要将指针 p 指向数组 a,即 int*P=a;。29.软件详细设计产生的图如下: (分数:1.00)A.N-S 图B.PAD 图C.程序流程图 D.E-R 图解析:解析 N-S 图提出了用方框图来代替传统的程序流程图,所以 A 不对。PAD 图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具,所以 B 不对。E-R 图是数据库中的用于表示 E-R 模型的图示工具,所以 D 不对。根据图中所示表示方法是进行软件详细设计时使用的程序流程图。30.下面描述中错误的是_。(分数:1.00)A.系统总

46、体结构图支持软件系统的详细没计 B.软件设汁是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具解析:解析 软件系统的总体结构图是软件架构设计的依据,它并不能支持软件的详细设计。31.若是对类 BigNumber 中重载的类型转换运算符 long 进行声明,下列选项中正确的是_。(分数:2.50)A.operator long()const; B.operator long(BigNumber);C.long operator long()const;D.long operator long(BigNumber);解析:解析 C+不仅可以对运算符进行重载,还可以重载类型转换符,函数声明的形式为:operator类型符()const。32.下列程序将 x、y 和 z 按从小到大的顺序排列,横线处应添加语句 _ 。 templateclass T void fun (_) T 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;

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

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

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