最新消息:可做奥鹏等各院校作业论文,答案请联系QQ/微信:18866732

【奥鹏】南开21秋学期《面向对象程序设计》在线作业

21秋学期(1709、1803、1809、1903、1909、2003、2009、2103)《面向对象程序设计》在线作业

试卷总分:100  得分:100

一、单选题 (共 35 道试题,共 70 分)

1.撤消对象时,系统自动调用( )函数。

A.成员函数

B.构造函数

C.析构函数

D.普通函数

 

2.在一个类中,可以对一个操作符进行()重载。

A.1种

B.2种

C.3种

D.多种

 

3.下面函数原型声明中,( )声明了fun为纯虚函数。

A.void fun()=0;

B.virtual void fun()=0;

C.virtual void fun();

D.virtual void fun(){};

 

4.对于任意一个类,析构函数的个数最多为( )。

A.0

B.1

C.2

D.3

 

5.下列表示引用的方法中,( )是正确的。 已知:int k=1000;

A.int &x=k;

B.char &y;

C.int &z=1000;

D.float &t=&k;

 

6.抽象类的作用主要是()。

A.直接用作基类

B.直接用作指针

C.引用的基类型

D.包括以上各项

 

7.下面关于构造函数和析构函数的描述,错误的是()。

A.析构函数中调用虚函数采用静态联编

B.对虚析构函数的调用可以采用动态联编

C.当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数

D.构造函数可以声明为虚函数

 

8.由于数据隐藏的需要,静态数据成员通常被说明为( )。

A.私有的

B.公有的

C.保护的

D.不可访问的

 

9.下列关于赋值运算符重载的说法中正确的是()。

A.返回值一般是以引用方式返回的对象,而函数体中总是用语句“return *this;”返回this指针所指向的对象

B.赋值运算符只能以非成员函数的方式重载

C.赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载

D.以上均不正确

 

10.对于类定义 class A{ public: virtual void funcl(){} void func2(){} }; class B:public A{ public: void func1(){cout<<“class B func1″<<endl;} virtual void func2(){cout<<“class B func2″<<endl;} };下面正确的叙述是( )。

A.A::func2()和B::func1()都是虚函数

B.A::func2()和B::func1()都不是虚函数

C.B::func1()是虚函数,A::func2()不是虚函数

D.B::func1()不是虚函数,A::func2()是虚函数

 

11.下列引用的定义中,( )是错误的。

A.int i; int &j=i;

B.int i; int &j; j=i;

C.float i; float &j=i;

D.char d; char &k=d;

 

12.一个( )允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值可以取任意数据类型。

A.函数模板

B.模板函数

C.类模板

D.模板类

 

13.()是一个在基类中说明虚函数,它在该基类中没有定义,但要求任何派生类中的可访问性的规定是相同的。

A.纯虚函数

B.虚析构函数

C.虚构造函数

D.静态成员函数

 

14.下列静态数据成员的特性中,( )是错误的。

A.说明静态数据成员时前边要加关键字static来修饰

B.静态数据成员在类体外进行初始化

C.引用静态数据成员时,要在静态数据成员名前加和作用域运算符

D.静态数据成员不是所有对象所共有的

 

15.当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的( )。

A.public成员

B.private成员

C.protected成员

D.友元奥鹏作业答案请进open5.net或请联系QQ/微信:18866732

 

16.若一个类中含有纯虚函数,则该类称为( )。

A.基类

B.纯基类

C.派生类

D.抽象类

 

17.声明一个类的对象时,系统自动调用( )函数。

A.成员函数

B.构造函数

C.析构函数

D.普通函数

 

18.关于纯虚函数和抽象类的描述中,错误的是()。

A.纯虚函数是一种特殊的虚函数,它没有具体的实现。

B.抽象类是指具有纯虚函数的类。

C.一个基类中有纯虚函数,该类的派生类一定不再是抽象类。

D.抽象类作为基类来使用,其纯虚函数的实现由派生类给出。

 

19.使用string类,必须在程序中包含头文件()。

A.string.h

B.string

C.cstring.h

D.cstring

 

20.交换两个string类对象所表示的字符串的内容,应该使用string类的()函数。

A.assign

B.insert

C.swap

D.find

 

21.对基类和派生类的描述中错误的是( )。

A.派生类是基类的具体化

B.基类继承了派生类的属性

C.派生类是基类定义的延续

D.派生类是基类的特殊化

 

22.要求打开文件 d:\file.dat,可写入数据,正确的语句是( )。

A.ifstream infile(“d:\file.dat”, ios::in);

