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

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

1、二级 C+-193 及答案解析(总分:88.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.50)1.软件工程的出现是由于 _ 。(分数:2.00)A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现D.计算机的发展2.有如下程序: #includeiostream using namespace std; class A public: A(int i):rl(i) void print()cout“E“r1“-“; void print()constcout“C“r1*r1“-“; private: int rl; ; int main() A al(2); c

2、onst A a2(4); a1.print(); a2.print(); return 0; 运行时的输出结果是_。(分数:2.00)A.运行时出错B.E2-C16-C.C4-C16-D.E2-E4-3.运算符重载是对已有的运算符赋予多重含义,因此_。(分数:1.00)A.可以对基本类型(如 int 类型)的数据,重新定义“+”运算符的含义B.可以改变一个已有运算符的优先级和操作数个数C.只能重载 C+中已经有的运算符,不能定义新运算符D.C+中已经有的所有运算符都可以重载4.下列关于虚基类的描述中错误的是(分数:2.00)A.虚基类子对象的初始化由最派生类完成B.虚基类子对象的初始化次数与

3、虚基类下面的派生类个数有关C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用5.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.50)A.ios base:inB.ios_base:binaryC.ios base:in|ios_base:outD.ios_base:out6.有如下两个类定义: class XX private: double x1; protected: double x2; public: double x3; ; class YY: protected X

4、X private: double y1; protected: double y2; public: double y3; ; 在类 YY 中保护成员变量的个数是_。(分数:1.00)A.1B.2C.3D.47.有如下输出语句: coutsetw(5)fixedsetprecision(3)3.1415926; 此语句的输出结果是(分数:2.50)A.3.141B.3.142C.3.1415D.3.14168.下列关于类定义的说法中,正确的是_。(分数:2.00)A.类定义中包括数据成员和函数成员的声明B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行

5、定义9.下列排序方法中,最坏情况下时间复杂度(即比较次数)低于 O(n 2 )的是_。(分数:1.00)A.快速排序B.简单插入排序C.冒泡排序D.堆排序10.下列关于 C+流的描述中,错误的是_。(分数:2.00)A.cout“A表达式可输出字符 AB.eof()函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件 fstreamD.以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件11.算法的时间复杂度取决于_。(分数:2.50)A.问题的规模B.待处理的数据的初态C.问题的难度D.A 和 B12.下列关于赋值运算符“=”重载的叙述中,正确的是_。(

6、分数:2.00)A.赋值运算符只能作为类的成员函数重载B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D.如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符13.有下列程序: #include stdio.h int b=2; int fun(int*k) b=*k+b;return(b); void main() int a10=1,2,3,4,5,6,7,8,i; for(i=2;i4;i+)b=fun(ai)+b;printf (“%d“,b);) printf(“/n“); 程序运行后的输出结果是_。(分数:2.50)A.10 12B.8

7、10C.10 28D.10 1614.下面说法正确的是_。(分数:1.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义15.有如下程序: #includeiostream using namespace std; class B public: viriual void show()cout“B“; ; class D:public B public: void show()cout“D“; ; void fun1(B

8、*ptr)ptr-show(); void fun2(Bref)ref.show(); void fun3(B B)b.show(); int main() B b,*p=new D; D d; funl(p); fun2(b); fun3(d); return 0: 程序的输出结果是_。(分数:1.00)A.BBBB.BBDC.DBBD.DBD16.针对数组定义 int data10;,下列表述中错误的是(分数:1.00)A.用*data 可访问到数组的首元素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data 共有 10 个元素,其首元素是 da

9、ta117.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是_。(分数:1.00)A.一对一B.一对多C.多对多D.多对一18.假定 MyClass 为一个类,那么下列的函数说明中, _ 为该类的析构函数。(分数:2.50)A.voidMyClass();B.MyClass(int n);C.MyClass();D.MyClass();19.给出下面程序输出结果_。 #includeiostream.hvoid main() int *p1; int *p2= int b=20; p1= cout*p2endl; (分数:2.50)A.10B.

10、20C.40D.3020.有如下类定义: class MyClass int b;char a;double c; public: MyClass():c(0.0),b(0),a(“,“) ; 创建这个类的对象时,数据成员的初始化顺序是_。(分数:2.00)A.a,b,cB.c,b,aC.b,a,cD.c,a,b21.有三个关系 R、S、T 如下: (分数:1.00)A.自然连接B差C交D并22.有如下程序: #includeiostream using namespace std; class Base int x; public: Base(int n=0): x(n) coutn; in

