homework 发表于 2017-6-11 11:29:20

东北师范大学17春《C++程序设计》在线作业


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

一、单选题:【20道,总分:60分】

1.已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明(    )。          (满分:3)
    A. f1和f2都是静态函数
    B. f1是静态函数,f2不是静态函数
    C. f1不是静态函数,f2是静态函数
    D. f1和f2都不是静态函数
2.应在下列程序划线处填入的正确语句是(    )。#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(    );
3.假设已经有定义const char*const name="chen"; 下面的语句中正确的是(    )。          (满分:3)
    A. name= 'a';
    B. name="lin";
    C. name=new char;
    D. cout<<name;
4.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(    )。          (满分:3)
    A. 友元函数
    B. 虚函数
    C. 构造函数
    D. 析构函数
5.若有定义“int x=17;”,则语句“cout<<hex<<x;”的输出结果是(    )。          (满分:3)
    A. 11
    B. 0x11
    C. 21
    D. 021
6.若已知char str,有语句 cin>>str;,当输入为:This is a cat,则str中的内容为(    )。          (满分:3)
    A. This is a cat
    B. This
    C. This is
    D. This is a
7.C++利用(    )实现面向对象程序设计的多态性。          (满分:3)
    A. 类的派生机制
    B. 构造数据类型—类
    C. 构造数据类型—枚举
    D. 函数重载或运算符重载
8.在 C++ 中,数据与操作的封装是借助于(    )达到的。          (满分:3)
    A. 指针
    B. 类
    C. 数组
    D. 函数
9.假定classA为一个类,则执行“classA x(5);”语句时将自动调用该类的(    )。          (满分:3)
    A. 无参构造函数
    B. 带参构造函数
    C. 复制构造函数
    D. 赋值重载函数
10.C++流类库预定义的与标准输入设备相关联的是(    )。          (满分:3)
    A. cin
    B. cout
    C. cerr
    D. clog
11.下列函数中,(    )是对文件进行写操作的。          (满分:3)
    A. get(    )
    B. read(    )
    C. seekg(    )
    D. put(    )
12.使用派生类的主要原因是(    )。          (满分:3)
    A. 提高代码的可重用性
    B. 提高程序的运行效率
    C. 加强类的封装性
    D. 实现数据的隐藏
13.说明一个成员为静态成员的关键字为(    )。          (满分:3)
    A. static
    B. extern
    C. inline
    D. friend
14.下面不能作为函数的返回类型的是(    )。          (满分:3)
    A. new
    B. int
    C. long
    D. void
15.在声明类时,下面的说法正确的是(    )。          (满分:3)
    A. 可以在类的声明中给数据成员赋初值
    B. 数据成员的数据类型可以是register
    C. private、public、protected可以按任意顺序出现
    D. 没有用private、public、protected定义的数据成员是公有成员
16.C++程序的执行总是从(    )开始的。          (满分:3)
    A. main函数
    B. 第一行
    C. 头文件
    D. 函数注释
17.建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为(    )的构造函数。          (满分:3)
    A. 基类、自己所属类、对象成员所属类
    B. 对象成员所属类、基类、自己所属类
    C. 自己所属类、对象成员所属类、基类
    D. 基类、对象成员所属类、自己所属类
18.析构函数是一种特殊的成员函数,显式定义时其访问属性应被定义为(    )。          (满分:3)
    A. public
    B. private
    C. protected
    D. static
19.在C++中继承方式有几种(    )。          (满分:3)
    A. 1
    B. 2
    C. 3
    D. 4
20.对于公有继承,基类的公有和保护成员在派生类中将(    )成员。          (满分:3)
    A. 全部变成公有
    B. 全部变成保护
    C. 全部变成私有
    D. 仍然保持为公有和保护
二、判断题:【20道,总分:40分】

1.重载函数至少在参数个数、参数类型或参数顺序上要有所不同。          (满分:2)
    A. 错误
    B. 正确
2.常量和引用在声明时必须初始化。          (满分:2)
    A. 错误
    B. 正确
