|
|
电子科技大17春《C++语言程序设计》在线作业1
一、单选题:
1.下列关于类的描述中,错误的说法是( ) (满分:5)
A. 类是一组对象的模板
B. 类是数据和操作的封装体
C. 类是对象的实例
D. 类是一种自定义的数据类型
2.在main( )函数中,若有函数调用func(…),而func在类A中定义,则func函数是A类的( )函数。 (满分:5)
A. 友元
B. 构造
C. 静态公有成员
D. 析构
3.用struct定义的类的成员缺省段约束符的说明,则应为( )的成员。 (满分:5)
A. 私有段
B. 保护段
C. 公有段
D. 所有段
4.C++源程序文件的扩展名为( ) (满分:5)
A. .cpp
B. .c
C. .c++
D. .dll
5.下列说法正确的是 (满分:5)
A. 定义构造函数必须指出其返回类型,并且不允许重载构造函数
B. 静态数据成员可以在类体中、类体外被初始化,但无需通过构造函数
C. 默认构造函数是不接受实参的函数,并且能由系统自动生成
D. 在创建一个新的类对象时,系统会为它的所有成员分配一块存储空间
6.cout是( )类的标准对象的引用。 (满分:5)
A. ostream
B. istream
C. stdout
D. stdin
7.下列关于运算符重载的描述中,正确的是( ) (满分:5)
A. 不能改变运算符的优先级
B. 能够改变操作数的数目
C. 能够重载内嵌类型的运算符的预定含义
D. 通过重载运算符“( )”能够改变运算符的结合性
8.下列运算符中( )可以进行运算符重载 (满分:5)
A. new
B. ::
C. sizeof
D. ?:
9.对A?*p用new?A或(A?*)malloc(sizeof?(A))赋值,如下叙述正确的是( ) (满分:5)
A. malloc分配内存后会调用构造函数初始化,但new函数不会。
B. new分配内存后会调用构造函数初始化,但malloc函数不会。
C. new和malloc分配内存后都会调用构造函数初始化。
D. new和malloc分配内存后都不会调用构造函数初始化。
10.下面有关类说法不正确的是( ) (满分:5)
A. 在一个类中不能说明具有类类型的数据成员
B. 一个类可以有多个构造函数
C. 一个类只有一个析构函数,且析构函数不能被指定参数
D. 一个类中public、protected和private三者说明的顺序可以任意,且可以被使用多次,也可以不使用
11.若有float f=6.8;int i= int(f); 则i的值为( ) (满分:5)
A. 6
B. 7
C. 6.8
D. 不确定
12.若在类外有函数调用X::func( );则函数func是类 X的( )函数。 (满分:5)
A. 私有静态成员函数
B. 公有非静态成员函
C. 公有静态成员函数
D. 友元函数
13.有类模板定义如下:template class Dream { }下列类对象的定义中,正确的是( ) (满分:5)
A. Dream a
B. Dream<class int> a
C. Dream<int> a
D. Dream<class Type> a
14.重载“>>”时,为保证其连用性,重载函数的返回类型应为( ) (满分:5)
A. istream
B. ostream
C. istream &
D. ostream &
15.以下( )没有函数返回类型,但又必须有return 语句。 (满分:5)
A. 析构函数
B. 类类型转换函数
C. 运算符重载函数
D. 构造函数
16.纵观诸多面向对象的程序设计语言,最新核心的概念不包括( ) (满分:5)
A. 数据封装
B. 继承
C. 多态性
D. 类属
17.下列有关内联函数的叙述中,正确的是( ) (满分:5)
A. 内联函数是通过编译器来实现的
B. 内联函数必须通过关键字inline来定义
C. 内联函数在调用时发生控制转移
D. 内联函数函数体的最后一条语句必须是return语句
18.在一个派生类对象结束其生命周期时( ) (满分:5)
A. 先调用派生类的析构函数后调用基类的析构函数
B. 先调用基类的析构函数后调用派生类的析构函数
C. 如果基类没有定义析构函数,则只调用派生类的析构函数
D. 如果派生类没有定义析构函数,则只调用基类的析构函数
19.含有( )的类称为抽象类,不能直接用它实例化对象。 (满分:5)
A. 纯虚函数
B. 虚函数
C. 静态成员
D. 友元
20.下列( )不是构造函数的特征。 (满分:5)
A. 构造函数的函数名与类名相同
B. 构造函数可以重载
C. 构造函数可以设置形式参数的默认值
D. 构造函数必须指定函数类型
17春《C++语言程序设计》在线作业2
一、单选题:
1.已知类X中的一个成员函数说明如下:void Set(X & a); 其中,X & a的含义是( ) (满分:5)
A. 指向类X的指针为a
B. 将a的地址赋给变量Set
C. a是类X的对象引用,用来作为Set( )的形参
D. 变量X与a按位相与作为函数Set( )的参数
2.模板对类型的参数化提供了很好的支持,因此( ) (满分:5)
A. 类模板的主要作用是生成抽象类
B. 类模板实例化时,编译器将根据给出的模板实参生成一个类
C. 在类模板中的数据成员都具有同样类型
D. 类模板中的成员函数都没有返回值
3.重载“>>”时,为保证其连用性,重载函数的返回类型应为( ) (满分:5)
A. istream
B. ostream
C. istream &
D. ostream &
4.如果定义了一个类myclass,则为myclass类对象以成员函数形式重载后++运算符的声明应该为( ) (满分:5)
A. myclass operator++( )
B. myclass operator++( int )
C. myclass& operator++( )
D. myclass& operator++( int )
5.cin是( )类的标准对象的引用。 (满分:5)
A. ostream
B. istream
C. stdout
D. stdin
6.C++泛型编程通过( )实现。 (满分:5)
A. void
B. template
C. NULL
D. typedef
7.用struct定义的类的成员缺省段约束符的说明,则应为( )的成员。 (满分:5)
A. 私有段
B. 保护段
C. 公有段
D. 所有段
8.下列运算符重载时,只能采用类成员函数形式的有( ) (满分:5)
A. <<
B. +
C. []
D. ==
9.下列运算符中( )可以进行运算符重载 (满分:5)
A. new
B. ::
C. sizeof
D. ?:
10.C++程序总是从( )开始执行。 (满分:5)
A. 构造函数
B. 析构函数
C. main( )函数
D. 主类
11.有关类和对象的说法不正确的是( ) (满分:5)
A. 对象是类的一个实例
B. 一个类只能有一个对象
C. 任何一个对象只能属于一个具体的类
D. 类与对象的关系和数据类型与变量的关系相似
12.下列运算符中不能重载的是( ) (满分:5)
A. ::
B. +
C. <<
D. &&
13.下面有关类说法不正确的是( ) (满分:5)
A. 在一个类中不能说明具有类类型的数据成员
B. 一个类可以有多个构造函数
C. 一个类只有一个析构函数,且析构函数不能被指定参数
D. 一个类中public、protected和private三者说明的顺序可以任意,且可以被使用多次,也可以不使用
14.一个类的友元函数能够访问该类的( ) (满分:5)
A. 私有成员
B. 保护成员
C. 公有成员
D. 所有成员
15.运算符重载是对已有的运算符赋予多重含义,因此( ) (满分:5)
A. 可以对基本类型(如int类型)的数据,重新定义“+”运算符的含义
B. 可以改变一个已有运算符的优先级和操作数个数
C. 只能重载C++中已经有的运算符,不能定义新运算符
D. C++中已经有的所有运算符都可以重载
16.若有X obj[100];(X为类名),则调用构造函数的次数为( ) (满分:5)
A. 0
B. 1
C. 100
D. 任意
17.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是( ) (满分:5)
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型
D. 引进了类和对象的概念
18.下列关于运算符重载的描述中,正确的是( ) (满分:5)
A. 不能改变运算符的优先级
B. 能够改变操作数的数目
C. 能够重载内嵌类型的运算符的预定含义
D. 通过重载运算符“( )”能够改变运算符的结合性
19.下列情况中,不会调用拷贝构造函数的是( ) (满分:5)
A. 用一个对象去初始化同一类的另一个新对象时
B. 函数的形参是类的对象,调用函数进行形参和实参结合时
C. 函数的返回值是类的对象,函数执行返回调用时
D. 将类的一个对象赋值给该类的另一个已经存在的对象时
20.下列关于抽象类的描述中,正确的是( ) (满分:5)
A. 抽象类中最多只能有一个纯虚函数
B. 抽象类不能定义该类的指针
C. 抽象类不能定义该类的对象
D. 抽象类至少有一个虚函数
17春《C++语言程序设计》在线作业3
一、单选题:
1.若有float f=6.8;int i= int(f); 则i的值为( ) (满分:5)
A. 6
B. 7
C. 6.8
D. 不确定
2.以下( )没有函数返回类型,但又必须有return 语句。 (满分:5)
A. 析构函数
B. 类类型转换函数
C. 运算符重载函数
D. 构造函数
3.用成员函数重载一元运算符θ,则显示调用方式为( ) (满分:5)
A. obj θ
B. θ obj
C. obj.operator θ( )
D. operator θ(obj)
4.下列情况中,不会调用拷贝构造函数的是( ) (满分:5)
A. 用一个对象去初始化同一类的另一个新对象时
B. 函数的形参是类的对象,调用函数进行形参和实参结合时
C. 函数的返回值是类的对象,函数执行返回调用时
D. 将类的一个对象赋值给该类的另一个已经存在的对象时
5.说明友元函数的关键字为( ) (满分:5)
A. inline
B. virtual
C. friend
D. define
6.下列关于类的描述中,错误的说法是( ) (满分:5)
A. 类是一组对象的模板
B. 类是数据和操作的封装体
C. 类是对象的实例
D. 类是一种自定义的数据类型
7.若在类外有函数调用X::func( );则函数func是类 X的( )函数。 (满分:5)
A. 私有静态成员函数
B. 公有非静态成员函
C. 公有静态成员函数
D. 友元函数
8.下列( )不能有参数。 (满分:5)
A. 构造函数
B. 析构函数
C. 友元函数
D. 运算
9.说明静态成员函数的关键字为( ) (满分:5)
A. virtual
B. static
C. enum
D. inline
10.以下( )是不正确的强制类型转换方式。 (满分:5)
A.(type表达式)
B.(type)表达式
C. type(表达式)
D.(type)(表达式)
11.说明虚函数的关键字为 (满分:5)
A. inline
B. virtual
C. static
D. define
12.下列( )是C++语言的有效标识符。 (满分:5)
A. No.1
B. 12345
C. No1
D. int
13.下面对静态数据成员的描述中,正确的是( ) (满分:5)
A. 可以在类体内进行初始化
B. 不可以被类的对象调用
C. 不能受private控制符的作用
D. 可以直接用类名调用
14.下列说法正确的是 (满分:5)
A. 定义构造函数必须指出其返回类型,并且不允许重载构造函数
B. 静态数据成员可以在类体中、类体外被初始化,但无需通过构造函数
C. 默认构造函数是不接受实参的函数,并且能由系统自动生成
D. 在创建一个新的类对象时,系统会为它的所有成员分配一块存储空间
15.下列关于抽象类的描述中,正确的是( ) (满分:5)
A. 抽象类中最多只能有一个纯虚函数
B. 抽象类不能定义该类的指针
C. 抽象类不能定义该类的对象
D. 抽象类至少有一个虚函数
16.下列运算符不能重载为友元函数的是( ) (满分:5)
A. = ( ) [] ->
B. + - ++ --
C. > < >= <=
D. += -= *= /=
17.下列运算符重载时,只能采用类成员函数形式的有( ) (满分:5)
A. <<
B. +
C. []
D. ==
18.private访问属性限制对象的成员可以在( )中访问。 (满分:5)
A. 本类的成员函数
B. main函数
C. 父类的成员函数
D. 子类的成员函数
19.在一个派生类对象结束其生命周期时( ) (满分:5)
A. 先调用派生类的析构函数后调用基类的析构函数
B. 先调用基类的析构函数后调用派生类的析构函数
C. 如果基类没有定义析构函数,则只调用派生类的析构函数
D. 如果派生类没有定义析构函数,则只调用基类的析构函数
20.下列有关继承和派生的叙述中,正确的是( ) (满分:5)
A. 如果一个派生类公有继承其基类,则该派生类对象可以直接访问基类的私有成员
B. 派生类的成员函数可以访问基类的所有成员
C. 基类对象可以赋值给派生类对象
D. 如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类
|
|