资源预览内容
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
19春学期(1709、1803、1809、1903)面向对象程序设计在线作业-0002试卷总分:100 得分:100一、 单选题 (共 35 道试题,共 70 分)1.已知函数原型:void f(int a, int b=3,char c=*); 则下面的函数调用中,不合法的调用是()。A.f(5)B.f(5,8)C.f(6, , #)D.f(0,0, #)正确答案:C2.以下为重载函数的一组函数声明的是()。A.void print(int); void print(double);B.void fun(int); int fun(int);C.int max(int,int); int min(int,int);D.void mm(); int mm();正确答案:A3.关于抽象类, 下列表述正确的是( )。A.抽象类的成员函数中至少有一个没有实现的函数(即无函数体定义的函数)B.派生类必须实现作为基类的抽象类中的纯虚函数C.派生类不可能成为抽象类D.抽象类不能用于定义对象正确答案:D4.基类的()在私有继承时在派生类中为私有成员函数,在公有和保护继承时在派生类中为保护成员函数。A.私有成员函数B.保护成员函数C.公有成员D.保护数据成员正确答案:B5.包含类fstream定义的头文件是( )。A.fstreamB.ofstreamC.ifstreamD.iostream正确答案:A6.关于函数模板,描述错误的是( )。A.函数模板必须由程序员实例化为可执行的函数模板B.函数模板的实例化由编译器实现C.一个类定义中,只要有一个函数模板,则这个类是类模板D.类模板的成员函数都是函数模板正确答案:A7.动态联编所支持的多态性是( )。A.虚函数B.继承C.编译时的多态性D.运行时的多态性正确答案:D8.下列关于成员访问权限的描述中,不正确的是( )。A.公有数据成员和公有成员函数都可以通过类对象直接访问B.类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问C.保护成员在派生类中可以被访问,而私有成员不可以D.类或派生类的成员函数可以访问保护成员正确答案:B9.假定MyClass为一类,执行MyClass a,b(2),*p2;语句时会自动调用该类构造函数()次。A.2B.3C.4D.5正确答案:A10.在类定义的外部,可以被访问的成员有( )。A.所有类成员B.private或protected的类成员C.public的类成员D.public或private的类成员正确答案:C11.下列说法中错误的是( )。A.公有继承时基类中的public成员在派生类中是public的B.公有继承时基类中的private成员在派生类中是不可访问的C.私有继承时基类中的public成员在派生类中是private的D.私有继承时基类中的public成员在派生类中是protected的正确答案:D12.在一个类中,可以对一个操作符进行()重载。A.1种B.2种C.3种D.多种正确答案:D13.对于拷贝构造函数,正确的描述是()。A.在C+语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数B.必须为每个类定义拷贝构造函数C.如果要使用拷贝构造函数,则必须在类中先定义D.当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数正确答案:A14.在C+中,通过()的机制可以对原有的类进行扩充和完善以适应新的需要。A.继承B.封装C.多态D.重载正确答案:A15.下列关于成员函数特征的描述中,错误的是( )。A.成员函数一定是内联函数B.成员函数可以重载C.成员函数可以设置参数的默认值D.成员函数可以是静态的正确答案:A16.下面关于构造函数和析构函数的描述,错误的是()。A.析构函数中调用虚函数采用静态联编B.对虚析构函数的调用可以采用动态联编C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D.构造函数可以声明为虚函数正确答案:D17.运算符重载的目的是()。A.提高程序的效率B.提高代码复用能力C.简化程序,减少目标代码D.使程序代码直观易读正确答案:D18.在一个C+源文件中使用了cin和cout,那么在这个源文件中必须包含()文件。A.iostreamB.fstreamC.stdio.hD.stdlib.h正确答案:A19.下列关于运算符重载的描述中,正确的是()。A.运算符重载可以改变操作数的个数B.运算符重载可以改变运算符的优先级C.运算符重载可以改变运算符的结合性D.运算符重载可以使运算符实现特殊功能正确答案:D20.运算符delete删除一个动态对象时( )。A.首先为该动态对象调用构造函数,再释放其占用的内存B.首先释放该动态对象占用的内存,再为其调用构造函数C.首先为该动态对象调用析构函数,再释放其占用的内存D.首先释放动态对象占用的内存,再为其调用析构函数正确答案:C21.已知AA是一个类,则执行语句AA a;后( )。A.自动调用无参构造函数B.自动调用有参构造函数C.自动调用拷贝构造函数D.产生一个对象a,但不调用任何函数正确答案:A22.已知X类,则当程序执行到语句 X array3; 时,调用了( )次构造函数。A.0B.1C.2D.3正确答案:D23.在保护继承中,基类中的私有成员作为派生类的()。A.公有成员B.私有成员C.保护成员D.不可访问正确答案:D24.已知类X中的一个成员函数说明如下: Void Set(X &a); 其中,X &a的含义是( )。A.a是指向X类对象的指针,用来作为Set()的形参B.将a的地址传递给Set()函数C.a是X类对象的引用,用来做为Set()的形参D.以上都不对正确答案:C25.变量的引用,其含义是指该变量的()。A.值B.类型C.别名D.地址正确答案:C26.下面说法中正确的是( )。A.当声明的内容不同时,声明同一个名字的两个类是允许的B.不完全声明的类也可以实例化C.声明同一个名字的两个类时,要求声明的内容也相同D.声明同一个名字的两个类是错误的正确答案:D27.关于动态关联的下列叙述中,()是错误的。A.动态关联是以虚函数为基础的B.动态关联调用虚函数操作是指向对象的指针或引用C.动态关联是在运行时确定所调用的函数代码的D.动态关联是在编译时确定操作函数的正确答案:D28.多继承的构造函数顺序可分为如下4步: 所有非虚基类的构造函数按照它们被继承的顺序构造。 所有虚基类的构造函数按照它们被继承的顺序构造。 所有子对象的构造函数按照它们声明的顺序构造。 派生类自己的构造函数体 这四个步骤的正确顺序是()。A.B.C.D.正确答案:C29.多态调用是指( )。A.以任何方式调用一个虚函数B.以任何方式调用一个纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数D.借助于指向对象的基类指针或引用调用一个纯虚函数正确答案:C30.对于任意一个类,析构函数的个数最多为( )。A.0B.1C.2D.3正确答案:B31.下列虚基类的声明中,正确的是()。A.class virtual B:public AB.virtual class B:public AC.class B: public A virtualD.class B: virtual public A正确答案:D32.若一个类中含有纯虚函数,则该类称为( )。A.基类B.纯基类C.派生类D.抽象类正确答案:D33.下列( )不是构造函数的特征。A.构造函数的函数名与类名相同B.构造函数可以重载C.构造函数可以设置默认参数D.构造函数必须指定类型说明正确答案:D34.下列程序中说明的公有成员是( ) class Location int X; public: void init(int initX,int initY); private: int Y; public: int GetX(); int GetY(); ;A.XB.init(int initX,int initY)C.GetX(),GetY()D.B和C都是正确答案:D35.要在类对象上使用运算符,以下不用必须被重载的运算符是()。A. B.=C.+D.-正确答案:B二、 判断题 (共 15 道试题,共 30 分)1.一个类的静态数据成员被该类的所有对象共享。A.错误B.正确正确答案:B2.C语言中scanf命令在c+中改用cin。A.对B.错正确答案:A3.使用关闭文件函数close()关闭一个文件时,但流对象仍存在。A.对B.错正确答案:A4.程序设计过程是指编写程序的过程。A.对B.错正确答案:B5.定义重载函数时,应保证函数类型有所不同。A.对B.错正确答案:B6.一个抽象类的派生类可以用于创建对象。A.对B.错正确答案:B7.在C+程序中,有且仅能有一个主函数,且其函数名必须是main。A.错误B.正确正确答案:B8.在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。A.错误B.正确正确答案:A9.函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。A.对B.错正确答案:A10.a为MyClass类对象,“static void SetRate(double r).”是MyClass类的静态成员函数,则执行语句“a.SetRate(0.05);”时,SetRate成员函数中的this指针指向对象a的地址。A.错误B.正确正确答案:A11.C+基类中,不能被派生类继承的有构造函数和析构函数。A.对B.错正确答案:A12.C语言中printf命令在c+中改用cin。A.对B.错正确答案:B13.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: AB operator+(AB &,AB &);A.错误B.正确正确答案:A14.类模板可以生成若干个模板类,每个模板类又可定义若干个对象。A.对B.错正确答案:A15.一般将C+中的类声明和类实现分别放到两个文件中。A.对B.错正确答案:A
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号