100分 发表于 2017-10-16 18:47:48

《C++程序设计》东师17秋在线作业12题目


C++程序设计17秋在线作业1

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

1.建立包含有对象成员的派生类对象时,自动调用构造函数的执行顺序依次为(    )的构造函数。          (满分:3)
    A. 基类、自己所属类、对象成员所属类
    B. 对象成员所属类、基类、自己所属类
    C. 自己所属类、对象成员所属类、基类
    D. 基类、对象成员所属类、自己所属类
2.假定变量x定义为“int x=8;”,要使rx成为x的引用(别名),rx应定义为(    )。          (满分:3)
    A. int rx=x;
    B. int rx=&x;
    C. int *rx=&x;
    D. int &rx=x;
3.对于类定义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(    )是虚函数
4.C++利用(    )实现面向对象程序设计的多态性。          (满分:3)
    A. 类的派生机制
    B. 构造数据类型—类
    C. 构造数据类型—枚举
    D. 函数重载或运算符重载
5.假定一个类的构造函数为“A(int aa=1, int bb=0) {a=aa; b=aa*bb;}”, 则执行“A x(3,6);”语句后,x.a和x.b的值分别为(    )。          (满分:3)
    A. 3和6
    B. 6和3
    C. 3和18
    D. 6和18
6.若已定义了person类,则执行语句"person p1=p2;"将调用p1的(    )。          (满分:3)
    A. 构造函数
    B. 拷贝构造函数
    C. 析构函数
    D. 赋值运算符重载函数
7.在磁盘文件操作中,以追加方式打开磁盘文件时,其mode值为(    )。          (满分:3)
    A. in
    B. app
    C. out
    D. ate
8.类的析构函数是在(    )被调用的。          (满分:3)
    A. 类创建时
    B. 创建对象时
    C. 删除对象时
    D. 不自动调用
9.如果在类A中用友元函数的方式重载了前缀自增运算符++,又定义了类A的一个对象a,则以下用法正确的是(    )。          (满分:3)
    A. operator++(a);
    B. a.operator++(    );
    C. a.operator++(0);
    D. a++;
10.派生类的对象对它的基类成员中什么是可访问的(    )?          (满分:3)
    A. 公有继承的公有成员
    B. 公有继承的私有成员
    C. 公有继承的保护成员
    D. 私有继承的公有成员
11.假定classA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(    )。          (满分:3)
    A. x(a)
    B. x
    C. x->a
    D. x.a
12.下列语句中不存在类型转换的是(    )。          (满分:3)
    A. int(1.1);
    B.(double)2.2;
    C. int i=1;
    D. char c=97;
13.对于一个类,可以利用关键字(    )将其他类声明为该类的友元。          (满分:3)
    A. public
    B. private
    C. protected
    D. friend
14.(    )是析构函数的特征。          (满分:3)
    A. 一个类中只能定义一个析构函数
    B. 析构函数在对象创建时调用
    C. 析构函数的定义只能在类体内
    D. 析构函数可以有一个或多个参数
15.以下叙述正确的是(    )。          (满分:3)
    A. 函数的定义和函数的调用都可以嵌套
    B. 函数的定义和函数的调用均不可以嵌套
    C. 函数的定义不可以嵌套,函数的调用可以嵌套
    D. 函数的定义可以嵌套,函数的调用不可以嵌套
16.下面对静态数据成员的描述中,正确的是(    )。          (满分:3)
    A. 静态数据成员可以在类体内进行初始化
    B. 静态数据成员不可以被类的对象调用
    C. 静态数据成员不能受private控制符的作用
    D. 静态数据成员可以直接用类名调用
17.#include     class BASE{       char c;     public:       BASE(char n):c(n){}       virtual~BASE(    ){cout<<C;}     };     class DERIVED:public BASE{       char c;     public:       DERIVED(char n):BASE(n+1),c(n){}       ~DERIVED(    ){cout          (满分:3)
    A. XY
    B. YX
    C. X
    D. Y
18.假设A为抽象类,下列声明(    )是正确的。          (满分:3)
    A. A fun(int);
    B. A *p;
    C. int fun(A);
    D. A obj;
19.C++的继承性允许派生类继承基类的(    )。          (满分:3)
    A. 部分特性,并允许增加新的特性或重定义基类的特性
    B. 部分特性,但不允许增加新的特性或重定义基类的特性
    C. 所有特性,并允许增加新的特性或重定义基类的特性
    D. 所有特性,但不允许增加新的特性或重定义基类的特性
20.类的构造函数被自动调用执行的情况是在定义该类的(    )。          (满分:3)
    A. 成员函数时
    B. 数据成员时
    C. 对象时
    D. 友元函数时
