|
18秋学期(1709、1803、1809)《面向对象程序设计》在线作业
南开作业答案请联系QQ515224986
【南开大学在线作业是随机作业】
一、单选题:
1. 已知X类.则当程序执行到语句X*array[3];时,调用了()次构造函数。
A. 0
B. 1
C. 2
D. 3
正确答案:——A——
2. 将一个string类对象赋予新值,应该使用string类的()函数。
A. assign
B. insert
C. swap
D. find
正确答案:——A——
3. 派生类的对象对它的基类成员中()是可以访问的。
A. 公有继承的公有成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. 私有继承的公有成员
正确答案:——A——
4. 下面描述中,错误的是()。
A. 公有继承时,基类中的public成员在派生类中仍是public的
B. 公有继承时,基类中的private成员在派生类中仍是private的
C. 公有继承时,基类中的protected成员在派生类中仍是protected的
D. 私有继承时,基类中的public成员在派生类中是private的
正确答案:————
5. 若一个类中含有纯虚函数,则该类称为()。
A. 基类
B. 纯基类
C. 派生类
D. 抽象类
正确答案:————
6. 有关重载函数的描述正确的是()。
A. 函数名相同的函数就是重载函数
B. 函数名相同但返回值类型不同的函数就是重载函数
C. 函数名相同但参数个数或类型不同的函数就是重载函数
D. 函数功能相同的函数就是重载函数
正确答案:————
7. 撤消对象时,系统自动调用()函数。 奥鹏答案
A. 成员函数
B. 构造函数
C. 析构函数
D. 普通函数
正确答案:————
8. 如果一个类至少有一个纯虚函数,那么就称该类为()。
A. 抽象类
B. 派生类
C. 纯基类
D. 以上都不对
正确答案:————
9. 类MyClass的定义如下:\nclassMyClass\n{\npublic:\nMyClass(){value=0;}\nSetVariable(inti){value=i;}\nprivate:\nintvalue;\n}\n则对下列语句序列正确的描述是()。\nMyClass*p,my;p=&my;
A. 语句p=&my;是把对象my赋值给指针变量p
B. 语句MyClass*p,my;会调用两次类MyClass的构造函数
C. 对语句*p.SetVariable(5)的调用是正确的
D. 语句p->SetVariable(5)与语句my.SetVariable(5)等价
正确答案:————
10. 关于抽象类,下列表述正确的是()。
A. 抽象类的成员函数中至少有一个没有实现的函数(即无函数体定义的函数)
B. 派生类必须实现作为基类的抽象类中的纯虚函数
C. 派生类不可能成为抽象类
D. 抽象类不能用于定义对象
正确答案:————
11. 要求打开文件d:\\file.dat,可写入数据,正确的语句是()。
A. ifstreaminfile(\d:\\file.dat\,ios::in);
B. ifstreaminfile(\d:\\\\file.dat\,ios::in);
C. ofstreaminfile(\d:\\file.dat\,ios::out);
D. fstreaminfile(\d:\\\\file.dat\,ios::in|ios::out);
正确答案:————
12. 下列关于对象数组的描述中,错误的是()。
A. 对象数组的下标是从0开始的
B. 对象数组的数组名是一个常量指针
C. 对象数组的每个元素是同一个类的对象
D. 对象数组只能赋初值,而不能在定义后赋值
正确答案:————
13. 类的默认的无参构造函数()。
A. 在任何情况下都存在
B. 仅当未定义无参构造函数时存在
C. 仅当未定义有参构造函数时存在
D. 仅当未定义任何构造函数时存在
正确答案:————
14. 有关构造函数说法不正确的是()。
A. 构造函数的名字和类的名字一样
B. 在创建对象时,系统自动调用构造函数
C. 构造函数无任何函数类型
D. 构造函数有且只有一个
正确答案:————
15. 派生类的构造函数的成员初始化列表中,不能包含()。
A. 基类的构造函数
B. 派生类中子对象的初始化
C. 基类的子对象初始化
D. 派生类中一般数据成员的初始化
正确答案:————
16. 下面()的叙述不符合赋值兼容规则。
A. 派生类的对象可以赋值给基类的对象
B. 基类的对象可以赋值给派生类的对象
C. 派生类的对象可以初始化基类的对象
D. 派生类的对象的地址可以赋值给指向基类的指针
正确答案:————
17. 对基类和派生类的描述中错误的是()。
A. 派生类是基类的具体化
B. 基类继承了派生类的属性
C. 派生类是基类定义的延续
D. 派生类是基类的特殊化
正确答案:————
18. 下列关于构造函数说法不正确的是()。
A. 构造函数必须与类同名
B. 构造函数可以省略不写
C. 构造函数必须有返回值
D. 在构造函数中可以对类中的成员进行初始化
正确答案:————
19. 下面程序段中,说法正确的是()\nclasslocation{public:intGetX();};\nclassrectangle:privatelocation{public:intGetW();};
A. 类rectangle的私有派生类是location
B. 类rectangle中的public成员在类location中是私有的
C. 类location中的public成员在类rectangle中是不可访问的
D. viodf(){Rectangler;intX=r.GetX();
正确答案:————
20. 在下列关键字中,用以说明类中公有成员的是()。
A. public
B. private
C. protected
D. friend
正确答案:————
21. 当一个派生类公有继承一个基类时,基类中的所有公有成员成为派生类的()。
A. public成员
B. private成员
C. protected成员
D. 友元
正确答案:————
22. 下面描述中,错误的是()。
A. 在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
B. 在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C. 在基类定义的public和protected成员在保护继承的派生类中可见
D. 在派生类中不可见的成员要变成可访问的,需要进行访问声明
正确答案:————
23. 假定已定义浮点型变量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);
正确答案:————
24. 下列关于运算符重载正确的是()。
A. 运算符重载可以改变运算符的操作数个数
B. 运算符重载可以改变运算符的优先级
C. 运算符重载可以改变运算符的结合性
D. 运算符重载不可以改变语法结构
正确答案:————
25. 下列运算符中,()运算符在C++中不能重载。
A. ?:
B. +
C. -
D. =
正确答案:————
26. 下面关于类的成员函数描述不正确的是()。
A. 静态成员函数内可以直接访问类的非静态成员数据
B. 静态成员函数内可以直接访问类的静态成员数据
C. 非静态成员函数可以直接访问类的非静态成员数据
D. 非静态成员函数可以直接访问类的静态成员数据
正确答案:————
27. 下面关于私有继承方式的论述中错误的是()。
A. 基类中的私有成员对其对象不可见
B. 基类中的私有成员对其派生类不可见
C. 基类中的公有成员对其派生类可见
D. 基类中的保护成员对其派生类不可见
正确答案:————
28. C++有()种联编方式。
A. 1
B. 2
C. 3
D. 4
正确答案:————
29. 下列关于类和对象的叙述中,错误的是()。
A. 一个类只能有一个对象
B. 对象是类的具体实例
C. 类是某一类对象的抽象
D. 类和对象的关系是一种数据类型与变量的关系
正确答案:————
30. 下列程序中说明的公有成员是()\nclassLocation\n{\nintX;\npublic:\nvoidinit(intinitX,intinitY);\nprivate:\nintY;\npublic:\nintGetX();\nintGetY();\n};
A. X
B. init(intinitX,intinitY)
C. GetX(),GetY()
D. B和C都是
正确答案:————
31. 抽象类的作用主要是()。
A. 直接用作基类
B. 直接用作指针
C. 引用的基类型
D. 包括以上各项
正确答案:————
32. 以下为重载函数的一组函数声明的是()。
A. voidprint(int);voidprint(double);
B. voidfun(int);intfun(int);
C. intmax(int,int);intmin(int,int);
D. voidmm();intmm();
正确答案:————
33. 下列对派生类的描述中,()是错误的。
A. 一个派生类可以作另一个派生类的基类
B. 派生类至少有一个基类
C. 派生类的成员除了它自己的成员外,包含了它的基类的成员
D. 派生类中继承的基类成员的访问权限到派生类保持不变
正确答案:————
34. 运算符重载的目的是()。
A. 提高程序的效率
B. 提高代码复用能力
C. 简化程序,减少目标代码
D. 使程序代码直观易读
正确答案:————
35. 对于任意一个类,构造函数的个数最少为()。
A. 0
B. 1
C. 2
D. 3
正确答案:————
三、判断题:
36. 派生类的继承方式中有两种:公有继承和私有继承。
T. 对
F. 错
正确答案:————
37. 基类类型的指针可以指向其派生类对象。
A. 错误
B. 正确
正确答案:————
38. 定义重载函数时,应保证函数类型有所不同。
T. 对
F. 错
正确答案:————
39. 只有返回引用的函数可以作为赋值语句的左值。
T. 对
F. 错
正确答案:————
40. 构造函数和析构函数均不能被说明为虚函数。
T. 对
F. 错
正确答案:————
41. 在C++中,可以声明虚构造函数和虚析构函数。
A. 错误
B. 正确
正确答案:————
42. 一般将C++中的类声明和类实现分别放到两个文件中。
T. 对
F. 错
正确答案:————
43. 继承性是指同样的消息被不同对象接收时可产生不同的行为。
T. 对
F. 错
正确答案:————
44. 设要把一个文件输出流对象myFile与文件“f:\\myText.txt”相关联,所用的C++语句是ifstreammyFile(\f:\\\\myText.txt\,ios::in|ios::out);
T. 对
F. 错
正确答案:————
45. 类的成员函数中可以直接访问对象成员中的私有成员。
T. 对
F. 错
正确答案:————
46. 在派生类构造函数的成员初始化列表中,可以包含基类构造函数的调用。
A. 错误
B. 正确
正确答案:————
47. getline()函数从流中提取终止字符,但终止字符被丢弃。
T. 对
F. 错
正确答案:————
48. 类模板可以使用两种形式的参数,分别是类型参数和普通单数。
T. 对
F. 错
正确答案:————
49. 函数模板可以与普通函数重载。
T. 对
F. 错
正确答案:————
50. 以友元方式重载运算符时,形参列表中至少有一个参数必须是自定义数据类型。
A. 错误
B. 正确
正确答案:————
奥鹏作业答案
【南开大学在线作业是随机作业】
|
|