已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南开大学13秋学期面向对象程序设计在线作业 一、单选题(共 35 道试题,共 70 分。)V 1.下列关于赋值运算符重载的说法中正确的是()。A. 返回值一般是以引用方式返回的对象,而函数体中总是用语句“return *this;”返回this指针所指向的对象B. 赋值运算符只能以非成员函数的方式重载C. 赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载D. 以上均不正确 满分:2分2.下列关于成员函数特征的描述中,错误的是()。A. 成员函数可以重载B. 成员函数一定是内联函数C. 成员函数可以设置参数的默认值D. 成员函数可以是静态的 满分:2分3.派生类中的成员不能访问基类中的()。A. 私有成员B. 公有成员C. 保护成员D. 以上都可以 满分:2分4.关于纯虚函数和抽象类的描述中,错误的是()。A. 纯虚函数是一种特殊的虚函数,它没有具体的实现。B. 抽象类是指具有纯虚函数的类。C. 一个基类中有纯虚函数,该类的派生类一定不再是抽象类。D. 抽象类作为基类来使用,其纯虚函数的实现由派生类给出。 满分:2分5.下列关于虚函数的说明中,正确的是()。A. 从虚基类继承的函数都是虚函数B. 虚函数不得是静态成员函数C. 只能通过指针或引用调用虚函数D. 抽象类中的成员函数都是虚函数 满分:2分6.假设堆内存分配均成功,则下面程序段完全正确的是()。A. int *p=new int(3);cout<<*p;delete p;B. int *p=new int5=1,2,3,4,5;for(int i=0;i<5;i+)cout<<p;delete p;C. int *p=new int5;for(int i=0;i<5;i+,p+) *p=i; cout<<*p;delete p;D. 以上程序段均正确 满分:2分7.运算符重载的目的是()。A. 提高程序的效率B. 提高代码复用能力C. 简化程序,减少目标代码D. 使程序代码直观易读 满分:2分8.在一个string类对象表示的字符串中查找子串,应该使用string类的()函数。A. assignB. insertC. swapD. find 满分:2分9.在一个类中,可以对一个操作符进行()重载。A. 1种B. 2种C. 3种D. 多种 满分:2分10.对A、B两个类进行多重继承得到派生类C,则创建派生类C的对象时,从基类B中继承过来的成员变量由()类的构造函数进行初始化。A. AB. BC. CD. 都可以 满分:2分11.已知“int a=10,*p;int *&r=p; r=&a;*p=20;cout<<a;”,则输出为()。A. 10B. 20C. 不确定值D. 程序有错误 满分:2分12.变量的引用,其含义是指该变量的()。A. 值B. 类型C. 别名D. 地址 满分:2分13.已知“int a=10,b=8;int &r=a; r=b;cout<<a<<","<<b<<","<<r;”,则输出为()。A. 10,8,10B. 10,8,8C. 8,8,10D. 8,8,8 满分:2分14.下列关于运算符重载的描述中,正确的是()。A. 运算符重载可以改变操作数的个数B. 运算符重载可以改变运算符的优先级C. 运算符重载可以改变运算符的结合性D. 运算符重载可以使运算符实现特殊功能 满分:2分15.类MyClass的定义如下: class MyClass public: MyClass() value = 0; SetVariable(int i) value = i; private: int value; 则对下列语句序列正确的描述是()。 MyClass *p,my; p=&my;A. 语句p=&my;是把对象my赋值给指针变量pB. 语句MyClass *p,my;会调用两次类MyClass的构造函数C. 对语句 *p.SetVariable(5)的调用是正确的D. 语句p->SetVariable(5)与语句my.SetVariable(5)等价 满分:2分16.运行以下程序时,如果由键盘输入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. 3B. 2C. 1D. 0 满分:2分17.在表达式x+y*z中,+ 是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。下列叙述中正确的是()。A. operator+有两个参数,operator*有两个参数B. operator+有两个参数,operator*有一个参数C. operator+有一个参数,operator*有两个参数D. operator+有一个参数,operator*有一个参数 满分:2分18.若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。A. 友元函数B. 虚函数C. 构造函数D. 析构函数 满分:2分19.有如下类声明: class Sample int x; ; 则Sample类成员x是Sample类的()。A. 公有数据成员B. 保护数据成员C. 私有数据成员D. 以上选项都不正确 满分:2分20.下列关于拷贝构造函数的描述中,错误的是()。A. 一个类可以定义多个拷贝构造函数B. 若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数C. 当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝D. 拷贝构造函数中的参数按引用方式传递 满分:2分21.下列关于构造函数说法不正确的是()。A. 构造函数必须与类同名B. 构造函数可以省略不写C. 构造函数必须有返回值D. 在构造函数中可以对类中的成员进行初始化 满分:2分22.要在类对象上使用运算符,以下不用必须被重载的运算符是()。A. B. =C. +D. - 满分:2分23.在一个string类对象表示的字符串中插入新字符,应该使用string类的()函数。A. assignB. insertC. swapD. find 满分:2分24.抽象类不能定义对象,但可以声明抽象类的()。A. 指针或引用B. 函数返回类型C. 显式转换D. 以上都是 满分:2分25.下面关于构造函数和析构函数的描述,错误的是()。A. 析构函数中调用虚函数采用静态联编B. 对虚析构函数的调用可以采用动态联编C. 当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数D. 构造函数可以声明为虚函数 满分:2分26.类的默认的无参构造函数()。A. 在任何情况下都存在B. 仅当未定义无参构造函数时存在C. 仅当未定义有参构造函数时存在D. 仅当未定义任何构造函数时存在 满分:2分27.下面描述中,错误的是()。A. 公有继承时,基类中的public成员在派生类中仍是public的B. 公有继承时,基类中的private成员在派生类中仍是private的C. 公有继承时,基类中的protected成员在派生类中仍是protected的D. 私有继承时,基类中的public成员在派生类中是private的 满分:2分28.将一个函数声明为某类的友元函数后,则在函数中不可以直接访问该类的()。A. 公有成员B. 私有成员C. 保护成员D. 都可访问 满分:2分29.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。A. 派生类的对象可以直接访问基类的所有成员B. 派生类的对象可以初始化基类的引用C. 派生类的对象不可以直接访问基类中的私有成员D. 派生类的对象的地址可以赋给指向基类的指针 满分:2分30.以成员函数方式重载运算符“>”,则obj1>obj2被C+编译器解释为()。A. operator>(obj1,obj2)B. >(obj1,obj2)C. obj1.operator>(obj2)D. obj2.operator>(obj1) 满分:2分31.有关重载函数的描述正确的是()。A. 函数名相同的函数就是重载函数B. 函数名相同但返回值类型不同的函数就是重载函数C. 函数名相同但参数个数或类型不同的函数就是重载函数D. 函数功能相同的函数就是重载函数 满分:2分32.下列关于类和对象的叙述中,错误的是()。A. 一个类只能有一个对象B. 对象是类的具体实例C. 类是某一类对象的抽象D. 类和对象的关系是一种数据类型与变量的关系 满分:2分33.对于拷贝构造函数,正确的描述是()。A. 在C+语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数B. 必须为每个类定义拷贝构造函数C. 如果要使用拷贝构造函数,则必须在类中先定义D. 当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数 满分:2分34.假定MyClass为一类,执行MyClass a,b(2),*p2;语句时会自动调用该类构造函数()次。A. 2B. 3C. 4D. 5 满分:2分35.下列运算符中,()在C+中不能重载。A. ?:B. +C. -D. <= 满分:2分 二、判断题(共 15 道试题,共 30 分。)V 1.a为MyClass类对象,“static void SetRate(double r).”是MyClass类的静态成员函数,则执行语句“a.SetRate(0.05);”时,SetRate成员函数中的this指针指向对象a的地址。A. 错误B. 正确 满分:2分2.私有继承中,对于基类中的所有成员,派生类的成员函数都不可直接访问。A. 错误B. 正确 满分:2分3.要使语句“MyClass a;”能够编译通过,必须在定义MyClass类时编写无参构造函数。A. 错误B. 正确 满分:2分4.类中所提供的成员函数可以直接访问该类的私有成员。A. 错误B. 正确 满分:2分5.在C+程序中,有且仅能有一个主函数,且其函数名必须是main。A. 错误B. 正确 满分:2分6.定义一个虚基类后,则该虚基类后继类层次中的类都需要调用虚基类的构造函数对虚基类中定义的成员变量进行初始化。A. 错误B. 正确 满分:2分7.抽象类不能定义对象,但可以声明抽象类的指针或引用。A. 错误B. 正确 满分:2分8.基类类型的指针可以指向其派生类对象。A. 错误B. 正确 满分:2分9.在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。A. 错误B. 正确 满分:2分10.以友元方式重载运算符时,形参列表中至少有一个参数必须是自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃省天水市清水县多校联考2025-2026学年高一上学期1月期末考试地理试卷(含答案)
- 2026届高三生物二轮复习课件:选择题强化练 4.遗传的基本规律与伴性遗传
- 化工企业冬季培训课件
- 钢结构绿色制造技术应用
- 飞机结构专业知识课件
- 2026安徽合肥工业大学管理学院管理学院医疗机器人与智慧医疗健康管理团队科研助理招聘3人备考考试试题及答案解析
- 2026新疆前海集团有限责任公司招聘1人备考考试试题及答案解析
- 2026年上半年黑龙江事业单位联考哈尔滨市招聘592人参考考试题库及答案解析
- 2026江苏苏州人才发展有限公司招聘2人(一)备考考试题库及答案解析
- 2026四川通发广进人力资源管理咨询有限公司AI数据标注员(第三批)招聘备考考试题库及答案解析
- 孕妇尿液捐献协议书
- 2025年立体仓库维护服务合同
- BIM技术在建筑施工环境管理中的应用
- 2025全国高考Ⅰ卷第16题说题比赛课件-2026届高三数学二轮复习
- 快消品市场调研分析报告模板
- 装修保护电梯施工技术交底
- 社保专员工作述职报告
- DB15∕T 2385-2021 草原退化评价技术规程
- 焦化厂仪表工岗位考试试卷及答案
- 餐厅充值服务合同范本
- 2025年汽车洗涤器总成行业分析报告及未来发展趋势预测
评论
0/150
提交评论