【计算机类职业资格】二级C++-193及答案解析.doc
《【计算机类职业资格】二级C++-193及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++-193及答案解析.doc(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)
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 C193 答案 解析 DOC