3.构造函数是不能说明它的返回值类型的,但可以说明为void类型。          (满分:2)
    A. 错误
    B. 正确
4.对于类中的对象成员既可以在构造函数的初始化列表中初始化也可以在构造函数体中初始化。          (满分:2)
    A. 错误
    B. 正确
5.类中含有指针数据成员时,若不定义拷贝构造函数则会产生指针悬挂问题。          (满分:2)
    A. 错误
    B. 正确
6.fstream是既可用于写文件又可用于读文件的文件流。          (满分:2)
    A. 错误
    B. 正确
7.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。          (满分:2)
    A. 错误
    B. 正确
8.IO流库中定义的格式操作符ws表示跳过输入流前面的空白字符。          (满分:2)
    A. 错误
    B. 正确
9.要对文件进行读写操作,必须在文件开头包含头文件fstream.h          (满分:2)
    A. 错误
    B. 正确
10.在C++中,构造派生类对象时,总是先从基类的初始化开始的。          (满分:2)
    A. 错误
    B. 正确
11.对于类中内嵌的对象、常量、引用等数据成员需要在构造函数的初始化列表中初始化。          (满分:2)
    A. 错误
    B. 正确
12.构造函数和析构函数都不能带参数。          (满分:2)
    A. 错误
    B. 正确
13.在C++中,只能重载已有的运算符。          (满分:2)
    A. 错误
    B. 正确
14.C++编译器能够区分重载的无参函数和缺省参数的函数。          (满分:2)
    A. 错误
    B. 正确
15.当一个函数无返回值时,函数的返回类型可省略。          (满分:2)
    A. 错误
    B. 正确
16.C++利用类的派生机制实现面向对象程序设计的继承性。          (满分:2)
    A. 错误
    B. 正确
17.常类型是指使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不可改变的。          (满分:2)
    A. 错误
    B. 正确
18.C++利用类来实现面向对象程序设计的继承性。          (满分:2)
    A. 错误
    B. 正确
19.new和delete运算符可以被重载。          (满分:2)
    A. 错误
    B. 正确
20.类对象的输入输出需在类中定义重载的提取运算符“>>”和插入运算符“<<”。          (满分:2)
    A. 错误
    B. 正确
C++程序设计17春在线作业1
一、单选题:【20道,总分:60分】

1.C++是一种(    )的程序设计语言。          (满分:3)
    A. 面向对象
    B. 即可面向过程,又可面向对象
    C. 面向过程
    D. 面向系统
2.get(    )函数的功能是从输入流中读取(    )。          (满分:3)
    A. 一个字符
    B. 当前字符
    C. 一行字符
    D. 指定若干个字符
3.当派生类中有和基类一样名字的成员时,如果没有使用类名加以限制,则(    )。          (满分:3)
    A. 基类的同名成员将覆盖派生类的成员
    B. 将产生二义性
    C. 派生类的同名成员将覆盖基类的成员
    D. 是不允许的
4.构造函数是一种特殊的成员函数,显式定义时其访问属性应被定义为(    )。          (满分:3)
    A. public
    B. private
    C. protected
    D. static
5.面向对象的程序设计语言必须具备的关键要素是(    )。          (满分:3)
    A. 抽象和封装
    B. 抽象和多态性
    C. 抽象、封装、继承和多态性
    D. 抽象、封装和继承性
6.C++的继承性允许派生类继承基类的(    )。          (满分:3)
    A. 部分特性,并允许增加新的特性或重定义基类的特性
    B. 部分特性,但不允许增加新的特性或重定义基类的特性
    C. 所有特性,并允许增加新的特性或重定义基类的特性
    D. 所有特性,但不允许增加新的特性或重定义基类的特性
7.要想以读方式打开文件“D:\File.txt”,以下不能实现目的的语句是(    )。          (满分:3)
    A. ifstream inf("D:\\File txt",ios::in);
    B. ifstream inf("D:\\File.txt");
    C. ofstream inf("D:\\File.txt",ios::out);
    D. fstream inf("D:\\File.txt",ios::in|ios::out);