11、t getX()const return x; ; class Derived: public Base int y; public: Derived(int m, int n): y(m), Base(n) coutm; Derived(int m): y(m) coutm; ; int main() Derived d1(3), d2(5, 7); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.375B.357C.0375D.035723.下列说法中错误的是 _ 。(分数:2.00)A.公有继承时基类中的 public 成员在派生类中仍是 public 成员B.私有

12、继承时基类中的 protected 成员在派生类中仍是 protected 成员C.私有继承时基类中的 public 成员在派生类中仍是 private 成员D.保护继承时基类中的 public 成员在派生类中仍是 protected 成员24.下面程序的输出结果是_。 #includeiostream.h #includestring.h void main() char p110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); char str50=“xyz“; strcpy(str+2,strcat(p1,p2); coutstr; (分数:1.00)

13、A.xyzabcABCB.zabcABCC.xyabcABCD.yzabcABC25.下列控制格式输入/输出的操作符中,能够设置浮点数精度的是_。(分数:1.00)A.setprecisionB.setwC.setfillD.showpoint26.C+中,由类 istream 和类 ostream 而派出的一个类 _ ,它提供双向 I/O 操作。(分数:1.00)A.iostreamB.fstreamC.strstreamD.istream27.若在表达式 y/x 中,“/“是作为成员函数重载的运算符,则该表达式还可以表示为_。(分数:2.00)A.operator/(y)B.operato

14、r/(x,y)C.operator/(x)D.operator/(y,x)28.派生类的成员函数不能访问基类的_。(分数:2.50)A.共有成员和保护成员B.共有成员C.私有成员D.保护成员29.若有如下程序: #includeiostream using narnespace std; class TestClass public: void who()cout“TestClass“endl; ; class TestClassl: public TestClass public: void who()cout“TestClass1“endl; int main() TestClass*p;

15、 TcstClass1 obj1; p=obj1; p-who(); return 0; 则该程序运行后的输出结果是_。(分数:1.00)A.TestClasslB.TestClassC.0D.无输出30.下面有关类模板的说法中不正确的是 _ 。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只是虚拟类型的参数D.用类模板定义一个对象时,不能省略实际参数31.在表达式 x+y*z 中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是_。(分数:3.00)A.operator+有两个参数,operator*有两个参

16、数B.operator+有两个参数,operator*有一个参数C.operator+有一个参数,operator*有两个参数D.operator+有一个参数,operator*有一个参数32.在 C+中,用于实现运行时多态性的是_。(分数:2.00)A.内联函数B.重载函数C.模板函数D.虚函数33.下列各类函数中,不是类的成员函数的是(分数:2.00)A.构造函数B.析构函数C.友元函数D.拷贝构造函数34.下列关系运算中,能使经运算后得到的新关系中属性个数多于原来关系中属性个数的是 _ 。(分数:2.00)A.选择B.连接C.投影D并35.下面程序的输出是 main() int x=10

17、0, a=10, b=20, ok1=5, ok2=0; if(ab) if(b! =15) if( ! ok1) else if(ok2) x= 10 x=-1 coutxend1; (分数:2.00)A.-1B.0C.1D.不确定的值二、填空题(总题数:15,分数:26.50)36.设有定义语句:double x=2.5, y=4.7;int a=7;那么表达式 x+a%3*(int)(x+ y)%2/4 的值为 _ 1_ 。 (分数:2.00)37.非成员函数应声明为类的 1 才能访问这个类的 private 成员。 (分数:2.50)38.在面向对象方法中,信息隐蔽是通过对象的 _ 1

18、_ 来实现的。 (分数:1.00)39.若要作为类 A 的成员函数重载前置“+”运算符,使其作用于类 A 的对象,则该运算符函数的声明部分应该是 1。 (分数:2.00)40.对于派生类的构造函数,在定义对象时构造函数的执行顺序为:先执行调用 1 的构造函数,再执行调用子对象类的构造函数,最后执行派生类的构造函数体中的内容。 (分数:1.00)41.下列程序中的重载函数 disp( )发生错误,错误原因是 1。 #includeiostream.h class Sample private: int m; static int st; public: Sample(int a)m=a;st+=

