离线作业答案 发表于 2017-10-9 18:08:30

北交17秋《面向对象程序设计》在线作业12资料

北交《面向对象程序设计》在线作业一
一、单选题:【23道,总分:57.5分】
1.结构化程序设计所规定的三种基本控制结构是 (    )          (满分:2.5)
    A. 输入、处理、输出    B. 树形、网形、环形
    C. 顺序、选择、循环    D. 主程序、子程序、函数
2.有如下程序: #include using namespace std; class A { public: A(    ) { cout << "A"; } }; class B { public: B(    ) { cout << "B"; } }; class C : public A { B b; public: C(    ) { cout << "C"; } }; int main(    ) { C obj; return 0; } 执行后的输出结果是(    )          (满分:2.5)
    A. CBA
    B. BAC
    C. ACB
    D. ABC
3.有关运算符重载正确的描述是(    )。          (满分:2.5)
    A. C++语言允许重载运算符时改变运算符的操作个数
    B. C++语言允许重载运算符时改变运算符的优先级
    C. C++语言允许重载运算符时改变运算符的结合性
    D. C++语言允许重载运算符时改变运算符原来的功能
4.已知枚举类型定义语句为: enum Token { NAME, NUMBER, PLUS = 5, MINUS, PRINT = 10 }; 则下列叙述中错误的是(    )(          (满分:2.5)
    A. 枚举常量NAME的值为1
    B. 枚举常量NUMBER的值为1
    C. 枚举常量MINUS的值为6
    D. 枚举常量PRINT的值为10
5.下面有关重载函数的说法中正确的是(    )          (满分:2.5)
    A. 重载函数必须具有不同的返回值类型
    B. 重载函数形参个数必须不同
    C. 重载函数必须有不同的形参列表
    D. 重载函数名可以不同
6.在进行任何的C++流操作后,都可以用C++流的有关成员函数检测流的状态,用来检测是否到达文件的末尾函数是(    )。          (满分:2.5)
    A. fail(    )
    B. eof(    )
    C. bad(    )
    D. good(    )
7.下列有关类的说法不正确的是(    )。          (满分:2.5)
    A. 对象是类的一个实例
    B. 任何一个对象只能属于一个具体的类
    C. 一个类只能有一个对象
    D. 类与对象的关系和数据类型与变量的关系相似
8.有如下程序: #includeusing 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<<a.get(    )<<b.get(    ); return 0; } 执行后的输出结果是(    )          (满分:2.5)
    A. 55
    B. 57
    C. 75
    D. 77
9.使用如setfill(    )的操作符对数据进行格式输出时,应包含(    )头文件。          (满分:2.5)
    A. iostream
    B. fstream
    C. iomanip
    D. stdlib
10.假定AB为一个类,则执行“AB a(4) , b , * p ;”语句时,自动调用该类构造函数的次数为(    )。          (满分:2.5)
    A. 3
    B. 4
    C. 6
    D. 9
11.下列的各函数中,(    )不是类的成员函数。          (满分:2.5)
    A. 构造函数
    B. 析构函数
    C. 拷贝初始化构造函数
    D. 友元函数
12.有如下类声明: class Foo { int bar; }; 则Foo类的成员bar是(    )          (满分:2.5)
    A. 公有数据成员
    B. 公有成员函数
    C. 私有数据成员
    D. 私有成员函数
13.下列函数中,(    )是对文件进行读操作的。          (满分:2.5)
    A. read(    )
    B. write(    )
    C. tellg(    )
    D. seekp(    )
14.下列关于模板的叙述中,错误的是(    )          (满分:2.5)
    A. 模板声明中的第一个符号总是关键字template
    B. 在模板声明中用 <和> 括起来的部分是模板的形参表
    C. 类模板不能有数据成员
    D. 在一定条件下函数模板的实参可以省略
15.要定义一个具有5个元素的一维数组vect,并使其各元素的初值依次是 30,50,-88,0 和 0,则下列定义语句中错误的是(    )          (满分:2.5)
    A. int vect[ ]={30,50,-88};
    B. int vect[ ]={30,50,-88,0,0};
    C. int vect={30,50,-88};
    D. int vect={30,50,-88,0,0};
16.有如下类声明: 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          (满分:2.5)
    A. 4
    B. 3
    C. 2
    D. 1
17.用关键字(    )标记的函数被称为虚函数。          (满分:2.5)
    A. virtual
    B. private
    C. public
    D. protected
18.以下保留字(    )不能出现在说明虚函数原型的语句中。          (满分:2.5)
    A. static
    B. operator
    C. void
    D. const
19.下列关于this指针的叙述中,正确的是(    )          (满分:2.5)
    A. 任何与类相关的函数都有this指针
    B. 类的成员函数都有this指针
    C. 类的友元函数都有this指针
    D. 类的非静态成员函数才有this指针
20.下列关于派生类可访问它基类成员的描述中,错误的是(    )。          (满分:2.5)
    A. 派生类可访问它基类中的成员与继承方式有关
    B. 派生类不可访问它基类中的私有成员
    C. 公有继承方式下,派生类可访问它基类的私有成员
    D. 私有继承方式下,派生类可访问它基类中的公有成员和保护成员
21.下面关于C++流的叙述中,正确的是(    )          (满分:2.5)
    A. cin是一个输入流对象
    B. 可以用ifstream定义一个输出流对象
    C. 执行语句序列char *y="PQMN"; cout<
    D. 执行语句序列char x; cin.getline(x,80); 时,若键入 Happy new year 则x中的字符串是"Happy"
22.下列不是C++流对象的是(    )。          (满分:2.5)
    A. cout
    B. cin
    C. cerr
    D. ostream
23.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字(    )放在 函数原型或函数头的前面。          (满分:2.5)
    A. in
    B. inline
    C. inLine
    D. InLiner
二、多选题:【2道,总分:5分】

1.下面关于析构函数描述正确的是(    )          (满分:2.5)
    A. 系统可以提供默认的析构函数
    B. 析构函数必须由用户定义
    C. 析构函数没有参数
    D. 析构函数可以设置默认参数
2.继承是(    )的方法。          (满分:2.5)
    A. 将特殊的类变成通用的类
    B. 把通用的参数传送给特殊的类的对象
    C. 将通用的类变成特殊的类
    D. 将已有的类添加新的特性,但不重写它们
三、判断题:【15道,总分:37.5分】

1.用new动态申请的内存是在堆中分配的,而不是在栈中分配的。(    )          (满分:2.5)
    A. 错误
    B. 正确
2.在派生过程中,派生类吸收包括构造函数和析构函数在内的所有基类成员。(    )          (满分:2.5)
    A. 错误
    B. 正确
3.在类体内允许对数据成员进行初始化 。(    )          (满分:2.5)
    A. 错误
    B. 正确
4.使用const说明常量时,可以不必指出类型.(    )          (满分:2.5)
    A. 错误
    B. 正确
5.友元函数说明在类体内它是一种成员函数 。(    )          (满分:2.5)
    A. 错误
    B. 正确
6.在私有继承方式下,派生类的对象可访问基类中的公有成员。(    )          (满分:2.5)
    A. 错误
    B. 正确
7.子对象的初始化在其构造函数的成员初始化列表中实现。(    )          (满分:2.5)
    A. 错误
    B. 正确
8.静态数据成员函数是属于某个对象的。(    )          (满分:2.5)
    A. 错误
    B. 正确
9.抽象类中只能有一个纯虚函数。(    )          (满分:2.5)
    A. 错误
    B. 正确
10.虚函数不能是类的静态成员。(    )          (满分:2.5)
    A. 错误
    B. 正确
11.静态数据成员的值是不能改变的 。(    )          (满分:2.5)
    A. 错误
    B. 正确
12.派生类的成员函数可以直接访问基类的所有成员。(    )          (满分:2.5)
    A. 错误
    B. 正确
13.析构函数是不能重载的 。(    )          (满分:2.5)
    A. 错误
    B. 正确
14.派生类不能作为基类派生出新类。(    )          (满分:2.5)
    A. 错误
    B. 正确
15.变量必须先定义后赋值。(    )          (满分:2.5)
    A. 错误
    B. 正确
北交《面向对象程序设计》在线作业二
一、单选题:【23道,总分:57.5分】

1.在每个C++程序中都必须包含有这样一个函数,该函数的函数名(    )。          (满分:2.5)
    A. main
    B. MAIN
    C. name
    D. function
2.若一个类中含有纯虚函数,则该类称为(    )。          (满分:2.5)
    A. 基类
    B. 虚基类
    C. 抽象类
    D. 派生类
3.在进行任何的C++流操作后,都可以用C++流的有关成员函数检测流的状态,用来检测是否到达文件的末尾函数是(    )。          (满分:2.5)
    A. fail(    )
    B. eof(    )
    C. bad(    )
    D. good(    )
4.以下保留字(    )不能出现在说明虚函数原型的语句中。          (满分:2.5)
    A. static
    B. operator
    C. void
    D. const
5.以下错误的描述是(    )。 函数调用可以          (满分:2.5)
    A. 出现在一个表达式中
    B. 出现在执行语句中
    C. 作为一个函数的实参
    D. 作为一个函数的形参
6.下列静态数据成员的特性中,错误的是(    )          (满分:2.5)
    A. 说明静态数据成员前边加static
    B. 静态数据成员要在类体外初始化
    C. 引用静态数据成员时,要在静态数据成员前加和作用域运算符
    D. 静态数据成员不是一个类所有对象共享的
7.面向对象系统不具有(    )特性          (满分:2.5)
    A. 继承性
    B. 封装性
    C. 过程性
    D. 多态性
8.用关键字(    )标记的函数被称为虚函数。          (满分:2.5)
    A. virtual
    B. private
    C. public
    D. protected
9.有如下程序: #include using namespace std; class Test { public: Test(    ) { n+=2; } ~Test(    ) { n-=3; } static int getNum(    ) { return n; } private: static int n; }; int Test::n = 1; int main(    ) { Test* p = new Test; delete p; cout << "n=" << Test::getNum(    ) << end          (满分:2.5)
    A. n=0
    B. n=1
    C. n=2
    D. n=3
10.假定a为一个整型数组名,则元素a的字节地址为 (    )。          (满分:2.5)
    A. a+4
    B. a+8
    C. a+16
    D. a+32
11.下列关于派生类可访问它基类成员的描述中,错误的是(    )。          (满分:2.5)
    A. 派生类可访问它基类中的成员与继承方式有关
    B. 派生类不可访问它基类中的私有成员
    C. 公有继承方式下,派生类可访问它基类的私有成员
    D. 私有继承方式下,派生类可访问它基类中的公有成员和保护成员
12.对于包括(    )类型数据成员的用户定义类型必须定义其析构函数          (满分:2.5)
    A. static
    B. 指针类型
    C. 字符串
    D. 字符型
13.下列不合法的变量名为(    )          (满分:2.5)
    A. int
    B. int1
    C. name1
    D. name0
14.下列的各函数中,(    )不是类的成员函数。          (满分:2.5)
    A. 构造函数
    B. 析构函数
    C. 拷贝初始化构造函数
    D. 友元函数
15.通常拷贝构造函数的参数是(    )          (满分:2.5)
    A. 某个对象名
    B. 某个对象的成员名
    C. 某个对象的引用名
    D. 某个对象的指针名
16.下列关于运算符重载的叙述中,正确的是(    )          (满分:2.5)
    A. 通过运算符重载,可以定义新的运算符
    B. 有的运算符只能作为成员函数重载
    C. 若重载运算符+,则相应的运算符函数名是+
    D. 重载一个二元运算符时,必须声明两个形参
17.下列关于类和对象的叙述中,错误的是(    )          (满分:2.5)
    A. 一个类只能有一个对象
    B. 对象是类的具体实例
    C. 类是对某一类对象的抽象
    D. 类和对象的关系是一种数据类型与变量的关系
18.使用如setfill(    )的操作符对数据进行格式输出时,应包含(    )头文件。          (满分:2.5)
    A. iostream
    B. fstream
    C. iomanip
    D. stdlib
19.有如下程序: #includeusing 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<<a.get(    )<<b.get(    ); return 0; } 执行后的输出结果是(    )          (满分:2.5)
    A. 55
    B. 57
    C. 75
    D. 77
20.下列函数中,(    )是对文件进行读操作的。          (满分:2.5)
    A. read(    )
    B. write(    )
    C. tellg(    )
    D. seekp(    )
21.下列关于C++函数的叙述中,正确的是(    )          (满分:2.5)
    A. 每个函数至少要具有一个参数
    B. 每个函数都必须返回一个值
    C. 函数在被调用之前必须先声明
    D. 函数不能自己调用自己
22.关于虚函数的描述中,正确的是(    )          (满分:2.5)
    A. 虚函数是一个static类型的成员函数
    B. 虚函数是一个非成员函数
    C. 基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
    D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型
23.在以下关于C++语言的注释的叙述中,不正确的是(    )          (满分:2.5)
    A. C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示
    B. C++编译器在编译一个程序时,将跳过注释,不对其进行处理
    C. C++编译器在编译一个程序时,可发现注释中的单词拼写错误
    D. 程序中注释的多少不会影响所生成的可执行文件的长度
二、多选题:【2道,总分:5分】

1.下列函数中,可以作为虚函数的是(    )。          (满分:2.5)
    A. 普通函数
    B. 非静态成员函数
    C. 构造函数
    D. 析构函数
2.下面关于析构函数描述正确的是(    )          (满分:2.5)
    A. 系统可以提供默认的析构函数
    B. 析构函数必须由用户定义
    C. 析构函数没有参数
    D. 析构函数可以设置默认参数
三、判断题:【15道,总分:37.5分】

1.变量必须先定义后赋值。(    )          (满分:2.5)
    A. 错误
    B. 正确
2.友元函数说明在类体内它是一种成员函数 。(    )          (满分:2.5)
    A. 错误
    B. 正确
3.类的友元函数可以直接访问该类的所有成员。(    )          (满分:2.5)
    A. 错误
    B. 正确
4.在类体内允许对数据成员进行初始化 。(    )          (满分:2.5)
    A. 错误
    B. 正确
5.构造函数的定义必须在类体内 。(    )          (满分:2.5)
    A. 错误
    B. 正确
6.在C++语言中,类是支持数据封装的工具。(    )          (满分:2.5)
    A. 错误
    B. 正确
7.派生类的成员函数可以直接访问基类的所有成员。(    )          (满分:2.5)
    A. 错误
    B. 正确
8.在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才能具有多态的特征。(    )          (满分:2.5)
    A. 错误
    B. 正确
9.纯虚函数是一种不给出具体实现的虚函数。(    )          (满分:2.5)
    A. 错误
    B. 正确
10.在类的定义中,引入友元的原因是提高效率。(    )          (满分:2.5)
    A. 错误
    B. 正确
11.抽象类只能用作其他类的基类。(    )          (满分:2.5)
    A. 错误
    B. 正确
12.静态数据成员的值是不能改变的 。(    )          (满分:2.5)
    A. 错误
    B. 正确
13.常量不能作为左值使用。(    )          (满分:2.5)
    A. 错误
    B. 正确
14.子对象的初始化在其构造函数的成员初始化列表中实现。(    )          (满分:2.5)
    A. 错误
    B. 正确
15.一般对象和指向对象指针的成员函数表示分别是运算符.和->。(    )          (满分:2.5)
    A. 错误
    B. 正确

页: [1]
查看完整版本: 北交17秋《面向对象程序设计》在线作业12资料