当前位置首页 > 北理> 正文

北交16秋《面向对象的程序设计》在线作业二满分答案

北交《面向对象的程序设计》在线作业二

一、单选题(共 23 道试题,共 57.5 分。)

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

A. 说明静态数据成员前边加static

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

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

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

正确答案:

2. 下列关于派生类可访问它基类成员的描述中,错误的是( )。

A. 派生类可访问它基类中的成员与继承方式有关

B. 派生类不可访问它基类中的私有成员

C. 公有继承方式下,派生类可访问它基类的私有成员

D. 私有继承方式下,派生类可访问它基类中的公有成员和保护成员

正确答案:

3. 执行语句序列 int i=0; while(i >< 25) i+=3; cout< 输出结果是/( )

A. 24

B. 25

C. 27

D. 28

正确答案:

4. 下列关于模板的叙述中,错误的是( )

A. 模板声明中的第一个符号总是关键字template

B. 在模板声明中用 < 和 > 括起来的部分是模板的形参表

C. 类模板不能有数据成员

D. 在一定条件下函数模板的实参可以省略

正确答案:

5. 有如下类声明: class MyBASE{ int k; public: void set(int n){ k=n;} int get( )const{ return k; } }; class MyDERIVED: protected MyBASE{ protected: int j; public: void set(int m, int n){MyBASE::set(m); j=n;} int get( )const{ return MyBASE::get( )+j; } }; 则类MyDERIVE

A. 4

B. 3

C. 2

D. 1

正确答案:

6. 下列描述中,成员函数中包括( )的类肯定是抽象类

A. virtual double Area();

B. virtual double Area()=0;

C. virtual double Area(void){}

D. double Area(void)=0;

正确答案:

7. 下面有关重载函数的说法中正确的是( )

A. 重载函数必须具有不同的返回值类型

B. 重载函数形参个数必须不同

C. 重载函数必须有不同的形参列表

D. 重载函数名可以不同

正确答案:

8. 用关键字( )标记的函数被称为虚函数。

A. virtual

B. private

C. public

D. protected

正确答案:

9. 下列不合法的变量名为( )

A. int

B. int1

C. name_1

D. name0

正确答案:

10. 已知枚举类型定义语句为: enum Token { NAME, NUMBER, PLUS = 5, MINUS, PRINT = 10 }; 则下列叙述中错误的是( )(

A. 枚举常量NAME的值为1

B. 枚举常量NUMBER的值为1

C. 枚举常量MINUS的值为6

D. 枚举常量PRINT的值为10

正确答案:

11. 已知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )

A. 这是运算符-的重载运算符函数

B. 这个函数所重载的运算符是一个一元运算符

C. 这是一个成员函数

D. 这个函数不改变类的任何数据成员的值

正确答案:

12. 下面函数的功能是( )。 void fun(char s1[ ], char s2[ ]) { while(s2++=s1++); }(

A. 字符串比较

B. 字符串复制

C. 字符串连接

D. 字符串反向

正确答案:

13. for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是()

A. 0

B. 5

C. 6

D. 无数次

正确答案:

14. 关于虚函数的描述中,正确的是()

A. 虚函数是一个static类型的成员函数

B. 虚函数是一个非成员函数

C. 基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数

D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型

正确答案:

15. 下列字符列中,可作为C++语言程序自定义标识符是( )

A. switch

B. file

C. break

D. do

正确答案:

16. 设x和y均为bool量,则x&&y为真的条件是 ( )

A. 它们均为真

B. 其中一个为真

C. 它们均为假

D. 其中一个为假

正确答案:

17. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在 函数原型或函数头的前面。

A. in

B. inline

C. inLine

D. InLiner

正确答案:

18. C++语言的跳转语句中,对于break和continue说法正确的是( )

A. break语句只应用于循环体中

B. continue语句只应用于循环体中

C. break是无条件跳转语句,continue不是

D. break和continue的跳转范围不够明确,容易产生问题

正确答案:

19. 有关运算符重载正确的描述是( )。

A. C++语言允许重载运算符时改变运算符的操作个数

B. C++语言允许重载运算符时改变运算符的优先级

C. C++语言允许重载运算符时改变运算符的结合性

D. C++语言允许重载运算符时改变运算符原来的功能

正确答案:

20. 下面的哪个保留字不能作为函数的返回类型( )。

A. void

B. int

C. new

D. long

正确答案:

21. 下列函数中,( )是对文件进行读操作的。

A. read()

B. write()

C. tellg()

D. seekp()

正确答案:

22. 下列关于C++函数的叙述中,正确的是()

A. 每个函数至少要具有一个参数

B. 每个函数都必须返回一个值

C. 函数在被调用之前必须先声明

D. 函数不能自己调用自己

正确答案:

23. 下列关于C++函数的说明中,正确的是( )

A. 内联函数就是定义在另一个函数体内部的函数

B. 函数体的最后一条语句必须是return语句

C. 标准C++要求在调用一个函数之前,必须先声明其原型

D. 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

正确答案:

北交《面向对象的程序设计》在线作业二

二、多选题(共 2 道试题,共 5 分。)

1. 下面说法正确的是( )

A. 将数据结构和算法置于同一个函数内,即为数据封装

B. 一个类通过集成可以获得另一个类的特征

C. 面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序

D. 同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性

正确答案:

2. 下列函数中,可以作为虚函数的是( )。

A. 普通函数

B. 非静态成员函数

C. 构造函数

D. 析构函数

正确答案:

北交《面向对象的程序设计》在线作业二

三、判断题(共 15 道试题,共 37.5 分。)

1. 在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征。( )

A. 错误

B. 正确

正确答案:

2. 作为模板类型参数的关键字class,特别含义是“任何用户定义类的类型”。( )

A. 错误

B. 正确

正确答案:

3. 构造函数的定义必须在类体内 。( )

A. 错误

B. 正确

正确答案:

4. 在派生过程中,派生类吸收包括构造函数和析构函数在内的所有基类成员。( )

A. 错误

B. 正确

正确答案:

5. 抽象类只能用作其他类的基类。( )

A. 错误

B. 正确

正确答案:

6. 用new动态申请的内存是在堆中分配的,而不是在栈中分配的。( )

A. 错误

B. 正确

正确答案:

7. 子对象的初始化在其构造函数的成员初始化列表中实现。( )

A. 错误

B. 正确

正确答案:

8. 析构函数是不能重载的 。( )

A. 错误

B. 正确

正确答案:

9. 使用const说明常量时,可以不必指出类型.( )

A. 错误

B. 正确

正确答案:

10. 以app方式打开文件时,当前指针定位于文件尾。( )

A. 错误

B. 正确

正确答案:

11. 在类体内允许对数据成员进行初始化 。( )

A. 错误

B. 正确

正确答案:

12. 多重继承中,派生类构造函数对其基类构造函数的执行顺序取决于它成员函数初始化表中说明的基类顺序。( )

A. 错误

B. 正确

正确答案:

13. 友元类中所有成员函数都是友元函数 。( )

A. 错误

B. 正确

正确答案:

14. 在私有继承方式下,派生类的对象可访问基类中的公有成员。( )

A. 错误

B. 正确

正确答案:

15. 抽象类中只能有一个纯虚函数。( )

A. 错误

B. 正确

正确答案:

北交《面向对象的程序设计》在线作业二

一、单选题(共 23 道试题,共 57.5 分。)

1. 假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: ( )

A. AB operator+(AB & a , AB & b)

B. AB operator+(AB & a)

C. operator+(AB a)

D. AB & operator+( )

正确答案:

2. 下列不合法的变量名为( )

A. int

B. int1

C. name_1

D. name0

正确答案:

3. 文件操作中,打开文件的访问模式常量中,( )是以追加方式打开文件的。

A. ios::in

B. ios::out

C. ios::binary

D. ios::ate

正确答案:

4. 下列关于C++函数的说明中,正确的是( )

A. 内联函数就是定义在另一个函数体内部的函数

B. 函数体的最后一条语句必须是return语句

C. 标准C++要求在调用一个函数之前,必须先声明其原型

D. 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

正确答案:

5. 通常拷贝构造函数的参数是()

A. 某个对象名

B. 某个对象的成员名

C. 某个对象的引用名

D. 某个对象的指针名

正确答案:

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

A. 说明静态数据成员前边加static

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

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

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

正确答案:

7. 下列有关类的说法不正确的是( )。

A. 对象是类的一个实例

B. 任何一个对象只能属于一个具体的类

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

D. 类与对象的关系和数据类型与变量的关系相似

正确答案:

8. 已知在一个类体中包含如下函数原型: VOLUME operator-(VOLUME)const;,下列关于这个函数的叙述中,错误的是( )

A. 这是运算符-的重载运算符函数

B. 这个函数所重载的运算符是一个一元运算符

C. 这是一个成员函数

D. 这个函数不改变类的任何数据成员的值

正确答案:

9. 结构化程序设计所规定的三种基本控制结构是 ( )

A. 输入、处理、输出

B. 树形、网形、环形

C. 顺序、选择、循环

D. 主程序、子程序、函数

正确答案:

10. 假定a为一个整型数组名,则元素a[4]的字节地址为 ( )。

A. a+4

B. a+8

C. a+16

D. a+32

正确答案:

11. 设x和y均为bool量,则x || y为假的条件是( )。

A. 它们均为真

B. 其中一个为真

C. 它们均为假

D. 其中一个为假

正确答案:

12. 面向对象系统不具有( )特性

A. 继承性

B. 封装性

C. 过程性

D. 多态性

正确答案:

13. 对于包括()类型数据成员的用户定义类型必须定义其析构函数

A. static

B. 指针类型

C. 字符串

D. 字符型

正确答案:

14. 用关键字( )标记的函数被称为虚函数。

A. virtual

B. private

C. public

D. protected

正确答案:

15. 下面的哪个保留字不能作为函数的返回类型( )。

A. void

B. int

C. new

D. long

正确答案:

16. 下列关于模板的叙述中,错误的是( )

A. 模板声明中的第一个符号总是关键字template

B. 在模板声明中用 < 和 > 括起来的部分是模板的形参表

C. 类模板不能有数据成员

D. 在一定条件下函数模板的实参可以省略

正确答案:

17. 在以下说明中,标识符ptr( )。 int (*ptr)[3];

A. 说明不合法

B. 是一个指针数组名,每个元素是一个指向整数变量的指针

C. 是一个指针数组名,每个元素是一个指向整数变量的指针

D. 是一个指向整型变量的指针

正确答案:

18. 设x和y均为bool量,则x&&y为真的条件是 ( )

A. 它们均为真

B. 其中一个为真

C. 它们均为假

D. 其中一个为假

正确答案:

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

A. 基类

B. 虚基类

C. 抽象类

D. 派生类

正确答案:

20. 下面( )不是构造函数的特征。

A. 构造函数可以重载

B. 构造函数可以设置缺省参数

C. 构造函数的函数名和类名相同

D. 构造函数必须指定返回值类型

正确答案:

21. 下面关于派生类的描述中,( )是错的。

A. 一个派生类可以作为另一个派生类的基类

B. 派生类至少有一个基类

C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员

D. 派生类中继承的基类成员的访问权限到派生类保持不变

正确答案:

22. 在每个C++程序中都必须包含有这样一个函数,该函数的函数名( )。

A. main

B. MAIN

C. name

D. function

正确答案:

23. 有如下程序: #include using namespace std; class AA{ int n; public: AA(int k):n(k){ } int get( ){ return n;} int get( )const{ return n+1;} }; int main( ) { AA a(5); const AA b(6); cout< < return 0; } 执行后的输出结果是( )

A. 55

B. 57

C. 75

D. 77

正确答案:

北交《面向对象的程序设计》在线作业二

二、多选题(共 2 道试题,共 5 分。)

1. 下面关于析构函数描述正确的是( )

A. 系统可以提供默认的析构函数

B. 析构函数必须由用户定义

C. 析构函数没有参数

D. 析构函数可以设置默认参数

正确答案:

2. 下列函数中,可以作为虚函数的是( )。

A. 普通函数

B. 非静态成员函数

C. 构造函数

D. 析构函数

正确答案:

北交《面向对象的程序设计》在线作业二

三、判断题(共 15 道试题,共 37.5 分。)

1. 在C++语言中,类是支持数据封装的工具。( )

A. 错误

B. 正确

正确答案:

2. 派生类的成员函数可以直接访问基类的所有成员。( )

A. 错误

B. 正确

正确答案:

3. 类的友元函数可以直接访问该类的所有成员。( )

A. 错误

B. 正确

正确答案:

4. 在类的定义中,引入友元的原因是提高效率。( )

A. 错误

B. 正确

正确答案:

5. 使用const说明常量时,可以不必指出类型.( )

A. 错误

B. 正确

正确答案:

6. 在私有继承方式下,派生类的对象可访问基类中的公有成员。( )

A. 错误

B. 正确

正确答案:

7. 一般对象和指向对象指针的成员函数表示分别是运算符.和-> 。( )

A. 错误

B. 正确

正确答案:

8. 构造函数的定义必须在类体内 。( )

A. 错误

B. 正确

正确答案:

9. 抽象类只能用作其他类的基类。( )

A. 错误

B. 正确

正确答案:

10. 一个类可以作为另一个类的友元类。( )

A. 错误

B. 正确

正确答案:

11. 析构函数是不能重载的 。( )

A. 错误

B. 正确

正确答案:

12. 用new动态申请的内存是在堆中分配的,而不是在栈中分配的。( )

A. 错误

B. 正确

正确答案:

13. 常量不能作为左值使用。( )

A. 错误

B. 正确

正确答案:

14. 变量必须先定义后赋值。( )

A. 错误

B. 正确

正确答案:

15. 派生类不能作为基类派生出新类。( )

A. 错误

B. 正确

正确答案:

北交《面向对象的程序设计》在线作业二

一、单选题(共 23 道试题,共 57.5 分。)

1. 下面关于派生类的描述中,( )是错的。

A. 一个派生类可以作为另一个派生类的基类

B. 派生类至少有一个基类

C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员

D. 派生类中继承的基类成员的访问权限到派生类保持不变

正确答案:

2. 若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在 函数原型或函数头的前面。

A. in

B. inline

C. inLine

D. InLiner

正确答案:

3. 结构化程序设计所规定的三种基本控制结构是 ( )

A. 输入、处理、输出

B. 树形、网形、环形

C. 顺序、选择、循环

D. 主程序、子程序、函数

正确答案:

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

A. 基类

B. 虚基类

C. 抽象类

D. 派生类

正确答案:

5. 下面( )不是构造函数的特征。

A. 构造函数可以重载

B. 构造函数可以设置缺省参数

C. 构造函数的函数名和类名相同

D. 构造函数必须指定返回值类型

正确答案:

6. 对于包括()类型数据成员的用户定义类型必须定义其析构函数

A. static

B. 指针类型

C. 字符串

D. 字符型

正确答案:

7. 下列关于C++函数的说明中,正确的是( )

A. 内联函数就是定义在另一个函数体内部的函数

B. 函数体的最后一条语句必须是return语句

C. 标准C++要求在调用一个函数之前,必须先声明其原型

D. 编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式

正确答案:

8. 下列描述中,成员函数中包括( )的类肯定是抽象类

A. virtual double Area();

B. virtual double Area()=0;

C. virtual double Area(void){}

D. double Area(void)=0;

正确答案:

9. 在进行任何的C++流操作后,都可以用C++流的有关成员函数检测流的状态,用来检测是否到达文件的末尾函数是( )。

A. fail()

B. eof()

C. bad()

D. good()

正确答案:

10. 面向对象系统不具有( )特性

A. 继承性

B. 封装性

C. 过程性

D. 多态性

正确答案:

11. 有如下类声明: class MyBASE{ int k; public: void set(int n){ k=n;} int get( )const{ return k; } }; class MyDERIVED: protected MyBASE{ protected: int j; public: void set(int m, int n){MyBASE::set(m); j=n;} int get( )const{ return MyBASE::get( )+j; } }; 则类MyDERIVE

A. 4

B. 3

C. 2

D. 1

正确答案:

12. 有如下程序: #include using namespace std; class AA{ int n; public: AA(int k):n(k){ } int get( ){ return n;} int get( )const{ return n+1;} }; int main( ) { AA a(5); const AA b(6); cout< < return 0; } 执行后的输出结果是( )

A. 55

B. 57

C. 75

D. 77

正确答案:

13. 下列字符列中,可作为C++语言程序自定义标识符是( )

A. switch

B. file

C. break

D. do

正确答案:

14. 使用如setfill()的操作符对数据进行格式输出时,应包含( )头文件。

A. iostream

B. fstream

C. iomanip

D. stdlib

正确答案:

15. 文件操作中,打开文件的访问模式常量中,( )是以追加方式打开文件的。

A. ios::in

B. ios::out

C. ios::binary

D. ios::ate

正确答案:

16. 以下错误的描述是( )。 函数调用可以

A. 出现在一个表达式中

B. 出现在执行语句中

C. 作为一个函数的实参

D. 作为一个函数的形参

正确答案:

17. 下面的哪个保留字不能作为函数的返回类型( )。

A. void

B. int

C. new

D. long

正确答案:

18. 在声明类时 ,下面说法正确的是( )。

A. 可以在类的声明中给数据成员赋初值

B. 数据成员的数据类型可以是register

C. private,public,proected 可以按任意的顺序出现

D. 没有用private,public,proected定义的数据成员是共有成员

正确答案:

19. 在下面的一维数组定义中,哪一个有语法错误。( )

A. int a[ ]={1,2,3}

B. int a[10]={0}

C. int a[ ]

D. int a[5]

正确答案:

20. 以下不属于类访问权限的是( )

A. public

B. static

C. protected

D. private

正确答案:

21. 下列关于模板的叙述中,错误的是( )

A. 模板声明中的第一个符号总是关键字template

B. 在模板声明中用 < 和 > 括起来的部分是模板的形参表

C. 类模板不能有数据成员

D. 在一定条件下函数模板的实参可以省略

正确答案:

22. 以下保留字( )不能出现在说明虚函数原型的语句中。

A. static

B. operator

C. void

D. const

正确答案:

23. 下列关于this指针的叙述中,正确的是( )

A. 任何与类相关的函数都有this指针

B. 类的成员函数都有this指针

C. 类的友元函数都有this指针

D. 类的非静态成员函数才有this指针

正确答案:

北交《面向对象的程序设计》在线作业二

二、多选题(共 2 道试题,共 5 分。)

1. 继承是( )的方法。

A. 将特殊的类变成通用的类

B. 把通用的参数传送给特殊的类的对象

C. 将通用的类变成特殊的类

D. 将已有的类添加新的特性,但不重写它们

正确答案:

2. 下列函数中,可以作为虚函数的是( )。

A. 普通函数

B. 非静态成员函数

C. 构造函数

D. 析构函数

正确答案:

北交《面向对象的程序设计》在线作业二

三、判断题(共 15 道试题,共 37.5 分。)

1. 友元类中所有成员函数都是友元函数 。( )

A. 错误

B. 正确

正确答案:

2. 在派生过程中,派生类吸收包括构造函数和析构函数在内的所有基类成员。( )

A. 错误

B. 正确

正确答案:

3. 在私有继承方式下,派生类的对象可访问基类中的公有成员。( )

A. 错误

B. 正确

正确答案:

4. 一个类可以作为另一个类的友元类。( )

A. 错误

B. 正确

正确答案:

5. 在类的定义中,引入友元的原因是提高效率。( )

A. 错误

B. 正确

正确答案:

6. 派生类不能作为基类派生出新类。( )

A. 错误

B. 正确

正确答案:

7. 成员函数中调用的虚函数可能实现动态联编。( )

A. 错误

B. 正确

正确答案:

8. 变量必须先定义后赋值。( )

A. 错误

B. 正确

正确答案:

9. 构造函数的定义必须在类体内 。( )

版权保护: 本文由老虎奥鹏原创,转载请保留链接: www.aopengtong.com

猜你喜欢