19、a; static void disp( )coutmendl; static void disp(Sample input) coutinput.mendl; ; int Sample:st=2; void main( ) Sample First(2),Second(4); Sample:disp( ); Sample:disp(Second); (分数:2.00)42.若有以下程序: #include iostream using namespace std; class Base public: void who() cout“class Base“end1; ; class Deri

20、vedl : public Base public: void who() cout“class Derivedl“end1; ; class Derived2 : public Base public: void who() cout“class Derived2“end1; ; int main() Base *p; Derivedl obj1; Derived2 obi2; p= p= p-who ( ); return 0; 则该程序运行后的输出结果是 _ 1_ 。 (分数:1.00)43.operator 是运算符重载时必须使用的关键字,它和被重载的运算符连在一起,作为运算符函数的专

21、用函数名,务必把该函数说明为 1 的。 (分数:2.00)44.C+语言中的多态性是在编译时通过 【13】 和模板体现的,在运行时是通过 【14】 体现的。 (分数:1.00)45.有如下循环语句: for(inti=50;i20;i-=2)couti“,“; 程序运行时循环体的执行次数是 1。 (分数:2.00)46.以下程序执行后的输出结果是 1。 #include iostream.h main() int i,m=0,n=0,k=0; for(i=9;i=11;i+) switch(i/10) case 0:m+;n+;break; case 10: n+;break; default

22、:k+;n+; coutmnk; (分数:2.00)47.在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间 1 的信息。 (分数:2.00)48.表达式 x. operator( ) 还可写成 1 。 (分数:2.00)49.在 C+中,编译时的多态性是通过 1 和模板体现的。 (分数:2.00)50.数据管理技术发展过程经过人工管理、文件系统和数据库系统三个阶段,其中数据独立性最高的是 1阶段。 (分数:2.00)二级 C+-193 答案解析(总分:88.00,做题时间:90 分钟)一、选择题(总题数:35,分数:61.50)1.软件工程的出现是由于 _ 。(分数:2.0

23、0)A.程序设计方法学的影响B.软件产业化的需要C.软件危机的出现 D.计算机的发展解析:解析 软件工程的出现源自于软件危机。为了消除软件危机,通过认真研究解决软件危机的方法,认识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程的概念。2.有如下程序: #includeiostream using namespace std; class A public: A(int i):rl(i) void print()cout“E“r1“-“; void print()constcout“C“r1*r1“-“; private: int rl; ; int main() A al(2)

24、; const A a2(4); a1.print(); a2.print(); return 0; 运行时的输出结果是_。(分数:2.00)A.运行时出错B.E2-C16- C.C4-C16-D.E2-E4-解析:3.运算符重载是对已有的运算符赋予多重含义,因此_。(分数:1.00)A.可以对基本类型(如 int 类型)的数据,重新定义“+”运算符的含义B.可以改变一个已有运算符的优先级和操作数个数C.只能重载 C+中已经有的运算符,不能定义新运算符 D.C+中已经有的所有运算符都可以重载解析:解析 重载运算符的规则如下:C+不允许用户自己定义新的运算符,只能对已有的 C+运算符进行重载;C

25、+不能重载的运算符只有 5 个;重载不能改变运算符运算对象的个数;重载不能改变运算符的优先级和结合性;重载运算符的函数不能有默认的参数;重载的运算符必须和用户定义的自定义类型的对象一起使用,至少应有一个是类对象,即不允许参数全部是 C+的标准类型。故本题答案为C。4.下列关于虚基类的描述中错误的是(分数:2.00)A.虚基类子对象的初始化由最派生类完成B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关 C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用解析:解析 虚基类主要是为了消除在多重继承中的二义性问题。实际上,说某个类是

26、虚基类,并不是该类本身有什么特殊的地方,而是在继承的时候加上 virtual 修饰词。虚基类不同于抽象类,虚基类是可以被实例化的,派生类初始化时,必须列出虚基类的构造函数调用。虚基类对象的初始化次数只于对象的多少有关,与类的层次结构是没有关系的。故本题正确答案为 B。5.当使用 ofstream 流类定义一个流对象并打开一个磁盘文件时,文件的默认打开方式为_。(分数:2.50)A.ios base:inB.ios_base:binaryC.ios base:in|ios_base:outD.ios_base:out 解析:解析 对于 ifstream,默认打开模式是 ios_base:in。i

