南开17秋学期清考《面向对象程序设计》在线作业.docx
- 文档编号:24225835
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:18
- 大小:18.14KB
南开17秋学期清考《面向对象程序设计》在线作业.docx
《南开17秋学期清考《面向对象程序设计》在线作业.docx》由会员分享,可在线阅读,更多相关《南开17秋学期清考《面向对象程序设计》在线作业.docx(18页珍藏版)》请在冰豆网上搜索。
南开17秋学期清考《面向对象程序设计》在线作业
1. 下列关于this指针的说法,错误的是()。
.this指针指向当前正在操作的对象
.this指针只存在于非静态成员函数中
.在成员函数中对非静态数据成员的访问是通过this指针完成的
.静态成员函数中可以通过this指针访问非静态成员
正确答案:
满分:
2 分
2. 在++中,通过()的机制可以对原有的类进行扩充和完善以适应新的需要。
.继承
.封装
.多态
.重载
正确答案:
满分:
2 分
3. 执行语句“stringstr("");”时,系统会自动调用string类的构造函数()。
.string()
.string(onsthr*s)
.string(onststring&str)
.string(size_typen,hr)
正确答案:
满分:
2 分
4. 派生类中的成员不能访问基类中的()。
.私有成员
.公有成员
.保护成员
.以上都可以
正确答案:
满分:
2 分
5. 一个类的友元函数或友元类能够通过成员操作符访问该类的()。
.私有成员
.保护成员
.公有成员
.所有成员
正确答案:
满分:
2 分
6. 下面关于类的成员函数描述不正确的是()。
.静态成员函数内可以直接访问类的非静态成员数据
.静态成员函数内可以直接访问类的静态成员数据
.非静态成员函数可以直接访问类的非静态成员数据
.非静态成员函数可以直接访问类的静态成员数据
正确答案:
满分:
2 分
7. 下列关于继承的描述中,错误的是()。
.基类中的析构函数不能被派生类继承
.基类中的保护成员在派生类中无法直接访问
.派生类的成员除了包括派生类中自己定义的成员外,还包括它从基类继承的成员
.在公有继承方式下基类中公有成员和保护成员的访问权限到派生类保持不变
正确答案:
满分:
2 分
8. 在一个string类对象表示的字符串中插入新字符,应该使用string类的()函数。
.ssign
.insert
.swp
.fin
正确答案:
满分:
2 分
9. 类对象占用内存的大小与()有关。
.数据成员
.成员函数
.数据成员和成员函数
.私有成员
正确答案:
满分:
2 分
10. 有关重载函数的描述正确的是()。
.函数名相同的函数就是重载函数
.函数名相同但返回值类型不同的函数就是重载函数
.函数名相同但参数个数或类型不同的函数就是重载函数
.函数功能相同的函数就是重载函数
正确答案:
满分:
2 分
11. 下列关于运算符重载正确的是()。
.运算符重载可以改变运算符的操作数个数
.运算符重载可以改变运算符的优先级
.运算符重载可以改变运算符的结合性
.运算符重载不可以改变语法结构
正确答案:
满分:
2 分
12. 下面描述中,错误的是()。
.公有继承时,基类中的puli成员在派生类中仍是puli的
.公有继承时,基类中的privte成员在派生类中仍是privte的
.公有继承时,基类中的protete成员在派生类中仍是protete的
.私有继承时,基类中的puli成员在派生类中是privte的
正确答案:
满分:
2 分
13. 下面关于私有继承方式的论述中错误的是()。
.基类中的私有成员对其对象不可见
.基类中的私有成员对其派生类不可见
.基类中的公有成员对其派生类可见
.基类中的保护成员对其派生类不可见
正确答案:
满分:
2 分
14. “#inlue<iostrem>”是()预处理命令。
.宏定义
.文件包含
.条件编译
.工程配置
正确答案:
满分:
2 分
15. 如果一个类至少有一个纯虚函数,那么就称该类是()。
.抽象类
.虚基类
.派生类
.以上都不对
正确答案:
满分:
2 分
16. 下面对静态数据成员的描述中,正确的是()。
.静态数据成员可以在类体内进行初始化
.静态数据成员不可以被该类的对象调用
.静态数据成员不能受privte控制符的作用
.静态数据成员可以直接用类名访问
正确答案:
满分:
2 分
17. 类lss的定义如下:
lsslss
{puli:
lss(){}
lss(inti){vlue=newint(i);}
int*vlue;
}
若要对类中的vlue赋值,则下面的语句中,正确的是()。
.lssmy;my.vlue=10;
.lssmy;*my.vlue=10;
.lssmy;my.*vlue=10;
.lssmy(10);
正确答案:
满分:
2 分
18. 抽象类的作用主要是()。
.直接用作基类
.直接用作指针
.引用的基类型
.包括以上各项
正确答案:
满分:
2 分
19. 下列关于运算符重载的描述中,正确的是()。
.运算符重载可以改变操作数的个数
.运算符重载可以改变运算符的优先级
.运算符重载可以改变运算符的结合性
.运算符重载可以使运算符实现特殊功能
正确答案:
满分:
2 分
20. 单目运算符作为类成员函数重载时()。
.有形参
.没有形参
.有实参
.以上都不正确
正确答案:
满分:
2 分
21. 多继承的构造函数顺序可分为如下4步:
①所有非虚基类的构造函数按照它们被继承的顺序构造。
②所有虚基类的构造函数按照它们被继承的顺序构造。
③所有子对象的构造函数按照它们声明的顺序构造。
④派生类自己的构造函数体
这四个步骤的正确顺序是()。
.④③①②
.②④③①
.②①③④
.③④①②
正确答案:
满分:
2 分
22. 已知函数原型:
voif(int,int=3,hr='*');则下面的函数调用中,不合法的调用是()。
.f(5)
.f(5,8)
.f(6,,'#')
.f(0,0,'#')
正确答案:
满分:
2 分
23. 在一个类中,可以对一个操作符进行()重载。
.1种
.2种
.3种
.多种
正确答案:
满分:
2 分
24. 下列关于虚函数的说明中,正确的是()。
.从虚基类继承的函数都是虚函数
.虚函数不得是静态成员函数
.只能通过指针或引用调用虚函数
.抽象类中的成员函数都是虚函数
正确答案:
满分:
2 分
25. 已知“int=10,=8;int&r=;r=;out<<<<","<<<<","<<r;”,则输出为()。
.10,8,10
.10,8,8
.8,8,10
.8,8,8
正确答案:
满分:
2 分
26. 已知“int=10;int&r=;r=r+20;out<<;”,则输出为()。
.10
.20
.30
.不确定值
正确答案:
满分:
2 分
27. 在使用类创建对象时,系统会自动调用该对象的()完成对象中数据成员的初始化等操作。
.友元函数
.虚函数
.构造函数
.析构函数
正确答案:
满分:
2 分
28. 假定Mylss为一类,执行Mylss,
(2),*p[2];语句时会自动调用该类构造函数()次。
.2
.3
.4
.5
正确答案:
满分:
2 分
29. 以下为重载函数的一组函数声明的是()。
.voiprint(int);voiprint(oule);
.voifun(int);intfun(int);
.intmx(int,int);intmin(int,int);
.voimm();intmm();
正确答案:
满分:
2 分
30. 将一个string类对象赋予新值,应该使用string类的()函数。
.ssign
.insert
.swp
.fin
正确答案:
满分:
2 分
31. 下列关于赋值运算符重载的说法中正确的是()。
.返回值一般是以引用方式返回的对象,而函数体中总是用语句“return*this;”返回this指针所指向的对象
.赋值运算符只能以非成员函数的方式重载
.赋值运算符既可以以成员函数的方式重载,又可以以非成员函数的方式重载
.以上均不正确
正确答案:
满分:
2 分
32. 虚函数必须是类的()。
.友元函数
.成员函数
.构造函数
.析构函数
正确答案:
满分:
2 分
33. 类Mylss的定义如下:
lssMylss
{
puli:
Mylss(){vlue=0;}
SetVrile(inti){vlue=i;}
privte:
intvlue;
}
则对下列语句序列正确的描述是()。
Mylss*p,my;p=&my;
.语句p=&my;是把对象my赋值给指针变量p
.语句Mylss*p,my;会调用两次类Mylss的构造函数
.对语句*p.SetVrile(5)的调用是正确的
.语句p->SetVrile(5)与语句my.SetVrile(5)等价
正确答案:
满分:
2 分
34. 对于拷贝构造函数,正确的描述是()。
.在++语言中,如果不自定义类的拷贝构造函数,则每个类都有默认的拷贝构造函数
.必须为每个类定义拷贝构造函数
.如果要使用拷贝构造函数,则必须在类中先定义
.当定义了类的构造函数时,如果要使用拷贝构造函数,则必须定义拷贝构造函数
正确答案:
满分:
2 分
35. 下列虚基类的声明中,正确的是()。
.lssvirtul:
puli
.virtullss:
puli
.lss:
pulivirtul
.lss:
virtulpuli
正确答案:
满分:
2 分
1. 在派生类构造函数的成员初始化列表中,可以包含基类构造函数的调用。
.错误
.正确
正确答案:
满分:
2 分
2. 在++中,可以声明虚构造函数和虚析构函数。
.错误
.正确
正确答案:
满分:
2 分
3. 私有继承中,对于基类中的所有成员,派生类的成员函数都不可直接访问。
.错误
.正确
正确答案:
满分:
2 分
4. ++语言类定义中默认的访问权限是puli。
.错误
.正确
正确答案:
满分:
2 分
5. 以友元方式重载运算符时,形参列表中至少有一个参数必须是自定义数据类型。
.错误
.正确
正确答案:
满分:
2 分
6. 抽象类虽然也是一种数据类型,但它不能建立对象,只能作为基类被其他类继承。
.错误
.正确
正确答案:
满分:
2 分
7. 假定要对类定义加号操作符重载成员函数,实现两个类对象的加法,并返回相加结果,则该成员函数的声明语句为:
opertor+(&,&);
.错误
.正确
正确答案:
满分:
2 分
8. 类中所提供的成员函数可以直接访问该类的私有成员。
.错误
.正确
正确答案:
满分:
2 分
9. 要使语句“Mylss;”能够编译通过,必须在定义Mylss类时编写无参构造函数。
.错误
.正确
正确答案:
满分:
2 分
10. 定义一个虚基类后,则该虚基类后继类层次中的类都需要调用虚基类的构造函数对虚基类中定义的成员变量进行初始化。
.错误
.正确
正确答案:
满分:
2 分
11. 在派生类对象销毁时,系统除了会自动调用派生类的析构函数,还会自动调用基类的析构函数。
.错误
.正确
正确答案:
满分:
2 分
12. 在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。
.错误
.正确
正确答案:
满分:
2 分
13. 为Mylss类对象,“sttivoiSetRte(ouler){...}”是Mylss类的静态成员函数,则执行语句“.SetRte(0.05);”时,SetRte成员函数中的this指针指向对象的地址。
.错误
.正确
正确答案:
满分:
2 分
14. 构造函数不能被派生类继承。
.错误
.正确
正确答案:
满分:
2 分
15. 派生类至少有一个基类。
.错误
.正确
正确答案:
满分:
2 分
?
?
?
?
?
?
?
?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 南开 17 学期 面向 对象 程序设计 在线 作业