南工程c++考试试卷.doc_第1页
南工程c++考试试卷.doc_第2页
南工程c++考试试卷.doc_第3页
南工程c++考试试卷.doc_第4页
南工程c++考试试卷.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、选择题1、C+语言相对于C语言的最根本的变化是( )。A、增加了一些新的运算符 B、允许函数重载,并允许设置缺省参数C、规定函数说明符必须用原型 D、引进了类和对象的概念2、对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制 属性的是( )。A、公有类型 B、私有类型 C、保护类型D、友元类型3、如有类声明:class Myclass int data; ;则Myclass类的成员data是( )。A、公有数据成员B、公有成员函数 C、私有数据成员 D、私有成员函数4、在下面的函数声明中,( )是“void BC(int a,int b)”的重载函数。 A、int BC(int a,int b) B、void BC(int a , char b)C、float BC(int a ,int b,int c=0) D、void BC(int a , int b=0)5、下列说法正确的是( )。A、内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B、内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方C、类的内联函数必须在类体内定义D、类的内联函数必须在类体外通过加关键字inline定义6、下列各种函数中,( )不是类的成员函数。 A、构造函数 B、析构函数 C、友元函数 D、复制构造函数7、下面对静态数据成员的描述中,正确的是( )。A、静态数据成员可以在类体内进行初始化 B、静态数据成员不可以被类的对象调用C、静态数据成员不能受private控制符的作用 D、静态数据成员可以直接用类名调用8、假定Myclass是一个已定义好的类,则执行Myclass obj1,obj22,*p; 语句时,会自动调用该类构造函数( )次。A、1 B、2 C、3 D、49、在下列函数原型中,可以作为类AA构造函数的是( )。 A、void AA(int); B、int AA( ); C、AA(int)const; D、AA(int);10、对于任意一个类,析构函数的个数最多为( )。A、0 B、1 C、2 D、311、在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是( )。A、友元函数B、虚函数 C、构造函数 D、析构函数12、类example 的析构函数声明为( )。A、example() B、example(); C、example() D、example();13、友元的作用是( )。A、提高程序的运用效率 B、加强类的封装性 C、实现数据的隐藏性 D、增加成员函数的种类14、如果已定义了一个类Myclass,那么定义一个指向该类对象的指针变量的形式是( )。A、myclass *pt B、myclass pt* C、Myclass *pt D、Myclass pt* 15、如果已定义了一个类Myclass,那么定义一个常对象的形式是( )。 A、Myclass const mobj B、Myclass mobj const C、Myclass CONST mobj D、Myclass mobj CONST16、已知print()函数是一个类的常成员函数,它无返回值,下列表示中()是正确的。A、void print() const B、const void print()C、viod const print() D、void print(const)17、假定Myclass是一个已定义好的类,则该类的复制构造函数的声明语句为( )。A、Myclass(const Myclass x); B、Myclass&(const Myclass x);C、Myclass(const Myclass &x); D、Myclass(const Myclass *x);18、下面有关对象的赋值和对象的复制说法错误的是( )。A、如果一个类定义了两个或多个对象,则这些同类对象之间可以互相赋值。B、在复制一个新对象时会调用复制构造函数。C、对象的复制是从无到有地建立一个新对象,并使它与一个已有的对象完全相同。D、对象的赋值不仅可以对其中的数据成员赋值,还可以对其中的成员函数赋值。19、如果有类的定义如下:class Box int length,width,height;public: Box(int l,int w,int h)length=l;width=w;height=h;那么定义对象数组时对每个元素初始化正确的形式如下( )。A、 Box b2=1,2,3,4,5,6; B、Box b2=1,2,3,4,5,6;C、 Box b2=Box(1,2,3,4,5,6); D、Box b2=Box(1,2,3),Box(4,5,6);20、在表达式 x+y*z中,如果 + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。下列叙述中正确的是( )。A、operator+有两个参数,operator*有两个参数B、operator+有两个参数,operator*有一个参数C、operator+有一个参数,operator*有两个参数D、operator+有一个参数,operator*有一个参数21、下列运算符中,( )是不能重载的。A、 B、+ C、 : D、=22、在C+语言类体系中,不能被派生类继承的有( ) 。 A、转换函数 B、构造函数 C、虚函数 D、静态成员函数23、派生类的成员函数对它基类中的( )是不可以访问的。A、保护继承的公有成员 B、公有继承的私有成员 C、公有继承的保护成员 D、公有继承的公有成员24、表达式y=operator+(x,int)还可以表示为( )。A、y=+x B、+x C、x+ D、y=x+25、下面叙述中( )不符合赋值兼容规则。A、派生类的对象可以赋值给基类的对象B、基类的对象可以赋值给派生类的对象C、派生类的对象可以初始化基类的引用D、派生类的对象的地址可以赋值给指向基类的指针26、虚拟继承的目的是( )。A、实现多态 B、提高运行效率 C、消除二义性 D、增加可读性27、成为抽象类的一个条件是这个类( )。A、至少有一个纯虚函数 B、至少有一个虚函数C、只含有一个纯虚函数 D、只含有一个虚函数28、C+处理异常的机制是由三部分组成的,以下不是其组成的是( )。 A、check B、try C、throw D、catch29、对磁盘文件进行操作时需要包含( )头文件。A、iostream.h B、fstream.h C、string.h D、stdlib.h30、在ios中提供控制格式的标志位中,( )是转换为十六进制形式的标志位。A、hexB、oct C、dec D、left二、按要求完成程序1、将下面的程序除函数main()外封装成一个Mytime类,并将函数main()进行相应的改写。#includeusing namespace std;struct time int hour,minute,second;void settime(struct time &t,int h,int m,int s)t.hour=h;t.minute=m;t.second=s;void Printtime(struct time t) coutt.hour:t.minute:t.second;int main()struct time t; settime(t,1,12,12);Printtime(t);return 0;2、以下程序是有错的,请修改程序,但不能破坏类的封装性。修改后能够完成该程序预想完成的任务。class Mprivate: int x;public:set(int a)x=a;int main() M m; m.set(2); coutm.xendl;/x : cannot access private member declared in class M3、将下面类的定义中的对数据成员初始化的成员函数改为用构造函数来实现。并对主函数也做相应修改,使其能正确运行。class Myclassprivate: int x,y;public:void set_value(int a,int b)x=a;y=b;void show()coutx,yendl;int main() Myclass m; m.set_value(2,3); m.show();三、阅读程序说明:以下程序中 #include using namespace std;均省缺点程序1:class Test public: Test( ) n+=2; Test( ) n-=3; static int getNum( ) return n; private: static int n;int Test:n = 1;int main( ) Test* p = new Test; delete p; cout n= Test:getNum( ) endl; return 0;程序2:class Myclasspublic: Myclass(int,int); Myclass(int); Myclass(); void display(); private: int x,y; ;Myclass:Myclass(int a,int b):x(a),y(b) Myclass:Myclass(int a):x(a)y=10;Myclass:Myclass()x=20;y=10;void Myclass:display()coutx=xy=yendl;int main() Myclass m1(100,200); Myclass m2(100); Myclass m3; m1.display(); m2.display(); m3.display(); return 0;程序3:class A public: A( ) cout A; ;class B public: B( ) cout B; ;class C : public A B b;public: C( ) cout C; ;int main( ) C obj; return 0; 程序4:class baseprotected:int a;public:base() cout0;class base1: virtual public basepublic:base1()cout1;class base2: virtual public basepublic:base2()cout2;class derived:public base1,public base2public:derived()cout3;void main()derived obj; 四、编程题1、设计一个日期类Date,其中数据成员有:year、month、day,要求定义一个构造函数对数据初始化,定义

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论