27、fstream 只能用于输入,不可用于输出。对于 ofstream,默认打开模式是 ios_base:out。ofstream 只能用于输出,不可用于输入。对于fstream,没有默认的打开模式,因此在打开文件时必须在 ios_base:in、ios_base:out 和ios_base:in|ios_base:out 这三种打开模式中指定一个。6.有如下两个类定义: class XX private: double x1; protected: double x2; public: double x3; ; class YY: protected XX private: double y1;

28、 protected: double y2; public: double y3; ; 在类 YY 中保护成员变量的个数是_。(分数:1.00)A.1B.2C.3 D.4解析:解析 本题考查保护继承中派生类对基类的访问属性,在受保护继承中,基类的公用成员和保护成员在派生类中成了保护成员,所以基类的成员 x2、x3 变成了保护成员,派生类中的 y2 也是保护成员,所以共有 3 个保护成员。本题答案为 C。7.有如下输出语句: coutsetw(5)fixedsetprecision(3)3.1415926; 此语句的输出结果是(分数:2.50)A.3.141B.3.142 C.3.1415D.3

29、.1416解析:8.下列关于类定义的说法中,正确的是_。(分数:2.00)A.类定义中包括数据成员和函数成员的声明 B.类成员的缺省访问权限是保护的C.数据成员必须被声明为私有的D.成员函数只能在类体外进行定义解析:类的成员的缺省访问权限是私有的,数据成员可以是私有,可以是公用的,也可以是受保护的。类的成员函数可以在类内定义。9.下列排序方法中,最坏情况下时间复杂度(即比较次数)低于 O(n 2 )的是_。(分数:1.00)A.快速排序B.简单插入排序C.冒泡排序D.堆排序 解析:解析 对长度为 n 的线性表排序,常用排序方法最坏情况的时间复杂度如下表所示 方法 最坏情况时间 冒泡排序 O(n

30、 2 ) 简单插入排序 O(n 2 ) 简单选择排序 O(n 2 ) 快速排序 O(n 2 ) 堆排序 O(nlog 2 n) 时间复杂度低于 O(n 2 )的排序算法是堆排序,故 D 选项正确。10.下列关于 C+流的描述中,错误的是_。(分数:2.00)A.cout“A表达式可输出字符 A B.eof()函数可以检测是否到达文件尾C.对磁盘文件进行流操作时,必须包含头文件 fstreamD.以 ios_base:out 模式打开的文件不存在时,将自动建立一个新文件解析:解析 cout 是一个标准输出流对象。称之为提取运算符,它的功能是从输入流中提取数据赋值给一个变量。为插入运算符,其功能是

31、把表达式的值插入到输出流中。当系统执行 coutx 操作时,首先根据 x 值的类型调用相应的插入运算符重载器函数,把 x 的值传送给对应的形参,接着执行函数体,把 x 的值输出到显示器屏幕上,在当前屏幕光标位置处显示出来,然后返回 ostream 流,以便继续使用插入运算符输出下一个表达式的值。对于本题来说,要输出字符A的值应该写成 cout“A“。因而选项 A 是错误的。11.算法的时间复杂度取决于_。(分数:2.50)A.问题的规模B.待处理的数据的初态C.问题的难度D.A 和 B 解析:解析 算法的时间复杂度不仅与问题的规模有关,在同一个问题规模下,而且与输入数据有关。即与输入数据所有的

32、可能取值范围、输入各种数据或数据集的概率有关。12.下列关于赋值运算符“=”重载的叙述中,正确的是_。(分数:2.00)A.赋值运算符只能作为类的成员函数重载 B.默认的赋值运算符实现了“深层复制”功能C.重载的赋值运算符函数有两个本类对象作为形参D.如果已经定义了复制(拷贝)构造函数,就不能重载赋值运算符解析:解析 赋值运算符“=”只能作为成员函数重载。13.有下列程序: #include stdio.h int b=2; int fun(int*k) b=*k+b;return(b); void main() int a10=1,2,3,4,5,6,7,8,i; for(i=2;i4;i+

