奥鹏作业答案 发表于 2017-7-14 13:57:43

西交17年9月课程《面向对象程序设计》作业考核答案

西安交通大学17年9月课程考试《面向对象程序设计》作业考核试题

一、单选题:
1.如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为(    )。          (满分:2)
    A. a.operator+(b)
    B. b.operator+(a)
    C. operator+(a
    b)
    D. operator(a+b)
2.派生类的成员函数可以直接访问基类的(    )成员。          (满分:2)
    A. 所有
    B. 公有和保护
    C. 保护和私有
    D. 私有
3.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为(    )。          (满分:2)
    A. int *p=new int;
    B. int *p=new int(30);
    C. int *p=new ;
    D. *p=new int;
4.下列的符号常变量定义中,错误的定义是(    )。          (满分:2)
    A. const M=10;
    B. const int M=20;
    C. const char ch;
    D. const bool mark=true;
5.类的析构函数是一个对象被(    )时自动调用的。          (满分:2)
    A. 建立
    B. 撤消
    C. 赋值
    D. 引用
6.在创建派生类对象时,构造函数的执行顺序是(    )。          (满分:2)
    A. 对象成员构造函数、基类构造函数、派生类本身的构造函数
    B. 派生类本身的构造函数、基类构造函数、对象成员构造函数
    C. 基类构造函数、派生类本身的构造函数、对象成员构造函数
    D. 基类构造函数、对象成员构造函数、派生类本身的构造函数
7.类的析构函数的作用是(    )。          (满分:2)
    A. 一般成员函数
    B. 类的初始化
    C. 对象的初始化
    D. 对象释放后的操作
8.下列关于成员函数特征的描述中,(    )是错误的。          (满分:2)
    A. 成员函数一定是内置函数
    B. 成员函数可以重载
    C. 成员函数可以设置参数的默认值
    D. 成员函数可以是静态的
9.类的析构函数是在(    )调用的。          (满分:2)
    A. 类创建时
    B. 创建对象时
    C. 对象生命期结束时
    D. 不自动调用
10.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是(    )。          (满分:2)
    A. 增加了一些新的运算符
    B. 允许函数重载,并允许设置缺省参数
    C. 规定函数说明符必须用原型
    D. 引进了类和对象的概念
11.假定AB为一个类,则执行 “AB x(a,5);”语句时将自动调用该类的(    )。          (满分:2)
    A. 带参构造函数
    B. 无参构造函数
    C. 复制构造函数
    D. 赋值重载函数
12.假定AB为一个类,则执行 “AB x;”语句时将自动调用该类的(    )。          (满分:2)
    A. 带参构造函数
    B. 无参构造函数
    C. 拷贝构造函数
    D. 赋值重载函数
13.一个类的构造函数为 “B(int ax, int bx): a(ax), b(bx) {}”,执行 “B x(1,2),y(3,4);x=y;”语句序列后x.a的值为(    )。          (满分:2)
    A. 1
    B. 2
    C. 3
    D. 4
14.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为(    )。          (满分:2)
    A. int
    B. char
    C. AA
    D. AA*
15.下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是(    )。          (满分:2)
    A. Value operator+(Value
   Value);
    B. Value operator+(Value
    int);
    C. Value &operator+(Value
   Value*);
    D. Value &operator+(Value&
   Value&);
16.用new运算符创建一个含有10个元素的一维整型数组的正确语句是(    )。          (满分:2)
    A. int p = new int(10);
    B. int p = new int;
    C. int *p = new int ;
    D. int *p = new int(10);
17.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为(    )。          (满分:2)
    A. abc
    B. *this
    C. this
    D. this&
18.在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为(    )方式。          (满分:2)
    A. 私有继承
    B. 非私有继承
    C. 保护继承
    D. 公用继承
19.下列特性不是面向对象程序设计语言所特有的是(    )。          (满分:2)
    A. 数据封装
    B. 继承
    C. 多态性
    D. 模板
20.假定AB为一个类,则执行 “AB a;”语句时调用该类无参构造函数的次数为(    )。          (满分:2)
    A. 0
    B. 1
    C. 9
    D. 10
21.构造函数不具备的特征是(    )。          (满分:2)
    A. 构造函数的函数名与类名相同
    B. 构造函数可以重载
    C. 构造函数可以设置默认参数
    D. 构造函数必须指定类型说明
22.实现运行时的多态性要使用(    )。          (满分:2)
    A. 重载函数
    B. 析构函数
    C. 构造函数
    D. 虚函数