B.ifstream infile(“d:\\file.dat”, ios::in);

C.ofstream infile(“d:\file.dat”, ios::out);

D.fstream infile(“d:\\file.dat”, ios::in| ios::out);

 

23.在下列关键字中,用以说明类中公有成员的是( )。

A.public

B.private

C.protected

D.friend

 

24.关于下面程序段说法正确的是( ) class X { private: int n; public: X(X&); }; X::X(X&x) {n=x.n} X obj1,obj2(obj1);

A.语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2

B.语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1

C.X(X&x)中的&符号可以删除

D.X(X&x)函数中不能访问对象的私有成员

 

25.( )只能访问静态成员变量,不能访问非静态成员变量。

A.静态函数

B.虚函数

C.构造函数

D.析构函数

 

26.下列关于this指针的说法,错误的是()。

A.this指针指向当前正在操作的对象

B.this指针只存在于非静态成员函数中

C.在成员函数中对非静态数据成员的访问是通过this指针完成的

D.静态成员函数中可以通过this指针访问非静态成员

 

27.下面关于友元的描述中,错误的是( )。

A.友元函数可以访问该类的私有数据成员

B.一个类的友元类中的成员函数都是这个类的友元函数

C.友元可以提高程序的运行效率

D.类与类之间的友元关系可以继承

 

28.类模板的使用实际上是类模板实例化成一个具体的( )。

A.类

B.对象

C.函数

D.变量

 

29.下列关于运算符重载正确的是()。

A.运算符重载可以改变运算符的操作数个数

B.运算符重载可以改变运算符的优先级

C.运算符重载可以改变运算符的结合性

D.运算符重载不可以改变语法结构

 

30.运行以下程序时,如果由键盘输入65 14,则输出结果是()。 #include <iostream> using namespace std; int main() { int m, n; cout<<“Input m, n:”; cin>>m>>n; while(m!=n) { while(m>n) m-=n; while(n>m) n-=m; } cout<<m<<endl; return 0; }

A.3

B.2

C.1

D.0

 

31.如果类A被说明成类B的友元,则()。

A.类A的成员函数不得访问类B的所有成员

B.类A的成员函数可以访问类B的所有成员

C.类A的成员即类B的成员

D.类B的成员即类A的成员

 

32.下列关于成员访问权限的描述中,不正确的是( )。

A.公有数据成员和公有成员函数都可以通过类对象直接访问

B.类的私有数据成员只能被公有成员函数以及该类的任何友元类或友元函数访问

C.保护成员在派生类中可以被访问,而私有成员不可以

D.类或派生类的成员函数可以访问保护成员

 

33.空类的声明( )是正确的。

A.class类名;

B.class类名{};

C.class类名{}

D.class类名

 

34.下列关于类和对象的叙述中,错误的是()。

A.一个类只能有一个对象

B.对象是类的具体实例

C.类是某一类对象的抽象

D.类和对象的关系是一种数据类型与变量的关系

 

35.下面说法中正确的是( )。

A.当声明的内容不同时,声明同一个名字的两个类是允许的

B.不完全声明的类也可以实例化

C.声明同一个名字的两个类时,要求声明的内容也相同

D.声明同一个名字的两个类是错误的

 

二、判断题 (共 15 道试题,共 30 分)

36.C++程序中使用cin和cout除了要包含头文件iostream外,还要指定使用std命名空间。

 

37.C++语言类定义中默认的访问权限是public。

 

38.派生类至少有一个基类。

 

39.调试主要是为了解决源程序编译连接时产生的错误。

 

40.C++中用户定义的标识符可以与系统关键字同名。

 

41.以友元方式重载运算符时,形参列表中至少有一个参数必须是自定义数据类型。

 

42.派生类中至少包含了它的所有基类的成员(除构造函数和析构函数外),在这些成员中可能有的是不可访问。

 

43.构造函数和析构函数均不能被说明为虚函数。

 

44.假定AB为一个类,有类AB的两个对象a1,a2;则执行语句AB *a[10]={&a1,&a2};时系统自动调用该类的构造函数的次数为2。

 

45.cout后面的符号是<<。

 

46.多继承情况下,派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序。

 

47.一个类的静态数据成员被该类的所有对象共享。

 

48.类的私有成员只能被它的成员函数和友元函数访问。

 

49.假定用户没有给一个名为AB的类定义析构函数,则系统自动给出的缺省析构函数定义为~AB(){ }。

 

50.在C++中,可以声明虚构造函数和虚析构函数。

转载请注明:奥鹏作业之家 » 【奥鹏】南开21秋学期《面向对象程序设计》在线作业

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址