33、)b=fun(ai)+b;printf (“%d“,b);) printf(“/n“); 程序运行后的输出结果是_。(分数:2.50)A.10 12B.8 10C.10 28 D.10 16解析:解析 在程序中子函数 fun(int* k)的作用是给静态全局变量加上形参*k 的值。在主函数中进行第一次 for 循环执行时,fun(a2l)的返回值为 5,所以 5+5=10,因而输出结果为 10,第二次 for 循环执行时,fun(a3)的返回值为 14,所以 14+14=28。14.下面说法正确的是_。(分数:1.00)A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B.内联函

34、数在编译时是将该函数的目标代码插入每个调用该函数的地方 C.类的内联函数必须在类体内定义D.类的内联函数必须在类体外通过加关键字 inline 定义解析:解析 内联函数用 inline 修饰,用于取代 C 语言中的宏定义。inline 是建议机制而不是强制机制,也就是说,程序员可以指定任意函数为 inhne 函数,但是编译器会根据系统情况来决定是否将其inline 处理。对于较大的函数,编译器往往会取消其 inline 特性。inline 函数的特点之一就是执行速度快,其实质是在编译时将函数的目标代码插入到每个调用该函数的地方,从而没有出栈入栈、保护现场等开销,提高了效率。在类体内定义的成员函

35、数,自动被编译器当做内联函数处理,在类体外定义的成员函数,如果用 inline 修饰,则编译器也认为是一种内联建议。15.有如下程序: #includeiostream using namespace std; class B public: viriual void show()cout“B“; ; class D:public B public: void show()cout“D“; ; void fun1(B*ptr)ptr-show(); void fun2(Bref)ref.show(); void fun3(B B)b.show(); int main() B b,*p=new

36、D; D d; funl(p); fun2(b); fun3(d); return 0: 程序的输出结果是_。(分数:1.00)A.BBBB.BBDC.DBB D.DBD解析:解析 本题考查的知识点是虚函数与多态性。在成员函数声明的前面加上 virtual 修饰,即把该函数声明为虚函数。在 C+中,一个基类指针(或引用)可以用于指向它的派生类对象,而且通过这样的指针(或引用)调用虚函数时,被调用的是该指针(或引用)实际所指向的对象类的那个重定义版本。故本题最终输出结果为 DBB。16.针对数组定义 int data10;,下列表述中错误的是(分数:1.00)A.用*data 可访问到数组的首元

37、素B.用 data9可访问到数组的末元素C.用 data10访问数组元素会超出数组边界D.data 共有 10 个元素,其首元素是 data1 解析:17.一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是_。(分数:1.00)A.一对一B.一对多C.多对多 D.多对一解析:解析 因为一个人可以操作多个计算机,而一台计算机又可以被多个人使用,所以两个实体之间是多对多的关系。18.假定 MyClass 为一个类,那么下列的函数说明中, _ 为该类的析构函数。(分数:2.50)A.voidMyClass();B.MyClass(int n);C.My

38、Class();D.MyClass(); 解析:解析 C+语言中析构函数为符号“”加类名,且析构函数没有返回值和参数,故前不加 void关键字。所以正确的形式应该是MyClass()。19.给出下面程序输出结果_。 #includeiostream.hvoid main() int *p1; int *p2= int b=20; p1= cout*p2endl; (分数:2.50)A.10B.20 C.40D.30解析:解析 p1 指向 b,而 p 指向 p1 的地址。*p2 表示 p1 的地址,p1 的地址就是char a;double c; public: MyClass():c(0.0)

39、,b(0),a(“,“) ; 创建这个类的对象时,数据成员的初始化顺序是_。(分数:2.00)A.a,b,cB.c,b,aC.b,a,c D.c,a,b解析:解析 类的成员初始化顺序与成员变量在构造函数中的位置先后顺序无关,只与成员变量在类中定义的先后顺序有关。21.有三个关系 R、S、T 如下: (分数:1.00)A.自然连接B差 C交D并解析:解析 由结果集可知:R-S=T。22.有如下程序: #includeiostream using namespace std; class Base int x; public: Base(int n=0): x(n) coutn; int getX

40、()const return x; ; class Derived: public Base int y; public: Derived(int m, int n): y(m), Base(n) coutm; Derived(int m): y(m) coutm; ; int main() Derived d1(3), d2(5, 7); return 0; 执行这个程序的输出结果是_。(分数:1.00)A.375B.357C.0375 D.0357解析:解析 本题考查派生类的构造函数和析构函数,在定义一个派生类的对象时,先调用基类的构造函数,然后再执行派生类的构造函数,对象释放时,先执行派