二、判断题:【20道,总分:40分】

1.原型说明中没有指出返回类型的函数(包括主函数main),C++默认该函数的返回类型是void          (满分:2)
    A. 错误
    B. 正确
2.若重载了赋值运算符“=”,则相当于重载了“+=”、“-=”、“*=”、“/=”运算符。          (满分:2)
    A. 错误
    B. 正确
3.C++标准库中的输入输出格式操作符(函数)可以直接用在提取运算符“>>”或插入运算符“<<”后面。          (满分:2)
    A. 错误
    B. 正确
4.不能在类声明中给数据成员赋初值。          (满分:2)
    A. 错误
    B. 正确
5.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。          (满分:2)
    A. 错误
    B. 正确
6.ios类中的格式化输入输出成员函数可以直接用在提取运算符“>>”或插入运算符“<<”后面。          (满分:2)
    A. 错误
    B. 正确
7.拷贝构造函数是重载的构造函数。          (满分:2)
    A. 错误
    B. 正确
8.操纵符hex、oct、dec只对下一个输出有效。          (满分:2)
    A. 错误
    B. 正确
9.使用重载运算符既可以用运算符的方式又可以用函数调用的方式。          (满分:2)
    A. 错误
    B. 正确
10.前缀自增运算符用成员函数方式重载时,其参数个数为0,用友元函数重载时,其参数个数为1。          (满分:2)
    A. 错误
    B. 正确
11.类A继承类B,则A称为B的派生类,B称为A的基类。          (满分:2)
    A. 错误
    B. 正确
12.拷贝构造函数是在用一个对象初始化另一个对象时被调用的。          (满分:2)
    A. 错误
    B. 正确
13.C++利用函数重载实现面向对象程序设计的封装性。          (满分:2)
    A. 错误
    B. 正确
14.若左操作数为基本数据类型或其它类对象时,此运算符应以友元函数的方式重载。          (满分:2)
    A. 错误
    B. 正确
15.虚基类中的成员函数都是虚函数。          (满分:2)
    A. 错误
    B. 正确
16.C++利用类的派生机制实现面向对象程序设计的多态性。          (满分:2)
    A. 错误
    B. 正确
17.当一个类被说明为另一个类的友元时,它的所有的成员函数都成为另一个类的友元函数。          (满分:2)
    A. 错误
    B. 正确
18.C++是一种纯粹的面向对象程序设计语言。          (满分:2)
    A. 错误
    B. 正确
19.析构函数是不能被派生类继承的。          (满分:2)
    A. 错误
    B. 正确
20.要对文件进行读写操作,必须在文件开头包含头文件fstream.h          (满分:2)
    A. 错误
    B. 正确
C++程序设计17秋在线作业2
一、单选题:【20道,总分:60分】

1.应在下列程序划线处填入的正确语句是(    )。#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(    );
2.静态成员函数仅能访问(    )。          (满分:3)
    A. 静态的数据成员
    B. 非静态的成员函数
    C. 非静态的数据成员
    D. 以上都不对
3.下面描述中,表达错误的是(    )。          (满分:3)
    A. 公有继承时基类中的public成员在派生类中仍是public的
    B. 公有继承时基类中的private成员在派生类中仍是private的
    C. 公有继承时基类中的protected成员在派生类中仍是protected的
    D. 保护继承时基类中的public成员在派生类中是private的
4.下面对静态数据成员的描述中,正确的是(    )。          (满分:3)
    A. 静态数据成员可以在类体内进行初始化
    B. 静态数据成员不可以被类的对象调用
    C. 静态数据成员不能受private控制符的作用
    D. 静态数据成员可以直接用类名调用
5.定义类模板时要使用关键字(    )。          (满分:3)
    A. const
    B. new
    C. delete
    D. template
6.C++语言建立类库是通过(    )实现的。          (满分:3)
    A. 类的嵌套
    B. 类的继承
    C. 虚函数
    D. 抽象类
7.C++程序的执行总是从(    )开始的。          (满分:3)
    A. main函数
    B. 第一行
    C. 头文件
    D. 函数注释
8.下列函数中,(    )是对文件进行读操作的。          (满分:3)
    A. put
    B. read
    C. write
    D. seekp
9.运算符重载函数必须以特殊的关键字(    )开始。          (满分:3)
    A. virtual
    B. operator
    C. template
    D. static
10.定义p并使p指向动态空间中的包含10个整数的数组所使用的定义语句为(    )。          (满分:3)
    A. int *p=new;
    B. int *p=new int(10);
    C. *p=new int;
    D. int *p=new int;
