[南开大学]20春学期《面向对象程序设计》在线作业-2(答案100分)

[复制链接]
查看: 803|回复: 0

5万

主题

8万

帖子

18万

积分

论坛元老

Rank: 8Rank: 8

积分
189561
发表于 2020-7-4 16:43:09 | 显示全部楼层 |阅读模式
答案来源:雅宝题库交流网(www.ybaotk.com)-[南开大学]20春学期(1109、1803、1809、1903、1909、2003)《面向对象程序设计》在线作业
试卷总分:100    得分:100
第1,在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则()。
A、完全相同
B、完全不同
C、部分相同,部分不同
D、以上都不对
正确答案:


第2题,下面(   )的叙述不符合赋值兼容规则。
A、派生类的对象可以赋值给基类的对象
B、基类的对象可以赋值给派生类的对象
C、派生类的对象可以初始化基类的对象
D、派生类的对象的地址可以赋值给指向基类的指针
正确答案:


第3题,下列函数中,可以作为虚函数的是(    )。
A、普通函数
B、构造函数
C、静态成员函数
D、析构函数
正确答案:D


第4题,& uot;#include iostream& uot;是()预处理命令。
A、宏定义
B、文件包含
C、条件编译
D、工程配置
正确答案:


答案来源:雅宝题库交流网(www.ybaotk.com),下面对析构函数的正确描述是(    )。
A、系统不能提供默认的析构函数
B、析构函数必须由用户定义
C、析构函数没有参数
D、析构函数可以设置默认参数
正确答案:


第 题,实现运行时的多态性要使用()。
A、构造函数
B、析构函数
C、重载函数
D、虚函数
正确答案:D


第1题,下面程序段中,说法正确的是(     )
class location{ public : int GetX(); };
class rectangle:private location { public: int GetW(); };
A、类rectangle的私有派生类是location
B、类rectangle中的public成员在类 location中是私有的
C、类location中的public成员在类  rectangle中是不可访问的
D、viod f( ) {  Rectangle r;   int X=r .GetX( );  } 其中int X = r .GetX( );是非法语句
正确答案:D


第8题,缺省析构函数的函数体是(   )。
A、不存在
B、随机产生的
C、空的
D、雅法确定的
正确答案:


第9题,关于纯虚函数,下列表述正确的是(   )。
A、纯虚函数是未给出实现版本(即雅函数体定义)的虚函数
B、纯虚函数的声明总是以& uot;=0& uot;结束
C、派生类必须实现基类的纯虚函数
D、含有纯虚函数的类一定是派生类
正确答案:


答案来源:雅宝题库交流网(www.ybaotk.com),下面描述中,错误的是()。
A、公有继承时,基类中的public成员在派生类中仍是public的
B、公有继承时,基类中的private成员在派生类中仍是private的
C、公有继承时,基类中的protected成员在派生类中仍是protected的
D、私有继承时,基类中的public成员在派生类中是private的
正确答案:


第11题,下面对构造函数的不正确描述是(    )。
A、系统可以提供默认的构造函数
B、构造函数可以有参数,所以可以有返回值
C、构造函数可以重载
D、构造函数可以设置默认参数
正确答案:


答案来源:雅宝题库交流网(www.ybaotk.com),假定已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是(    )。
A、outfile.write((float *) &data, sizeof(float));
B、outfile.write((float *) &data, data);
C、outfile.write((char *) &data, sizeof(float));
D、outfile.write((char *) &data, data);
正确答案:


第13题,有如下类声明:class Sample { int x; };则Sample类成员x是Sample类的()。
A、公有数据成员
B、保护数据成员
C、私有数据成员
D、以上选项都不正确
正确答案:


第14题,一个(   )允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值可以取任意数据类型。
A、函数模板
B、模板函数
C、类模板
D、模板类
正确答案:


答案来源:雅宝题库交流网(www.ybaotk.com),将一个string类对象赋予新值,应该使用string类的()函数。
A、assign
B、insert
C、swap
D、find
正确答案:


第1 题,下列运算符中,()在C++中不能重载。
A、?:
B、+
C、-
D、=
正确答案:


第11题,有关带默认参数的函数的描述正确的是()。
A、只能在函数定义时设置默认参数值
B、只能在函数声明时设置默认参数值
C、函数调用时,必须使用默认的参数值,不能给出新的实参值
D、设置默认参数时,应该设置最右边的若干个参数的默认值
正确答案:D


第18题,在表达式x+y*z中,+ 是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。
A、operator+有两个参数,operator*有两个参数
B、operator+有两个参数,operator*有一个参数
C、operator+有一个参数,operator*有两个参数
D、operator+有一个参数,operator*有一个参数
正确答案:


第19题,下列关于C++类的描述中错误的是(      )。
A、类与类之间可以通过一些手段进行通信和联络
B、类用于描述事物的属性和对事物的操作
C、类与类之间必须是平等的关系,而不能组成层次关系
D、类与类之间可以通过封装而具有明确的独立性
正确答案:


答案来源:雅宝题库交流网(www.ybaotk.com),有关类和对象的说法不正确的是(   )。
A、对象是类的一个实例
B、一个类只能有一个对象
C、任何一个对象只能属于一个具体的类
D、类与对象的关系和数据类型和变量的关系相似
正确答案:


第21题,执行语句& uot;string str(& uot;abc& uot;);& uot;时,系统会自动调用string类的构造函数()。
A、string()
B、string(const char *s)
C、string(const string &str)
D、string(size_type n, char c)
正确答案:


第22题,假设A为抽象类,下列语句(    )是正确的。
A、A fun(int);
B、A *p;
C、int fun(A);
D、A Obj;
正确答案:


第23题,运算符重载的目的是()。
A、提高程序的效率
B、提高代码复用能力
C、简化程序,减少目标代码
D、使程序代码直观易读
正确答案:D


第24题,下列关于构造函数的描述中,错误的是(   )。
A、构造函数可以设置默认参数
B、构造函数在说明类变量时自动执行
C、构造函数可以对静态数据成员进行初始化
D、构造函数可以重载
正确答案:


答案来源:雅宝题库交流网(www.ybaotk.com),若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。
A、友元函数
B、虚函数
C、构造函数
D、析构函数
正确答案:D


第2 题,下面对静态数据成员的描述中,正确的是(   )。
A、静态数据成员是类的所有对象共享的数据
B、类的每个对象都有自己的静态数据成员
C、类的不同对象有不同的静态数据成员值
D、静态数据成员不能通过类的对象访问
正确答案:


第21题,下面函数原型声明中,(    )声明了fun为纯虚函数。
A、void fun()=0;
B、virtual void fun()=0;
C、virtual void fun();
D、virtual void fun(){};
正确答案:


第28题,假定X为一个类,执行X a[3],*p[2];语句时会自动调用该类的构造函数(    )次。
A、2
B、3
C、4
D、5
正确答案:


第29题,下列(   )是构造函数的特征。
A、构造函数在创建对象时自动调用
B、构造函数不可以重载
C、构造函数不可以设置默认参数
D、构造函数必须指定函数类型
正确答案:


答案来源:雅宝题库交流网(www.ybaotk.com),假设堆内存分配均成功,则下面程序段完全正确的是()。
A、int *p=new int(3);cout*p;delete p;
B、int *p=new int[5]={1,2,3,4,5};for(int i=0;i5;i++)coutp;delete []p;
C、int *p=new int[5];for(int i=0;i5;i++,p++) {*p=i; cout*p;}delete []p;
D、以上程序段均正确
正确答案:


第31题,下列对派生类的描述中,()是错误的。
A、一个派生类可以作另一个派生类的基类
B、派生类至少有一个基类
C、派生类的成员除了它自己的成员外,包含了它的基类的成员
D、派生类中继承的基类成员的访问权限到派生类保持不变
正确答案:D


第32题,下列关于构造函数说法不正确的是()。
A、构造函数必须与类同名
B、构造函数可以省略不写
C、构造函数必须有返回值
D、在构造函数中可以对类中的成员进行初始化
正确答案:


第33题,下列关于运算符重载的描述中,()是正确的。
A、运算符重载可以改变操作数的个数
B、运算符重载可以改变优先级
C、运算符重载可以改变结合性
D、运算符重载不可以改变语法结构
正确答案:D


第34题,下面程序段中是内联函数的是(   )。
class location
{
private:
int x ,y;
public:
void init(int initx,int inity) { x=initx; y=inity; }
int getx(){return x;}
int gety();
};
inline int location::gety() {return y;}
A、init (int initx,int inity)
B、getx(),gety()
C、A和B都是
D、A和getx()
正确答案:


第35题,已知& uot;float *p; p=new float[2];& uot;,若要释放p所指向的堆中的这些字节,下列语句正确的是()。
A、delete p;
B、delete p[];
C、delete []p;
D、delete p[2];
正确答案:


第3 题,通过指针或引用可以调用不同对象相同名称的函数,但可导致完全不同的行为的现象称为二义性。
T、对
F、错
正确答案:F


第31题,一个算法必须能在有限步骤内解决问题。
T、对
F、错
更多答案下载:雅宝题库交流网(www.ybaotk.com)


第38题,可以在类的构造函数中对静态数据成员进行初始化。
T、对
F、错
正确答案:


第39题,多数运算符可以重载,个别运算符不能,运算符重载是通过函数定义实现的。
T、对
F、错
更多答案下载:雅宝题库交流网(www.ybaotk.com)


第40题,运算符[]只能用成员运算符来重载,不能用友元运算符来重载。
T、对
F、错
更多答案下载:雅宝题库交流网(www.ybaotk.com)


第41题,C++语言类定义中默认的访问权限是public。
A、错误
B、正确
正确答案:


第42题,C++中用户定义的标识符可以与系统关键字同名。
T、对
F、错
正确答案:F


第43题,所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的。
T、对
F、错
更多答案下载:雅宝题库交流网(www.ybaotk.com)


第44题,在C++程序中,有且仅能有一个主函数,且其函数名必须是main。
A、错误
B、正确
正确答案:


第45题,设要把一个文件输出流对象myFile与文件& uot;f:\myText.txt& uot;相关联,所用的C++语句是ifstream myFile(& uot;f:\\myText.txt& uot;,ios::in|ios:ut);
T、对
F、错
正确答案:


第4 题,C++基类中,不能被派生类继承的有构造函数和析构函数。
T、对
F、错
更多答案下载:雅宝题库交流网(www.ybaotk.com)


第41题,在C++中,允许从一个类派生出任意多个类,但不允许某个类同时从多个类派生。
A、错误
B、正确
正确答案:


第48题,在类体外定义成员函数时需要通过域运算符指定该成员函数所属的类。
T、对
F、错
更多答案下载:雅宝题库交流网(www.ybaotk.com)


第49题,函数的定义不可以嵌套,类的定义可以嵌套。
T、对
F、错
更多答案下载:雅宝题库交流网(www.ybaotk.com)


答案来源:雅宝题库交流网(www.ybaotk.com),为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义构造函数。
T、对
F、错
正确答案:F

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x





上一篇:[南开大学]20春学期《面向对象程序设计》在线作业-1(答案100分)
下一篇:[南开大学]20春学期《网络爬虫与信息提取》在线作业-1(答案100分)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩课程推荐
|网站地图|网站地图