41、生类的析构函数,再执行基类的析构函数。本题中定义了一个对象 d1,先执行基类的构造函数输出 0,再执行派生类的构造函数输出 3,然后定义了一个对象 d2(5, 7),其中需要调用基类的构造函数输出 7,最后输出 5,所以答案为 C。23.下列说法中错误的是 _ 。(分数:2.00)A.公有继承时基类中的 public 成员在派生类中仍是 public 成员B.私有继承时基类中的 protected 成员在派生类中仍是 protected 成员 C.私有继承时基类中的 public 成员在派生类中仍是 private 成员D.保护继承时基类中的 public 成员在派生类中仍是 protecte

42、d 成员解析:解析 此题考查的是派生类中的访问权限。继承方式包括公有、保护和私有派生。私有继承时基类中的 protected 成员在派生类中变成了 private 成员,所以选项 B 错误。24.下面程序的输出结果是_。 #includeiostream.h #includestring.h void main() char p110,p210; strcpy(p1,“abc“); strcpy(p2,“ABC“); char str50=“xyz“; strcpy(str+2,strcat(p1,p2); coutstr; (分数:1.00)A.xyzabcABCB.zabcABCC.xya

43、bcABC D.yzabcABC解析:解析 该函数的调用方式是 strcpy(字符数组,字符串),其中字符串可以是串常量,也可以是字符数组。函数的功能是将字符串完整地复制到字符数组中,字符数组中原有内容被覆盖。使用该函数时注意:字符数组必须定义得足够大,以便容纳复制过来的字符串,复制时,连同结束标志/0 一起复制;连接前两个字符串都有结束标志“/0“,连接后“符数组“中存储的字符串的结束标志“/0“被舍弃,只在目标串的最后保留一个“/0“;不能用赋值运算符=将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理,strcat(字符数组,字符串)的功能是把字符串连接到字符数组中的字

44、符串尾端,并存储于字符数组中,字符数组中原来的结束标志,被字符串的第一个字符覆盖,而字符串在操作中未被修改。25.下列控制格式输入/输出的操作符中,能够设置浮点数精度的是_。(分数:1.00)A.setprecision B.setwC.setfillD.showpoint解析:解析 iomanip 中定义的操纵符包括:setfill(ch)用 ch 填充空白、setprecision(n)将浮点精度置为 n、setw(w)、读写 w 个字符的值 showpoint 设置小数点。26.C+中,由类 istream 和类 ostream 而派出的一个类 _ ,它提供双向 I/O 操作。(分数:1

45、.00)A.iostream B.fstreamC.strstreamD.istream解析:27.若在表达式 y/x 中,“/“是作为成员函数重载的运算符,则该表达式还可以表示为_。(分数:2.00)A.operator/(y)B.operator/(x,y)C.operator/(x) D.operator/(y,x)解析:解析 运算符函数的函数名是由运算符前加关键字 operator 构成的。所以当“/”作为运算符重载后,其格式为 operator/。所以其作为成员函数调用时的格式为 y.operator/(x)。28.派生类的成员函数不能访问基类的_。(分数:2.50)A.共有成员和保

46、护成员B.共有成员C.私有成员 D.保护成员解析:解析 类的私有成员,只能自己内部访问,外部不能直接访问。不管何种继承方式,派生类都不能直接访问基类的私有成员。29.若有如下程序: #includeiostream using narnespace std; class TestClass public: void who()cout“TestClass“endl; ; class TestClassl: public TestClass public: void who()cout“TestClass1“endl; int main() TestClass*p; TcstClass1 obj

47、1; p=obj1; p-who(); return 0; 则该程序运行后的输出结果是_。(分数:1.00)A.TestClassl B.TestClassC.0D.无输出解析:解析 程序中的 TestClassl 为 TestClass 的派生类,主函数 maln 中定义 TestClass 对象*p,TestClass1 对象 obj1,然后 p 引用 obj1,执行 p-who()则是调用基类中的 who 函数,输出TestClass。30.下面有关类模板的说法中不正确的是 _ 。(分数:2.00)A.类模板的成员函数都是模板函数B.类模板本身在编译中不会生成任何代码C.类模板只是虚拟类型的参数 D.用类模板定义一个对象时,不能省略实际参数解析:解析

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

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

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