homework 发表于 2017-5-18 09:36:40

东师2017春C++程序设计在线作业1和2答案

东师2017春C++程序设计17春在线作业1

一、单选题:
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. 正确

C++程序设计17春在线作业2

一、单选题:
1.下面的类型声明中正确的是(    )。          (满分:3)
    A. int &a;
    B. int &*p;
    C. int & &q;
    D. int I,*pp=&I;
2.如果类B在类A的基础上构造,那么,就称(    )。          (满分:3)
    A. 类A为基类或父类,类B为超类或子类
    B. 类A为基类、父类或超类,类B为派生类或子类
    C. 类A为派生类,类B为基类
    D. 类A为派生类或子类,类B为基类、父类或超类
3.如果在类A中用成员函数的方式重载了前缀自增运算符++,又定义了类A的一个对象a,则以下用法正确的是(    )。          (满分:3)
    A. operator++(a);
    B. a.operator++(    );
    C. a.operator++(0);
    D. a++;
4.定义类模板时要使用关键字(    )。          (满分:3)
    A. const
    B. new
    C. delete
    D. template
5.设有函数模板templateQ Sum(Q x,Q y){      return(x)+(y);}则下列语句中对该函数模板错误的使用是(    )。          (满分:3)
    A. Sum(10,2);
    B. Sum(5.0,6.7);
    C. Sum(15.2f,16.0f);
    D. Sum(″AB″,″CD″);
6.编译时的多态性通过使用(    ) 实现。          (满分:3)
    A. 构造函数
    B. 虚函数
    C. 重载函数
    D. 析构函数
7.决定C++语言中函数的返回值类型的是(    )。          (满分:3)
    A. return语句中的表达式类型
    B. 调用该函数时系统随机产生的类型
    C. 调用该函数时的主调用函数类型
    D. 在定义该函数时所指定的数据类型
8.要使用动态联编,必须使用(    )调用虚函数。          (满分:3)
    A. 类名
    B. 对象名
    C. 派生类指针
    D. 基类指针
9.静态数据成员的初始化必须在(    )。          (满分:3)
    A. 类内
    B. 类外
    C. 构造函数内
    D. 静态成员函数内
10.在下面有关静态成员函数的描述中,正确的是(    )。          (满分:3)
    A. 在静态成员函数中可以使用this指针
    B. 在建立对象前,就可以为静态数据成员赋值
    C. 静态成员函数在类外定义时,要用static前缀
    D. 静态成员函数只能在类外定义
11.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(    )。          (满分:3)
    A. 类
    B. 对象
    C. 函数体
    D. 数据块
12.下列关于运算符重载的描述中,正确的是(    )。          (满分:3)
    A. 可以改变运算符的目数
    B. 可以改变运算符的优先级
    C. 可以改变运算符的结合性
    D. 可以改变运算符的功能
13.下列(    )可以是虚函数。          (满分:3)
    A. 构造函数
    B. 拷贝构造函数
    C. 静态成员函数
    D. 析构函数
14.通常拷贝构造函数的参数是(    )。          (满分:3)
    A. 某个对象名
    B. 某个对象的成员名
    C. 某个对象的引用名
    D. 某个对象的指针名
15.下列(    )的调用方式是引用调用。          (满分:3)
    A. 形参是引用,实参是变量
    B. 形参和实参都是变量
    C. 形参是变量,实参是地址值
    D. 形参是指针,实参是地址值
16.C++语言建立类库是通过(    )实现的。          (满分:3)
    A. 类的嵌套
    B. 类的继承
    C. 虚函数
    D. 抽象类
17.下面程序的运行结果为(    )。#includeclass A{public:A(    ){cout<<”1”;}~A(    ){cout<<”2”;}}class B:public A{public:B(    ){cout<<”3”;}~B(    ){cout<<”4”;}}void main(    ){B b;}          (满分:3)
    A. 1234
    B. 1324
    C. 1342
    D. 3142
18.如果在类A中用友元函数的方式重载了后缀自增运算符++,又定义了类A的一个对象a,则以下用法正确的是(    )。          (满分:3)
    A. operator++(a,0);
    B. a.operator++(    );
    C. a.operator++(0);
    D. ++a;
19.如果表达式y*x++中,“*”是作为成员函数重载的运算符,“++”是作为友元函数重载的运算符,则采用运算符函数调用格式,该表达式还可以表示为(    )。          (满分:3)
    A. x.operator++(0).operator*(y)
    B. operator*(x.operator++(0),y)
    C. operator*(operator++(x,0),y)
    D. y.operator*(operator++(x,0))
20.下面对类的析构函数的定义是(    ) 。          (满分:3)
    A. X::~ X( 参数 );
    B. void X::~ X( 参数 );
    C. void X::~ X(    );
    D. X::~ X(    );
三、判断题:
1.如果一个类至少有一个纯虚函数,那么该类就被称为抽象类。          (满分:2)
    A. 错误
    B. 正确
2.编译时的多态是通过静态联编来实现的,运行时的多态是通过动态联编实现的。          (满分:2)
    A. 错误
    B. 正确
3.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。          (满分:2)
    A. 错误
    B. 正确
4.cout是I/O流库中预定义的输出流对象,cin是输入流对象。          (满分:2)
    A. 错误
    B. 正确
5.析构函数是不能被派生类继承的。          (满分:2)
    A. 错误
    B. 正确
6.数组中的每个元素它们的类型可以是不同的。          (满分:2)
    A. 错误
    B. 正确
7.类是一组对象的抽象,而对象则是类的一个实例。          (满分:2)
    A. 错误
    B. 正确
8.成员函数体可以写在类的内部也可以写在类的外部。          (满分:2)
    A. 错误
    B. 正确
9.无论什么方式的继承,基类的私有成员都不能被派生类访问。          (满分:2)
    A. 错误
    B. 正确
10.在删除一个动态对象时,将自动调用该动态对象所属类的析构函数。          (满分:2)
    A. 错误
    B. 正确
11.C++流类库是用继承方法建立起来的,它具有两个平行的基类,即istream类和ostream类,所有其他的流类都是从它们直接或间接地派生出来的。          (满分:2)
    A. 错误
    B. 正确
12.若有声明:class B:virtual public A{};则类B为类A的虚基类。          (满分:2)
    A. 错误
    B. 正确
13.不能在类声明中给数据成员赋初值。          (满分:2)
    A. 错误
    B. 正确
14.C++中,对象保存在内存中,栈内存是自动分配和释放的,而堆内存需要用户自己申请和释放。          (满分:2)
    A. 错误
    B. 正确
15.this指针是一个const指针,不能在程序中修改它或给它赋值。          (满分:2)
    A. 错误
    B. 正确
16.C++不允许定义有默认参数的函数。          (满分:2)
    A. 错误
    B. 正确
17.只要一个类定义了一个构造函数(不一定是无参构造函数),系统将不再给它提供缺省的构造函数。          (满分:2)
    A. 错误
    B. 正确
18.ifstream是用于读文件的文件流。          (满分:2)
    A. 错误
    B. 正确
19.函数模板是基于不同的数据类型完成类似的操作,而重载函数则是对不同的数据类型完成相同的操作。          (满分:2)
    A. 错误
    B. 正确
20.构造函数和析构函数都不能说明返回值类型,甚至说明为void类型也不行。          (满分:2)
    A. 错误
    B. 正确

页: [1]
查看完整版本: 东师2017春C++程序设计在线作业1和2答案