11.C++利用(    )实现面向对象程序设计的继承性。          (满分:3)
    A. 构造数据类型—类
    B. 类的派生机制
    C. 构造数据类型—枚举
    D. 函数重载与运算符重载
12.下列类中(    )不是输入流类istream的派生类。          (满分:3)
    A. ifstream
    B. istrstream
    C. iostream
    D. ofstream
13.在多继承的构造函数的定义中,若干个基类的构造函数之间用(    )分隔开。          (满分:3)
    A. ::
    B. :
    C. ;
    D. ,
14.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为(    )。          (满分:3)
    A. ios::in
    B. ios::out
    C. ios::in|ios::out
    D. 以上都不对
15.下列描述中错误的是(    )。          (满分:3)
    A. 派生类至少有一个基类
    B. 派生类可作为另一个类的基类
    C. 派生类所继承的基类成员的访问权限保持不变
    D. 派生类除了包含它直接定义的成员外,还包含基类的成员
16.使用派生类的主要原因是(    )。          (满分:3)
    A. 提高代码的可重用性
    B. 提高程序的运行效率
    C. 加强类的封装性
    D. 实现数据的隐藏
17.下面不能作为函数的返回类型的是(    )。          (满分:3)
    A. new
    B. int
    C. long
    D. void
18.假定变量x定义为“int x=8;”,要使rx成为x的引用(别名),rx应定义为(    )。          (满分:3)
    A. int rx=x;
    B. int rx=&x;
    C. int *rx=&x;
    D. int &rx=x;
19.在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是(    )。          (满分:3)
    A. int Fun(int x){return x*x;}
    B. inline int Fun(int x){return x*x;}
    C. int inline Fun(int x){return x*x;}
    D. int Fun(int x){inline return x*x;}
20.类的析构函数的作用是(    )。          (满分:3)
    A. 一般成员函数的初始化
    B. 类的初始化
    C. 对象的初始化
    D. 删除类创建的对象
二、判断题:【20道,总分:40分】

1.IO流库重载的插入和析取运算符能处理所有的数据类型(包括自定义类型)。          (满分:2)
    A. 错误
    B. 正确
2.编译时的多态是通过动态联编来实现的,运行时的多态是通过静态联编实现的。          (满分:2)
    A. 错误
    B. 正确
3.C++语言对同一字母的大小写将认为是同一字符。          (满分:2)
    A. 错误
    B. 正确
4.使用cin和cout进行输入和输出操作必须包含头文件iomanip.h          (满分:2)
    A. 错误
    B. 正确
5.成员函数体写在类的外部时一定要在类的内部保留函数声明。          (满分:2)
    A. 错误
    B. 正确
6.this指针是一个const指针,不能在程序中修改它或给它赋值。          (满分:2)
    A. 错误
    B. 正确
7.cout通常与键盘相连,cin通常与显示器相连。          (满分:2)
    A. 错误
    B. 正确
8.数组中的每个元素它们的类型可以是不同的。          (满分:2)
    A. 错误
    B. 正确
9.new和delete运算符可以被重载。          (满分:2)
    A. 错误
    B. 正确
10.get(    )和put(    )函数的功能是一次读写一个数据块,而read(    )和write(    )函数是一次读写一个字符。          (满分:2)
    A. 错误
    B. 正确
11.ofstream是用于读文件的文件流。          (满分:2)
    A. 错误
    B. 正确
12.C++标准库中的输入输出格式操作符(函数)可以直接用在提取运算符“>>”或插入运算符“<<”后面。          (满分:2)
    A. 错误
    B. 正确
13.构造函数和析构函数都不能重载。          (满分:2)
    A. 错误
    B. 正确
14.类成员是按照它们在成员初始化表中列出的顺序进行初始化的,与它们在类里被声明的顺序无关。          (满分:2)
    A. 错误
    B. 正确
15.C++编译器能够区分重载的无参函数和缺省参数的函数。          (满分:2)
    A. 错误
    B. 正确
16.如果一个类只定义了一个带参的构造函数,则系统会给它提供缺省的无参构造函数。          (满分:2)
    A. 错误
    B. 正确
17.指针和引用都是变量,都占有单独的内存空间。          (满分:2)
    A. 错误
    B. 正确
18.在文件操作结束时,可以用eof(    )成员函数关闭该文件。          (满分:2)
    A. 错误
    B. 正确
19.若有声明:class C: public A,B{};则类C公有继承自类A及类B。          (满分:2)
    A. 错误
    B. 正确
20.若将函数说明为返回一个引用,则该函数可以用在赋值运算符的左边。          (满分:2)
    A. 错误
    B. 正确

页: [1]
查看完整版本: 《C++程序设计》东师17秋在线作业12题目