东师《C++程序设计》17春在线作业1答案资料
C++程序设计17春在线作业1东师在线作业为随机作业,请联系QQ515224986代做
一、单选题:
1.可以用p.a的形式访问派生类对象p的基类成员a,其中a是( ) (满分:3)
A. 私有继承的公有成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. 公有继承的公有成员
2.定义类模板时要使用关键字( )。 (满分:3)
A. const
B. new
C. delete
D. template
3.在函数声明中,( )是不必要的。 (满分:3)
A. 函数名
B. 函数类型
C. 参数的名称
D. 参数类型
4.派生类的对象对它的基类成员中什么是可访问的( )? (满分:3)
A. 公有继承的公有成员
B. 公有继承的私有成员
C. 公有继承的保护成员
D. 私有继承的公有成员
5.假设定义了一个具有构造函数的book类,构造函数只有一个非默认的整型参数,则下列的类型转换错误的是( )。 (满分:3)
A. book(12)
B.(book20);
C. book x=2;
D. book x=book(2);
6.重载赋值操作符时,应声明为( )函数。 (满分:3)
A. 友元
B. 虚
C. 成员
D. 多态
7.下面关于静态成员的描述中,正确的是( )。 (满分:3)
A. 静态数据成员是类的所有对象共享的数据
B. 类的每个对象都有自己的静态数据成员
C. 类的不同对象有不同的静态数据成员值
D. 静态数据成员不能通过类的对象访问
8.C++利用( )实现面向对象程序设计的封装性。 (满分:3)
A. 构造数据类型—类
B. 构造数据类型—枚举
C. 类的派生机制
D. 函数重载与运算符重载
9.构造函数是一种特殊的成员函数,显式定义时其访问属性应被定义为( )。 (满分:3)
A. public
B. private
C. protected
D. static
10.假定变量x定义为“int x=8;”,要使rx成为x的引用(别名),rx应定义为( )。 (满分:3)
A. int rx=x;
B. int rx=&x;
C. int *rx=&x;
D. int &rx=x;
11.应在下列程序划线处填入的正确语句是( )。#include class Base { public: void fun( ){cout<<"Base::fun"<<ENDL;} }; class Derived:public Base { void fun( ) {( )( )( ) //显示调用基类的函数fun( ) cout<<"Derived::fun"<<ENDL; } }; (满分:3)
A. fun( );
B. Base.fun( );
C. Base::fun( );
D. Base->fun( );
12.若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的( )。 (满分:3)
A. 私有成员
B. 公有成员
C. 保护成员
D. 保护成员或私有成员
13.下列关于虚基类的描述,错误的是( )。 (满分:3)
A. 设置虚基类的目的是为了消除二义性
B. 虚基类的构造函数在非虚基类之后调用
C. 若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用
D. 若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数
14.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是( )。 (满分:3)
A. 类
B. 对象
C. 函数体
D. 数据块
15.如有以下模板类定义:Template class sum { T a, b;Public:Sum(T x, T y); }则在类体外定义构造函数正确的是( )。 (满分:3)
A. template <class T>sum::sum(T x,T y) { a=x; b=y; }
B. template <typename T>sum(T x,T y) { a=x; b=y; }
C. template <class T>sum<T>::sum(T x,T y) { a=x; b=y; }
D. sum<T>::sum(T x,T y) { a=x; b=y; }
16.析构函数是一种特殊的成员函数,显式定义时其访问属性应被定义为( )。 (满分:3)
A. public
B. private
C. protected
D. static
17.假定一个类A只含有一个整型数据成员x,当用户不定义任何构造函数时,系统为该类定义的默认无参构造函数为( )。 (满分:3)
A. A( ){x=0;}
B. A(int a=0):x(a){}
C. A( ){}
D. A(int a):x(a){}
18.下列关于运算符重载的描述中,正确的是( )。 (满分:3)
A. 可以改变运算符的目数
B. 可以改变运算符的优先级
C. 可以改变运算符的结合性
D. 可以改变运算符的功能
19.不能作为重载函数的调用依据的是( )。 (满分:3)
A. 参数个数
B. 参数类型
C. 返回值类型
D. 函数名称
20.假定classA为一个类,如果用户未定义析构函数,则系统为该类定义的默认析构函数为( )。 (满分:3)
A. classA::~classA( ){}
B. classA::classA( ){}
C. classA::~classA(int=0){}
D. void classA::~classA( ){}
三、判断题:
1.在面向对象的程序设计中,将一组对象的共同特性抽象出来形成类。 (满分:2)
A. 错误
B. 正确
2.使用setw( )函数时需包含iomanip.h头文件,而使用width( )函数时需包含iostream.h头文件。 (满分:2)
A. 错误
B. 正确
3.常成员函数不能更新对象的数据成员,也不能调用该类中的普通成员函数。 (满分:2)
A. 错误
B. 正确
4.操纵符hex、oct、dec只对下一个输出有效。 (满分:2)
A. 错误
B. 正确
5.使用重载运算符既可以用运算符的方式又可以用函数调用的方式。 (满分:2)
A. 错误
B. 正确
6.构造函数和析构函数都不能带参数。 (满分:2)
A. 错误
B. 正确
7.后缀自增运算符用成员函数方式重载时,其参数个数为0,用友元函数重载时,其参数个数为1。 (满分:2)
A. 错误
B. 正确
8.类和对象之间的关系是抽象和具体的关系。 (满分:2)
A. 错误
B. 正确
9.建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为对象成员所属类、基类、派生类的构造函数。 (满分:2)
A. 错误
B. 正确
10.文件流创建方式是打开二进制文件的是ios::binary。 (满分:2)
A. 错误
B. 正确
11.成员函数体写在类外部的一定不是内联函数,写在类内部的一定是内联函数。 (满分:2)
A. 错误
B. 正确
12.指针和引用都是变量,都占有单独的内存空间。 (满分:2)
A. 错误
B. 正确
13.构造函数和析构函数都与类同名。 (满分:2)
A. 错误
B. 正确
14.ios类中的格式化输入输出成员函数可以直接用在提取运算符“>>”或插入运算符“<<”后面。 (满分:2)
A. 错误
B. 正确
15.输入输出特性是由C++本身提供的。 (满分:2)
A. 错误
B. 正确
16.当一个类被说明为另一个类的友元时,它的所有的成员函数都成为另一个类的友元函数。 (满分:2)
A. 错误
B. 正确
17.当基类含有带参数的构造函数时,派生类必须定义构造函数。 (满分:2)
A. 错误
B. 正确
18.ofstream是用于写文件的文件流。 (满分:2)
A. 错误
B. 正确
19.成员函数体写在类的外部时不必在类的内部保留函数声明。 (满分:2)
A. 错误
B. 正确
20.C++中的函数调用就是面向对象理论中的消息。 (满分:2)
A. 错误
B. 正确
本内容由www.openhelp100.com整理发布
页:
[1]