北交17春《面向对象程序设计》在线作业一二答案
北交17春《面向对象程序设计》在线作业一一、单选题:
1.面向对象系统不具有( )特性 (满分:2.5)
A. 继承性
B. 封装性
C. 过程性
D. 多态性
2.通常拷贝构造函数的参数是( ) (满分:2.5)
A. 某个对象名
B. 某个对象的成员名
C. 某个对象的引用名
D. 某个对象的指针名
3.有如下程序: #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
4.在以下关于C++语言的注释的叙述中,不正确的是( ) (满分:2.5)
A. C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示
B. C++编译器在编译一个程序时,将跳过注释,不对其进行处理
C. C++编译器在编译一个程序时,可发现注释中的单词拼写错误
D. 程序中注释的多少不会影响所生成的可执行文件的长度
5.有如下类声明: class Foo { int bar; }; 则Foo类的成员bar是( ) (满分:2.5)
A. 公有数据成员
B. 公有成员函数
C. 私有数据成员
D. 私有成员函数
6.假定AB为一个类,则执行“AB a(4) , b , * p ;”语句时,自动调用该类构造函数的次数为( )。 (满分:2.5)
A. 3
B. 4
C. 6
D. 9
7.下列关于C++函数的叙述中,正确的是( ) (满分:2.5)
A. 每个函数至少要具有一个参数
B. 每个函数都必须返回一个值
C. 函数在被调用之前必须先声明
D. 函数不能自己调用自己
8.执行语句序列 int i=0; while(i<25) i+=3; cou<<i; 输出结果是/( ) (满分:2.5)
A. 24
B. 25
C. 27
D. 28
9.关于虚函数的描述中,正确的是( ) (满分:2.5)
A. 虚函数是一个static类型的成员函数
B. 虚函数是一个非成员函数
C. 基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型
10.下列描述中,成员函数中包括( )的类肯定是抽象类 (满分:2.5)
A. virtual double Area( );
B. virtual double Area( )=0;
C. virtual double Area(void){}
D. double Area(void)=0;
11.结构化程序设计所规定的三种基本控制结构是 ( ) (满分:2.5)
A. 输入、处理、输出
B. 树形、网形、环形
C. 顺序、选择、循环
D. 主程序、子程序、函数
12.下列不是C++流对象的是( )。 (满分:2.5)
A. cout
B. cin
C. cerr
D. ostream
13.要定义一个具有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};
14.下面关于析构函数特征的描述正确的是( )。 (满分:2.5)
A. 一个类中可以定义多个析构函数
B. 析构函数名与类名相同
C. 析构函数不能指定返回类型
D. 析构函数可以有一个或多个参数
15.下面有关重载函数的说法中正确的是( ) (满分:2.5)
A. 重载函数必须具有不同的返回值类型
B. 重载函数形参个数必须不同
C. 重载函数必须有不同的形参列表
D. 重载函数名可以不同
16.对于包括( )类型数据成员的用户定义类型必须定义其析构函数 (满分:2.5)
A. static
B. 指针类型
C. 字符串
D. 字符型
17.下列关于派生类可访问它基类成员的描述中,错误的是( )。 (满分:2.5)
A. 派生类可访问它基类中的成员与继承方式有关
B. 派生类不可访问它基类中的私有成员
C. 公有继承方式下,派生类可访问它基类的私有成员
D. 私有继承方式下,派生类可访问它基类中的公有成员和保护成员
18.假定a为一个整型数组名,则元素a的字节地址为 ( )。 (满分:2.5)
A. a+4
B. a+8
C. a+16
D. a+32
19.设x和y均为bool量,则x ( ) y为假的条件是( )。 (满分:2.5)
A. 它们均为真
B. 其中一个为真
C. 它们均为假
D. 其中一个为假
20.在声明类时 ,下面说法正确的是( )。 (满分:2.5)
A. 可以在类的声明中给数据成员赋初值
B. 数据成员的数据类型可以是register
C. private,public,proected 可以按任意的顺序出现
D. 没有用private,public,proected定义的数据成员是共有成员
21.作用域运算符的功能是( ) (满分:2.5)
A. 给定作用域的大小
B. 表示作用域的级别的
C. 某个成员是属于哪个类的
D. 指出作用域的范围的
22.下面( )不是构造函数的特征。 (满分:2.5)
A. 构造函数可以重载
B. 构造函数可以设置缺省参数
C. 构造函数的函数名和类名相同
D. 构造函数必须指定返回值类型
23.在下列函数原型中,可以作为类AA构造函数的是( ) (满分:2.5)
A. void AA(int);
B. int AA( );
C. AA(int)const;
D. AA(int);
二、多选题:
1.继承是( )的方法。 (满分:2.5)
A. 将特殊的类变成通用的类
B. 把通用的参数传送给特殊的类的对象
C. 将通用的类变成特殊的类
D. 将已有的类添加新的特性,但不重写它们
2.下面说法正确的是( ) (满分:2.5)
A. 所有的函数都可以说明为内置函数
B. 具有循环语句、switch语句的函数不能说明为内置函数
C. 使用内置函数,可以加快程序执行的速度,但会增加程序代码的大小
D. 使用内置函数,可以减小程序代码大小,但使程序执行的速度减慢
三、判断题:
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.一般对象和指向对象指针的成员函数表示分别是运算符.和->。( ) (满分:2.5)
A. 错误
B. 正确
7.一个类可以作为另一个类的友元类。( ) (满分:2.5)
A. 错误
B. 正确
8.作为模板类型参数的关键字class,特别含义是“任何用户定义类的类型”。( ) (满分:2.5)
A. 错误
B. 正确
9.变量必须先定义后赋值。( ) (满分:2.5)
A. 错误
B. 正确
10.抽象类只能用作其他类的基类。( ) (满分:2.5)
A. 错误
B. 正确
11.用new动态申请的内存是在堆中分配的,而不是在栈中分配的。( ) (满分:2.5)
A. 错误
B. 正确
12.在C++语言中,类是支持数据封装的工具。( ) (满分:2.5)
A. 错误
B. 正确
13.常量不能作为左值使用。( ) (满分:2.5)
A. 错误
B. 正确
14.使用const说明常量时,可以不必指出类型.( ) (满分:2.5)
A. 错误
B. 正确
15.静态数据成员的值是不能改变的 。( ) (满分:2.5)
A. 错误
B. 正确
北交《面向对象程序设计》在线作业二
一、单选题:
1.以下保留字( )不能出现在说明虚函数原型的语句中。 (满分:2.5)
A. static
B. operator
C. void
D. const
2.有如下函数模板定义: template T func(T x, T y) { return x*x+y*y; } 在下列对func的调用中,错误的是( ) (满分:2.5)
A. func(3, 5);
B. func(3.0, 5.5);
C. func(3, 5.5);
D. func(3, 5.5);
3.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为: ( ) (满分:2.5)
A. AB operator+(AB & a , AB & b)
B. AB operator+(AB & a)
C. operator+(AB a)
D. AB & operator+( )
4.关于虚函数的描述中,正确的是( ) (满分:2.5)
A. 虚函数是一个static类型的成员函数
B. 虚函数是一个非成员函数
C. 基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数
D. 派生类的虚函数与基类的虚函数具有不同的参数个数和类型
5.文件操作中,打开文件的访问模式常量中,( )是以追加方式打开文件的。 (满分:2.5)
A. ios::in
B. ios::out
C. ios::binary
D. ios::ate
6.设x和y均为bool量,则x&&y为真的条件是 ( ) (满分:2.5)
A. 它们均为真
B. 其中一个为真
C. 它们均为假
D. 其中一个为假
7.C++语言的跳转语句中,对于break和continue说法正确的是( ) (满分:2.5)
A. break语句只应用于循环体中
B. continue语句只应用于循环体中
C. break是无条件跳转语句,continue不是
D. break和continue的跳转范围不够明确,容易产生问题
8.以下错误的描述是( )。 函数调用可以 (满分:2.5)
A. 出现在一个表达式中
B. 出现在执行语句中
C. 作为一个函数的实参
D. 作为一个函数的形参
9.下列关于运算符重载的叙述中,正确的是( ) (满分:2.5)
A. 通过运算符重载,可以定义新的运算符
B. 有的运算符只能作为成员函数重载
C. 若重载运算符+,则相应的运算符函数名是+
D. 重载一个二元运算符时,必须声明两个形参
10.下面关于派生类的描述中,( )是错的。 (满分:2.5)
A. 一个派生类可以作为另一个派生类的基类
B. 派生类至少有一个基类
C. 派生类的成员除了它自己的成员外,还包含了它的基类的成员
D. 派生类中继承的基类成员的访问权限到派生类保持不变
11.下列有关类的说法不正确的是( )。 (满分:2.5)
A. 对象是类的一个实例
B. 任何一个对象只能属于一个具体的类
C. 一个类只能有一个对象
D. 类与对象的关系和数据类型与变量的关系相似
12.下列静态数据成员的特性中,错误的是( ) (满分:2.5)
A. 说明静态数据成员前边加static
B. 静态数据成员要在类体外初始化
C. 引用静态数据成员时,要在静态数据成员前加和作用域运算符
D. 静态数据成员不是一个类所有对象共享的
13.下列描述中,成员函数中包括( )的类肯定是抽象类 (满分:2.5)
A. virtual double Area( );
B. virtual double Area( )=0;
C. virtual double Area(void){}
D. double Area(void)=0;
14.若用数组名作为函数调用时的实参,则实际上传递给形参的是( ) (满分:2.5)
A. 数组首地址
B. 数组的第一个元素值
C. 数组中全部元素的值
D. 数组元素的个数
15.下列关于派生类可访问它基类成员的描述中,错误的是( )。 (满分:2.5)
A. 派生类可访问它基类中的成员与继承方式有关
B. 派生类不可访问它基类中的私有成员
C. 公有继承方式下,派生类可访问它基类的私有成员
D. 私有继承方式下,派生类可访问它基类中的公有成员和保护成员
16.for(int x=0,y=0;!x&&y<=5;y++)语句执行循环的次数是( ) (满分:2.5)
A. 0
B. 5
C. 6
D. 无数次
17.下列关于类和对象的叙述中,错误的是( ) (满分:2.5)
A. 一个类只能有一个对象
B. 对象是类的具体实例
C. 类是对某一类对象的抽象
D. 类和对象的关系是一种数据类型与变量的关系
18.下面函数的功能是( )。 void fun(char s1[ ], char s2[ ]) { while(s2++=s1++); }( (满分:2.5)
A. 字符串比较
B. 字符串复制
C. 字符串连接
D. 字符串反向
19.要定义一个具有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};
20.假定a为一个整型数组名,则元素a的字节地址为 ( )。 (满分:2.5)
A. a+4
B. a+8
C. a+16
D. a+32
21.对于包括( )类型数据成员的用户定义类型必须定义其析构函数 (满分:2.5)
A. static
B. 指针类型
C. 字符串
D. 字符型
22.下列函数中,( )是对文件进行读操作的。 (满分:2.5)
A. read( )
B. write( )
C. tellg( )
D. seekp( )
23.下列不是C++流对象的是( )。 (满分:2.5)
A. cout
B. cin
C. cerr
D. ostream
二、多选题:
1.下列函数中,可以作为虚函数的是( )。 (满分:2.5)
A. 普通函数
B. 非静态成员函数
C. 构造函数
D. 析构函数
2.下面说法正确的是( ) (满分:2.5)
A. 将数据结构和算法置于同一个函数内,即为数据封装
B. 一个类通过集成可以获得另一个类的特征
C. 面向对象要求程序员集中于事物的本质特征,用抽象的观点看待程序
D. 同一消息为不同的对象接受时,产生的行为是一样的,这称为一致性
三、判断题:
1.在类的定义中,引入友元的原因是提高效率。( ) (满分:2.5)
A. 错误
B. 正确
2.作为模板类型参数的关键字class,特别含义是“任何用户定义类的类型”。( ) (满分: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]