23.能够释放对象所占资源的是(    )。          (满分:2)
    A. 析构函数
    B. 数据成员
    C. 构造函数
    D. 静态成员函数
24.基类和派生类可以分别称为(    )。          (满分:2)
    A. “大类”和“小类”
    B. “父类”和“子类”
    C. “小类”和“大类”
    D. “子类”和“父类”
25.一个类的析构函数通常被定义为该类的(    )成员。          (满分:2)
    A. 私有
    B. 保护
    C. 公用
    D. 友元
26.当类中的一个整型指针成员指向一块具有n*sizeof(int)大小的存储空间时,它最多能够存储(    )个整数。          (满分:2)
    A. n
    B. n+1
    C. n-1
    D. 1
27.以下正确的函数原型语句是(    )。          (满分:2)
    A. double fun(int x
    int y)
    B. double fun(int x;int y)
    C. double fun(int
    int);
    D. double fun(int x
    y);
28.采用重载函数的目的是(    )。          (满分:2)
    A. 函数模板也是一个具体类型的函数
    B. 函数模板的类型参数与函数的参数是同一个概念
    C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数定义
    D. 用函数模板定义的函数没有类型
29.假定一个类对象数组为A,当离开它定义的作用域时,系统自动调用该类析构函数的次数为(    )。          (满分:2)
    A. 0
    B. 1
    C. n
    D. n-1
30.以下关于函数模板的论述中,正确的是(    )。          (满分:2)
    A. 一旦定义了函数模板,就不能再定义同名的重载函数
    B. 从同一个函数模板实例化后得到的多个模板函数属于函数重载;
    C. 函数模板中只有一种参数;
    D. 在定义函数模板时,template语句与函数模板定义语句之间可以有别的语句。
三、判断题:
1.使用new运算符创建数组时,可以为该数组指定初始值(    )。          (满分:2)
    A. 错误
    B. 正确
2.使用虚函数可以避免多重继承产生的二义性。(    )          (满分:2)
    A. 错误
    B. 正确
3.Iostream是抽象基类ios的直接派生类.。(    )          (满分:2)
    A. 错误
    B. 正确
4.析构函数必须指定返回类型以及函数参数。(    )          (满分:2)
    A. 错误
    B. 正确
5.析构函数不能被继承。(    )          (满分:2)
    A. 错误
    B. 正确
6.在声明派生类时,派生类把基类的的构造函数也一起继承过来。(    )          (满分:2)
    A. 错误
    B. 正确
7.C++中的字符串输入输出通常指定一个字符数组作为存储空间,它只能输入输出string类数据。(    )          (满分:2)
    A. 错误
    B. 正确
8.构造函数可以重载。(    )          (满分:2)
    A. 错误
    B. 正确
9.私有继承的派生类不能访问基类中的私有成员,但公用继承的派生类可以访问基类中的私有成员。(    )          (满分:2)
    A. 错误
    B. 正确
10.在调用构造函数时不必给出实参的构造函数称为默认构造函数。一个类只能有一个默认构造函数。(    )          (满分:2)
    A. 错误
    B. 正确
11.运算符重载以后,其优先级和结合性都不能改变。(    )          (满分:2)
    A. 错误
    B. 正确
12.若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。(    )          (满分:2)
    A. 错误
    B. 正确
13.对使用默认参数的构造函数,如果在类外定义构造函数,应该在定义构造函数时指定默认值(    )。          (满分:2)
    A. 错误
    B. 正确
14.使用虚函数无法避免多重继承产生的二义性。(    )          (满分:2)
    A. 错误
    B. 正确
15.C++中设置虚基类的目的是实现运算时的多态性。(    )          (满分:2)
    A. 错误
    B. 正确
16.在用class定义一个类时,如果不加声明,数据成员和成员函数默认的访问权限是public。(    )          (满分:2)
    A. 错误
    B. 正确
17.重载函数不能改变运算符运算对象的个数。(    )          (满分:2)
    A. 错误
    B. 正确
18.如果定义了一个类的对象数组,该数组有10个元素,则要调用10次构造函数来对每个元素初始化。(    )。          (满分:2)
    A. 错误
    B. 正确
19.不可以定义抽象类的对象。(    )          (满分:2)
    A. 错误
    B. 正确
20.在类的继承层次结构中,在不同的层次中不能出现名字相同、参数个数和类型都相同而功能不同的函数。(    )          (满分:2)
    A. 错误
    B. 正确

页: [1]
查看完整版本: 西交17年9月课程《面向对象程序设计》作业考核答案