【计算机类职业资格】二级C++分类模拟274及答案解析.doc
《【计算机类职业资格】二级C++分类模拟274及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C++分类模拟274及答案解析.doc(19页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C+分类模拟 274及答案解析(总分:77.50,做题时间:90 分钟)一、选择题(总题数:40,分数:77.50)1.有如下程序: #includeiostream using namespace std; class TlestClass int n; public: TestClass(int k):n(k) int get()return n; int get()constreturn n+1; ; int main() TestClass p(5); const TestClass q(6); coutp.get()q.get(); return 0; 执行后的输出结果是_。(
2、分数:2.50)A.55B.57C.75D.772.在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用”括起时,寻找被包含文件的方式是(分数:2.00)A.直接按系统设定的标准方式搜索目录B.先在源程序所在的目录搜索,再按系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录3.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符C.这是一个成员函数D.这个函数不改变类的任何数据成员的值
3、4.若 MyClass是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass 上面的语句序列所定义的类对象的个数是_。(分数:2.00)A.1B.2C.3D.45.下列关于函数模板的描述中,正确的是_。(分数:1.00)A.函数模板是一个实例函数B.使用函数模板定义的函数没有返回类型C.函数模板的类型参数与函数的参数相同D.通过使用不同的类型参数,可以从函数模板得到不同的实例函数6.以下程序的输出结果是 _ 。 #includeiostream.h void func(char*m) +m: cout*mend1; voi
4、d main() static char*a=“MORNING“,“AFTERTOON“,“EVENING“; char*n: n=a; func(n); (分数:1.00)A.为空B.MORNINGC.AFTERTOOND.EVENING7.有如下程序: #includeiostream using namespace std; class B public: virtual void show( )cout“B“; ; class D:public B public: void show( )cout“D“; ; void funl(B*ptr)ptr-show( ); void fun2
5、(B class B:public A public: void func1()cout“class B fune 1“endl; virtual void func2()cout“class B func 2“endl; ; 下面正确的叙述是()。(分数:1.00)A.A:func2()和 B:func1()都是虚函数B.A:func2()和 B:func1()都不是虚函数C.B:funcl()是虚函数,而 A:func2()不是虚函数D.B:func1()不是虚函数,而 A:func2()是虚函数9.若要对类 BigNumber中重载的类型转换运算符 long进行声明,下列选项中正确的是_
6、。(分数:2.50)A.operator long()const;B.operator long(BigNumber);C.long operator long()const;D.long operator long(BigNumber);10.在下面程序中,编译时出现错误的是 _。 Class A /(1) public: /(2) A() f(); /(3) void B() f(); virtual void f()const=0; /(4) ;(分数:2.00)A.(1)B.(2)C.(3)D.(4)11.将 x+y*z中的“+”用成员函数重载,“*”用友元函数重载应写为_。(分数:2
7、.50)A.operator+(operator*(y,z)B.operator+(operator*(y,z)C.operator+(x*(y,z)D.x+(operator*(y,z)12.有如下函数定义: void func(int a,intb+; 若执行代码段: int x=0,y=1 func(x,y); 则变量 x和 y值分别是_。(分数:2.50)A.0和 1B.1和 1C.0和 2D.1和 213.在重载一个运算符函数时,其参数表中没有任何参数,这说明该运算符是_。(分数:3.00)A.一元非成员运算符B.一元成员运算符C.二元非成员运算符D.二元成员运算符14.对于循环队列
8、,下列叙述中正确的是_。(分数:2.50)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针15.编译时的多态性可以通过使用 _ 获得。(分数:1.00)A.虚函数和指针B.重载函数和析构函数C.虚函数和对象D.虚函数和引用16.存取指针所指的值时,采用的运算符是_。(分数:2.50)A.#B.C.%D.*17.在开发一个 C+程序的整个过程中,第 3个步骤为_。(分数:2.50)A.链接B.运行C.编辑D.编译18.单个用户使用的数据视图的描述称为(分数:1.00)A.外模式B.概念模式C.内模式D.存储模式19.
9、有如下类定义: class Point private: static int how_many; ; _how_many=0; 要初始化 Point类的静态成员 how_many,下画线处应填入的内容是_。(分数:1.00)A.intB.static intC.int Point:D.static int Point:20.有如下程序: #includeiostream using namespace std; class Media public: void Name(); void Show(); protected: int page; ; class Book:private Med
10、ia public: void Print() coutpageendl; void Show()Media:Show();) / ; int main() Book Bible; Bible.Name(); / Bible.Print(); / Bible.Show(); / return 0; 编译时有错误的是_。(分数:2.00)A.语句B.语句C.语句D.语句21.下列程序的运行结果为_。 # includeiostream.h templateclass TT class FF TT a1,a2,a3; public: FF(TT b1,TT b2,TT b3)a1=b1;a2=b2
11、;a3=b3; TT Sum()return a1+a2+a3;); void main() FFintx(int(1.1),2.3),y(int(4.2),5,6); coutx.Sum()“y.Sum()encIl;(分数:2.50)A.6.1 15.2B.6 15C.6 15.2D.6.1 1522.有如下程序: class Base public: int data; ; class Derivedl: public Base ; class Derived2: protected Base ; int main() Derivedl d1; Derived2 d2; d1. data
12、=0;/ d2. data=0;/ return 0; 下列关于程序编译结果的描述中,正确的是_。(分数:1.00)A.皆无编译错误B.有编译错误,无编译错误C.无编译错误,有编译错误D.皆有编译错误23.下列关于运算符重载的叙述中,正确的是_。(分数:2.50)A.通过运算符重载机制可以为 C+语言扩充新的运算符B.运算符重载的作用是使已有的运算符作用于类的对象C.重载运算符的操作数类型可以全部为基本类型D.所有运算符都可以被重载24.在每个 C+程序中必须有且仅有一个_。(分数:2.50)A.函数B.主函数C.预处理指令D.语句25.下列函数声明中,错误的是_。(分数:2.00)A.voi
13、d fun(int x=0,int y=0);B.void fun(int x,int y=0);C.void fun(int x=0,int y);D.void fun(int x,int y);26.若有定义语句“double x5=10,2.0,3.0,4.0,5.0,* p=x”,则错误引用 x数组元素的是_。(分数:2.50)A.*pB.x5C.*(p+1)D.*x27.如果派生类以 protected方式继承基类,则原基类的 protected成员和 public成员在派生类中的访问属性分别是_。(分数:1.00)A.public和 publicB.public和 protecte
14、dC.protected和 publicD.protected和 protected28.在对函数进行原型声明时,下列语法成分中,不需要的是_。(分数:2.00)A.函数返回类型B.函数参数列表C.函数名D.函数体29.在类中重载赋值运算符时,应将其声明为类的_。(分数:2.00)A.静态函数B.友元函数C.成员函数D.构造函数30.下列叙述中正确的是(分数:2.00)A.循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.循环队列中元素的个数是由队头指针和队
15、尾指针共同决定的31.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准则是模块的 _ 。(分数:2.00)A.抽象和信息隐蔽B.局部化和封装化C.内聚性和耦合性D.激活机制和控制方法32.以下定义数组中错误的是(分数:2.00)A.int a10;B.int a2120;C.int a20;D.int a;33.下列关于虚基类的描述中错误的是(分数:2.00)A.虚基类子对象的初始化由最派生类完成B.虚基类子对象的初始化次数与虚基类下面的派生类个数有关C.设置虚基类的目的是消除二义性D.带有虚基类的多层派生类构造函数的成员初始化列表中都要列出对虚基类构造函数调用34.已知类 A有公
16、用数据成员 a,并重载了“”运算符,且有 A obj2;const A*ptr new A;则下列语句错误的是 _ 。(分数:2.00)A.ptr-a=100;B.ptr=C.ptr+;D.obj2=*ptr;35.有如下程序: #includeiostream using namespace std; class Base public: void fun1()cout“Baseha/n“; virtual void fun2()cout“Base/n“; ; class Derived:public Base public: void fun1()cout“Derived/n“; void
17、 fun2()cout“Derived/n“; ; void f(Baseb.fun2(); int main() Derived obj; f(obj); return 0; 执行这个程序的输出结果是_。(分数:2.00)A.BaseBaseB.BaseDerivedC.DerivedBaseD.DerivedDerived36.若调用一个函数,且此函数中没有 return语句,则正确的说法是该函数 _ 。(分数:1.00)A.没有返回值B.返回若干个系统默认值C.有返回值,但返回一个不确定的值D.返回一个用户所希望的函数值37.若有如下程序: #includeiostream using
18、namespace std; class TestClass public: void who() cout“TestClass“endl; ; class TestClass1:public TestClass public: void who()cout“TestClass1“endl; ; int main() TestClass *p; TcstClass1 obj1; p= p-who(); return 0; 则该程序运行后的输出结果是 _ 。(分数:2.00)A.TestClass1B.TestClassC.0D.无输出38.己知基类 Employee只有一个构造函数,其定义如下
19、: Employee:Employee(int n):id(n) Manager是 Employee的派生类,则下列对 Manager的构造函数的定义中,正确的是_。(分数:2.00)A.Manager:Manager(int n):id(n)B.Manager:Manager(int n)id=n;C.Manager:Manager(int n):Employee(n)D.Manager:Manager(int n)Employee(n);39.设置虚基类的目的是 _ 。(分数:2.00)A.简化程序B.消除二义性C.提高运行效率D.减少目标代码行40.下列有关继承和派生的叙述中,正确的是_
20、。(分数:3.00)A.如果一个派生类私有继承其基类,则该派生类对象不能访问基类的保护成员B.派生类的成员函数可以访问基类的所有成员C.基类对象可以赋值给派生类对象D.如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类二级 C+分类模拟 274答案解析(总分:77.50,做题时间:90 分钟)一、选择题(总题数:40,分数:77.50)1.有如下程序: #includeiostream using namespace std; class TlestClass int n; public: TestClass(int k):n(k) int get()return n; int ge
21、t()constreturn n+1; ; int main() TestClass p(5); const TestClass q(6); coutp.get()q.get(); return 0; 执行后的输出结果是_。(分数:2.50)A.55B.57 C.75D.77解析:解析 C+中对常对象的成员函数调用,将自动调用其常成员函数,程序中调用原型为“int get()const;“的函数,对于非常对象将调用原型为“int get();“的函数。因为首先用 5对对象 p进行了初始化,所以执行 p.get()时直接返回 5,而对于常对象则以 6对 q进行初始化。在调用 q.get()时,将
22、调用原型为“int get()const;“的函数,该函数将返回 n+1,第二个输出应为 7,所以本题答案为 57。2.在“文件包含”预处理语句的使用形式中,当#include 后面的文件名用”括起时,寻找被包含文件的方式是(分数:2.00)A.直接按系统设定的标准方式搜索目录 B.先在源程序所在的目录搜索,再按系统设定的标准方式搜索C.仅仅搜索源程序所在目录D.仅仅搜索当前目录解析:解析 本题考查在 include中采用不同的符号,如或“,编译器搜索方式的不同。3.已知在一个类体中包含如下函数原型:VOLUMEOPER ATOR-(VOLUME)const;,下列关于这个函数的叙述中,错误的
23、是_。(分数:1.00)A.这是运算符一的重载运算符函数B.这个函数所重载的运算符是一个一元运算符 C.这是一个成员函数D.这个函数不改变类的任何数据成员的值解析:解析 本题考核运算符的重载。题中语句为运算符一这是一个二元运算符,且是作为常成员函数来重载的,所以它不能更新对象的数据成员,也不能调用该类中没有用 const修饰的成员函数。4.若 MyClass是一个类名,且有如下语句序列 MyClass c1,*c2; MyClass *c3=new MyClass; MyClass 上面的语句序列所定义的类对象的个数是_。(分数:2.00)A.1B.2C.3 D.4解析:解析 C1、*C2、C
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 分类 模拟 274 答案 解析 DOC