8.构造函数是在(    )时被执行的。          (满分:3)
    A. 程序编译
    B. 创建对象
    C. 创建类
    D. 程序装入内存
9.假设已经有定义const char*const name="chen"; 下面的语句中正确的是(    )。          (满分:3)
    A. name= 'a';
    B. name="lin";
    C. name=new char;
    D. cout<<name;
10.以下基类中的成员函数中表示纯虚函数的是(    ) 。          (满分:3)
    A. virtual void vf(int);
    B. virtual void vf(int)=0;
    C. virtual void vf(int=0);
    D. virtual void vf(int){ };
11.假定classA为一个类,如果用户未定义析构函数,则系统为该类定义的默认析构函数为(    )。          (满分:3)
    A. classA::~classA(    ){}
    B. classA::classA(    ){}
    C. classA::~classA(int=0){}
    D. void classA::~classA(    ){}
12.下面不能作为函数的返回类型的是(    )。          (满分:3)
    A. new
    B. int
    C. long
    D. void
13.对于类定义class A{      public:             virtual void func1(    ){}             void func2(    ){}};class B:public A{      public:             void func1(    ){cout<<″class B func 1″<<end1;}             virtual void func2(    ){cout<<″class B f          (满分:3)
    A. A::func2(    )和B::func1(    )都是虚函数
    B. A::func2(    )和B::func1(    )都不是虚函数
    C. B::func1(    )是虚函数,而A::func2(    )不是虚函数
    D. B::func1(    )不是虚函数,而A::func2(    )是虚函数
14.下列选项中,(    )是istream类的对象。          (满分:3)
    A. cin
    B. cout
    C. cerr
    D. clog
15.如果在类A中用友元函数的方式重载了后缀自增运算符++,又定义了类A的一个对象a,则以下用法正确的是(    )。          (满分:3)
    A. operator++(a,0);
    B. a.operator++(    );
    C. a.operator++(0);
    D. ++a;
16.假定一个类的构造函数为“B(int a, int b):a(ax),b(bx){}”, 则执行“B x(6,5);y(3,2);”语句序列后,x.a的值为(    )。          (满分:3)
    A. 2
    B. 3
    C. 5
    D. 6
17.下面叙述不正确的是(    )。          (满分:3)
    A. 基类的保护成员在保护派生类中仍然是保护的
    B. 基类的保护成员在公有派生类中仍然是保护的
    C. 基类的保护成员在私有派生类中仍然是保护的
    D. 对基类成员的访问必须是无二义性的
18.一个函数功能不太复杂但要求被频繁调用,应选用(    )。          (满分:3)
    A. 内联函数
    B. 重载函数
    C. 递归函数
    D. 嵌套函数
19.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(    )。          (满分:3)
    A. ios::in
    B. ios::out
    C. ios::in|ios::out
    D. 以上都不对
20.下列(    )的调用方式是引用调用。          (满分:3)
    A. 形参是引用,实参是变量
    B. 形参和实参都是变量
    C. 形参是变量,实参是地址值
    D. 形参是指针,实参是地址值
二、判断题:【20道,总分:40分】

1.C++中,对象保存在内存中,栈内存是自动分配和释放的,而堆内存需要用户自己申请和释放。          (满分:2)
    A. 错误
    B. 正确
2.new和delete运算符可以被重载。          (满分:2)
    A. 错误
    B. 正确
3.当基类的构造函数没有参数,或没有显式定义构造函数时,派生类可以不定义构造函数。          (满分:2)
    A. 错误
    B. 正确
4.ofstream是用于写文件的文件流。          (满分:2)
    A. 错误
    B. 正确
5.类模板必须由程序员实例化成模板类。          (满分:2)
    A. 错误
    B. 正确
6.说明或定义对象时,类名前不需加class关键字。          (满分:2)
    A. 错误
    B. 正确
7.无论何种方式继承,基类的公有成员在派生类中的访问权限都是公有的。          (满分:2)
    A. 错误
    B. 正确
8.无论何时编译器都为类构造一个无参数的缺省的构造函数。          (满分:2)
    A. 错误
    B. 正确
9.若重载了赋值运算符“=”,则相当于重载了“+=”、“-=”、“*=”、“/=”运算符。          (满分:2)
    A. 错误
    B. 正确
10.公有继承方式下,基类成员的访问权限在派生类中保持不变。          (满分:2)
    A. 错误
    B. 正确
11.类和对象之间的关系是具体和抽象的关系。          (满分:2)
    A. 错误
    B. 正确
12.私有静态数据成员不能被类外部函数访问,也不能用对象进行访问。          (满分:2)
    A. 错误
    B. 正确
13.void型指针是通用型指针,它可以接受任何类型的指针的赋值。          (满分:2)
    A. 错误
    B. 正确
14.撤销包含有对象成员的派生类对象时,自动调用析构函数的执行顺序依次为派生类、对象成员所属类、基类的析构函数。          (满分:2)
    A. 错误
    B. 正确
15.若有声明:class B:virtual public A{};则类A为类B的虚基类。          (满分:2)
    A. 错误
    B. 正确
16.析构函数可以是虚函数,构造函数不能定义为虚函数。          (满分:2)
    A. 错误
    B. 正确
17.C++利用函数重载实现面向对象程序设计的封装性。          (满分:2)
    A. 错误
    B. 正确
18.类中成员的默认访问属性为公有,结构中成员的默认访问属性为私有。          (满分:2)
    A. 错误
    B. 正确
19.get(    )和put(    )函数的功能是一次读写一个数据块,而read(    )和write(    )函数是一次读写一个字符。          (满分:2)
    A. 错误
    B. 正确
20.静态成员函数与在一般的成员函数一样,都隐含有一个this指针。          (满分:2)
    A. 错误
    B. 正确
C++程序设计17春在线作业1
一、单选题:【20道,总分:60分】

1.已知f1和f2是同一类的两个成员函数,但f1不能直接调用f2,这说明(    )。          (满分:3)
    A. f1和f2都是静态函数
    B. f1是静态函数,f2不是静态函数
    C. f1不是静态函数,f2是静态函数
    D. f1和f2都不是静态函数
2.应在下列程序划线处填入的正确语句是(    )。#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(    );
3.假设已经有定义const char*const name="chen"; 下面的语句中正确的是(    )。          (满分:3)
    A. name= 'a';
    B. name="lin";
    C. name=new char;
    D. cout<<name;
4.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是(    )。          (满分:3)
    A. 友元函数
    B. 虚函数
    C. 构造函数
    D. 析构函数
5.若有定义“int x=17;”,则语句“cout<<hex<<x;”的输出结果是(    )。          (满分:3)
    A. 11
    B. 0x11
    C. 21
    D. 021
6.若已知char str,有语句 cin>>str;,当输入为:This is a cat,则str中的内容为(    )。          (满分:3)
    A. This is a cat
    B. This
    C. This is
    D. This is a
7.C++利用(    )实现面向对象程序设计的多态性。          (满分:3)
    A. 类的派生机制
    B. 构造数据类型—类
    C. 构造数据类型—枚举
    D. 函数重载或运算符重载
8.在 C++ 中,数据与操作的封装是借助于(    )达到的。          (满分:3)
    A. 指针
    B. 类
    C. 数组
    D. 函数
9.假定classA为一个类,则执行“classA x(5);”语句时将自动调用该类的(    )。          (满分:3)
    A. 无参构造函数
    B. 带参构造函数
    C. 复制构造函数
    D. 赋值重载函数
10.C++流类库预定义的与标准输入设备相关联的是(    )。          (满分:3)
    A. cin
    B. cout
    C. cerr
    D. clog
11.下列函数中,(    )是对文件进行写操作的。          (满分:3)
    A. get(    )
    B. read(    )
    C. seekg(    )
    D. put(    )
12.使用派生类的主要原因是(    )。          (满分:3)
    A. 提高代码的可重用性
    B. 提高程序的运行效率
    C. 加强类的封装性
    D. 实现数据的隐藏
13.说明一个成员为静态成员的关键字为(    )。          (满分:3)
    A. static
    B. extern
    C. inline
    D. friend
14.下面不能作为函数的返回类型的是(    )。          (满分:3)
    A. new
    B. int
    C. long
    D. void
15.在声明类时,下面的说法正确的是(    )。          (满分:3)
    A. 可以在类的声明中给数据成员赋初值
    B. 数据成员的数据类型可以是register
    C. private、public、protected可以按任意顺序出现
    D. 没有用private、public、protected定义的数据成员是公有成员
16.C++程序的执行总是从(    )开始的。          (满分:3)
    A. main函数
    B. 第一行
    C. 头文件
    D. 函数注释
17.建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为(    )的构造函数。          (满分:3)
    A. 基类、自己所属类、对象成员所属类
    B. 对象成员所属类、基类、自己所属类
    C. 自己所属类、对象成员所属类、基类
    D. 基类、对象成员所属类、自己所属类
18.析构函数是一种特殊的成员函数,显式定义时其访问属性应被定义为(    )。          (满分:3)
    A. public
    B. private
    C. protected
    D. static
19.在C++中继承方式有几种(    )。          (满分:3)
    A. 1
    B. 2
    C. 3
    D. 4
20.对于公有继承,基类的公有和保护成员在派生类中将(    )成员。          (满分:3)
    A. 全部变成公有
    B. 全部变成保护
    C. 全部变成私有
    D. 仍然保持为公有和保护
二、判断题:【20道,总分:40分】

1.重载函数至少在参数个数、参数类型或参数顺序上要有所不同。          (满分:2)
    A. 错误
    B. 正确
2.常量和引用在声明时必须初始化。          (满分:2)
    A. 错误
    B. 正确
3.构造函数是不能说明它的返回值类型的,但可以说明为void类型。          (满分:2)
    A. 错误
    B. 正确
4.对于类中的对象成员既可以在构造函数的初始化列表中初始化也可以在构造函数体中初始化。          (满分:2)
    A. 错误
    B. 正确
5.类中含有指针数据成员时,若不定义拷贝构造函数则会产生指针悬挂问题。          (满分:2)
    A. 错误
    B. 正确
6.fstream是既可用于写文件又可用于读文件的文件流。          (满分:2)
    A. 错误
    B. 正确
7.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。          (满分:2)
    A. 错误
    B. 正确
8.IO流库中定义的格式操作符ws表示跳过输入流前面的空白字符。          (满分:2)
    A. 错误
    B. 正确
9.要对文件进行读写操作,必须在文件开头包含头文件fstream.h          (满分:2)
    A. 错误
    B. 正确
10.在C++中,构造派生类对象时,总是先从基类的初始化开始的。          (满分:2)
    A. 错误
    B. 正确
11.对于类中内嵌的对象、常量、引用等数据成员需要在构造函数的初始化列表中初始化。          (满分:2)
    A. 错误
    B. 正确
12.构造函数和析构函数都不能带参数。          (满分:2)
    A. 错误
    B. 正确
13.在C++中,只能重载已有的运算符。          (满分:2)
    A. 错误
    B. 正确
14.C++编译器能够区分重载的无参函数和缺省参数的函数。          (满分:2)
    A. 错误
    B. 正确
15.当一个函数无返回值时,函数的返回类型可省略。          (满分:2)
    A. 错误
    B. 正确
16.C++利用类的派生机制实现面向对象程序设计的继承性。          (满分:2)
    A. 错误
    B. 正确
17.常类型是指使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间是不可改变的。          (满分:2)
    A. 错误
    B. 正确
18.C++利用类来实现面向对象程序设计的继承性。          (满分:2)
    A. 错误
    B. 正确
19.new和delete运算符可以被重载。          (满分:2)
    A. 错误
    B. 正确
20.类对象的输入输出需在类中定义重载的提取运算符“>>”和插入运算符“<<”。          (满分:2)
    A. 错误
    B. 正确
奥鹏东师C++程序设计17春在线作业2
一、单选题:【20道,总分:60分】

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(    );
二、判断题:【20道,总分:40分】

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. 正确
C++程序设计17春在线作业2
一、单选题:【20道,总分:60分】

1.对于类定义class A{      public:             virtual void func1(    ){}             void func2(    ){}};class B:public A{      public:             void func1(    ){cout<<″class B func 1″<<end1;}             virtual void func2(    ){cout<<″class B f          (满分:3)
    A. A::func2(    )和B::func1(    )都是虚函数
    B. A::func2(    )和B::func1(    )都不是虚函数
    C. B::func1(    )是虚函数,而A::func2(    )不是虚函数
    D. B::func1(    )不是虚函数,而A::func2(    )是虚函数
2.如果类A被说明成类B的友元,则(    )。          (满分:3)
    A. 类A的成员即类B的成员
    B. 类B的成员即类A的成员
    C. 类A的成员函数不得访问类B的成员
    D. 类B不一定是类A的友元
3.C++中引入友元的作用是(    )。          (满分:3)
    A. 提高程序的运用效率
    B. 加强类的封装性
    C. 实现数据的隐藏性
    D. 增加成员函数的种类
4.假定classA为一个类,f(    )为该类公有的数据成员,x为该类的一个对象,则访问x对象中成员函数f(    )的格式为(    )。          (满分:3)
    A. x.f
    B. x.f(    )
    C. x->f
    D. x->f(    )
5.已知类A是类B的友元,类B是类C的友元,则(    )。          (满分:3)
    A. 类A一定是类C的友元
    B. 类C一定是类A的友元
    C. 类C的成员函数可以访问类B的对象的任何成员
    D. 类A的成员函数可以访问类B的对象的任何成员
6.在派生类中重新定义虚函数时,除了(    ),其它方面都必须与基类中相应的虚函数保持一致。          (满分:3)
    A. 参数个数
    B. 参数类型
    C. 函数体
    D. 函数名称
7.决定C++语言中函数的返回值类型的是(    )。          (满分:3)
    A. return语句中的表达式类型
    B. 调用该函数时系统随机产生的类型
    C. 调用该函数时的主调用函数类型
    D. 在定义该函数时所指定的数据类型
8.要想以读方式打开文件“D:\File.txt”,以下不能实现目的的语句是(    )。          (满分:3)
    A. ifstream inf("D:\\File txt",ios::in);
    B. ifstream inf("D:\\File.txt");
    C. ofstream inf("D:\\File.txt",ios::out);
    D. fstream inf("D:\\File.txt",ios::in|ios::out);
9.下列(    )的调用方式是引用调用。          (满分:3)
    A. 形参是引用,实参是变量
    B. 形参和实参都是变量
    C. 形参是变量,实参是地址值
    D. 形参是指针,实参是地址值
10.语句ofstream f(“SALARY.DAT”,ios::app|ios::binary);的功能是建立流对象f,试图打开文件SALARY.DAT并与之连接,并且(    )。          (满分:3)
    A. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件
    B. 若文件存在,将其置为空文件;若文件不存在,打开失败
    C. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件
    D. 若文件存在,打开失败;若文件不存在,建立一个新文件
11.若已定义了person类,则执行语句"person p1=p2;"将调用p1的(    )。          (满分:3)
    A. 构造函数
    B. 拷贝构造函数
    C. 析构函数
    D. 赋值运算符重载函数
12.下面对类的析构函数的定义是(    ) 。          (满分:3)
    A. X::~ X( 参数 );
    B. void X::~ X( 参数 );
    C. void X::~ X(    );
    D. X::~ X(    );
13.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(    )。          (满分:3)
    A. 公有类型
    B. 私有类型
    C. 保护类型
    D. 友元类型
14.若已知char str,有语句 cin>>str;,当输入为:This is a cat,则str中的内容为(    )。          (满分:3)
    A. This is a cat
    B. This
    C. This is
    D. This is a
15.下面有关重载函数的说法中正确的是(    )。          (满分:3)
    A. 重载函数必须具有不同的返回值类型
    B. 重载函数形参个数必须不同
    C. 重载函数必须有不同的形参列表
    D. 重载函数名可以不同;
16.实现运行时的多态性需要使用(    )。          (满分:3)
    A. 重载函数
    B. 构造函数
    C. 析构函数
    D. 虚函数
17.下面运算符中,不能被重载的运算符是(    )。          (满分:3)
    A. <=
    B. -
    C. ?:
    D. []
18.下列语句中错误的是(    )。          (满分:3)
    A. int *p=new int(10);
    B. int *p=new int;
    C. int *p=new int;
    D. int *p=new int(0);
19.下列说法正确的是(    )。          (满分:3)
    A. 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
    B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
    C. 类的内联函数必须在类体内定义
    D. 类的内联函数必须在类体外通过加关键字inline定义
20.下列不是文件流类的是(    )。          (满分:3)
    A. ifstream
    B. iostream
    C. fstream
    D. ofstream
二、判断题:【20道,总分:40分】

1.使用cin和cout进行输入和输出操作必须包含头文件iomanip.h          (满分:2)
    A. 错误
    B. 正确
2.函数模板是模板函数的实例化。          (满分:2)
    A. 错误
    B. 正确
3.ifstream是用于读文件的文件流。          (满分:2)
    A. 错误
    B. 正确
4.ofstream是用于写文件的文件流。          (满分:2)
    A. 错误
    B. 正确
5.在一般的成员函数中都隐含有一个this指针,用来指向对象自身,而在静态成员函数中是没有this指针的。          (满分:2)
    A. 错误
    B. 正确
6.IO流库重载的插入和析取运算符能处理所有的数据类型(包括自定义类型)。          (满分:2)
    A. 错误
    B. 正确
7.成员函数体写在类外部的一定不是内联函数,写在类内部的一定是内联函数。          (满分:2)
    A. 错误
    B. 正确
8.指针和引用都是变量,都占有单独的内存空间。          (满分:2)
    A. 错误
    B. 正确
9.C++允许定义有默认参数的函数,默认参数要在函数声明中提供,当又有声明又有定义时,定义中不允许默认参数。          (满分:2)
    A. 错误
    B. 正确
10.二进制文件结束标志为EOF(即-1)。          (满分:2)
    A. 错误
    B. 正确
11.如果一个类只定义了一个带参的构造函数,则系统会给它提供缺省的无参构造函数。          (满分:2)
    A. 错误
    B. 正确
12.使用setw(    )函数时需包含iomanip.h头文件,而使用width(    )函数时需包含iostream.h头文件。          (满分:2)
    A. 错误
    B. 正确
13.对于类中的对象成员既可以在构造函数的初始化列表中初始化也可以在构造函数体中初始化。          (满分:2)
    A. 错误
    B. 正确
14.在C++中,构造派生类对象时,总是先从基类的初始化开始的。          (满分:2)
    A. 错误
    B. 正确
15.类是一组对象的抽象,而对象则是类的一个实例。          (满分:2)
    A. 错误
    B. 正确
16.C++中的函数就是面向对象理论中的消息。          (满分:2)
    A. 错误
    B. 正确
17.若有声明:class B: A{};则类B的继承方式为公有继承。          (满分:2)
    A. 错误
    B. 正确
18.void型指针是通用型指针,它可以接受任何类型的指针的赋值。          (满分:2)
    A. 错误
    B. 正确
19.类A继承类B,则A称为B的派生类,B称为A的基类。          (满分:2)
    A. 错误
    B. 正确
20.C++中,对象保存在内存中,栈内存是自动分配和释放的,而堆内存需要用户自己申请和释放。          (满分:2)
    A. 错误
    B. 正确
C++程序设计17春在线作业2
一、单选题:【20道,总分:60分】

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(    );
二、判断题:【20道,总分:40分】

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. 正确
更多免费学习资料请登录www.ap5u.com

页: [1]
查看完整版本: 东北师范大学17春《C++程序设计》在线作业