2024年5月10日发(作者:伯茗)
C++程序设计19秋在线作业2
1 单选题
1 假定指针变量p定义“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句()。
C
A delete *p;
B delete &p;
C delete p;
D delete []p;
2 下面关于运算符重载的描述错误的是()。 C
A 重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构
B 不是所有的运算符都可以进行重载
C 运算符函数的调用必须使用关键字operator
D 在C++语言中不可通过运算符重载创造出新的运算符
3 类中定义的成员默认为()访问属性。 B
A public
B private
C protected
D friend
4 下列选项中,()是istream类的对象。 A
A cin
B cout
C cerr
D clog
5 析构函数是一种特殊的成员函数,显式定义时其访问属性应被定义为()。
A public
B private
C protected
D static
6 关于函数模板,描述错误的是()。 A
A 函数模板必须由程序员实例化
A
B 函数模板的实例化由编译器实现
C 一个类定义中,只要有一个函数模板,则这个类是类模板
D 若类模板的成员函数是函数模板,则类模板实例化后,成员函数也随之实例化
7 下列关于运算符重载的描述中,正确的是()。 D
A 可以改变运算符的目数
B 可以改变运算符的优先级
C 可以改变运算符的结合性
D 可以改变运算符的功能
8 面向对象程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。 A
A 对数据的操作
B 信息
C 数据隐藏
D 数据抽象
9 在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类
型,下列定义正确的是()。 B
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;}
10 定义类模板时要使用关键字()。 D
A const
B new
C delete
D template
11 要将类A说明是类B的虚基类,正确的描述是()。 B
A class virtual B:public A
B class B:virtual public A
C virtual class B:public A
D class B:public A virtual
12 下列格式控制符中不是定义于iostream.h中的是()。 D
A endl
B hex
C flush
D setw
13 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的
是()。 D
A 公有类型
B 私有类型
C 保护类型
D 友元类型
14 ()不是构造函数的特征。 D
A 构造函数的函数名与类名相同
B 构造函数可以重载
C 构造函数可以设置缺省参数
D 构造函数必须指定类型说明
15 当将一个类A说明为另一个类B的友元后,类A能够直接访问类B的()。 D
A 只能是公有成员
B 只能是保护成员
C 只能是除私有成员之外的任何成员
D 具有任何权限的成员
16 对于类定义
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 C
A A::func2( )和B::func1( )都是虚函数
B A::func2( )和B::func1( )都不是虚函数
C B::func1( )是虚函数,而A::func2( )不是虚函数
D B::func1( )不是虚函数,而A::func2( )是虚函数
17 在关键字public后面定义的成员为类的()成员。 A
A 公有
B 保护
C 私有
D 任何
18 在一个类的定义中,包含有数据成员和()的定义。 C
A 数据
B 函数
C 成员函数
D 友元
19 当使用ifstream流类定义一个流对象并打开一个磁盘文件时,隐含的打开方式为()。 A
A ios::in
B ios::out
C ios::in|ios::out
D ios::binary
20 类模板的模板参数()。 D
A 只可作为数据成员的类型
B 只可作用成员函数的返回类型
C 只可作为成员函数的参数类型
D 以上三者皆可
2 判断题
1 C++利用类来实现面向对象程序设计的继承性。 A
A 错误
B 正确
2 如果一个类至少有一个虚函数,那么该类就被称为抽象类。
A 错误
A
B 正确
3 类中含有指针数据成员时,若不定义拷贝构造函数则会产生指针悬挂问题。 B
A 错误
B 正确
4 成员函数体写在类的外部时一定要在类的内部保留函数声明。 B
A 错误
B 正确
5 创建派生类对象时,先调用基类的构造函数,再调用派生类的构造函数,当销毁这个对象时顺序
正好相反,先调用派生类的析构函数,再调用基类的析构函数。 B
A 错误
B 正确
6 操纵符hex、oct、dec只对下一个输出有效。 A
A 错误
B 正确
7 构造函数和析构函数既可以由程序员调用,也可以由系统自动调用。 A
A 错误
B 正确
8 拷贝构造函数使用本类对象的引用作为参数初始化新创建的对象。 B
A 错误
B 正确
9 在文件操作结束时,可以用close()成员函数关闭该文件。 B
A 错误
B 正确
10 当基类含有带参数的构造函数时,派生类可以不定义构造函数。 A
A 错误
B 正确
11 new和delete运算符不可以被重载。 A
A 错误
B 正确
12 构造函数和析构函数都不可以由程序员调用,只能由系统自动调用。 B
A 错误
B 正确
13 私有静态数据成员不能被类外部函数访问,也不能用对象进行访问。 B
A 错误
B 正确
14 指针是个变量,占有单独的内存空间,而引用本身不是变量,不单独占用内存空间。 B
A 错误
B 正确
15 文件流创建方式是打开二进制文件的是ios::binary。 B
A 错误
B 正确
16 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间
是不可改变的。 B
A 错误
B 正确
17 可以在类的构造函数中对静态数据成员进行初始化。 A
A 错误
B 正确
18 this指针是一个const指针,不能在程序中修改它或给它赋值。 B
A 错误
B 正确
19 多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。
A 错误
B 正确
20 二进制文件结束标志为EOF(即-1)。 A
A 错误
B 正确
B
2024年5月10日发(作者:伯茗)
C++程序设计19秋在线作业2
1 单选题
1 假定指针变量p定义“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句()。
C
A delete *p;
B delete &p;
C delete p;
D delete []p;
2 下面关于运算符重载的描述错误的是()。 C
A 重载不能改变操作数的个数、运算符的优先级、运算符的结合性和运算符的语法结构
B 不是所有的运算符都可以进行重载
C 运算符函数的调用必须使用关键字operator
D 在C++语言中不可通过运算符重载创造出新的运算符
3 类中定义的成员默认为()访问属性。 B
A public
B private
C protected
D friend
4 下列选项中,()是istream类的对象。 A
A cin
B cout
C cerr
D clog
5 析构函数是一种特殊的成员函数,显式定义时其访问属性应被定义为()。
A public
B private
C protected
D static
6 关于函数模板,描述错误的是()。 A
A 函数模板必须由程序员实例化
A
B 函数模板的实例化由编译器实现
C 一个类定义中,只要有一个函数模板,则这个类是类模板
D 若类模板的成员函数是函数模板,则类模板实例化后,成员函数也随之实例化
7 下列关于运算符重载的描述中,正确的是()。 D
A 可以改变运算符的目数
B 可以改变运算符的优先级
C 可以改变运算符的结合性
D 可以改变运算符的功能
8 面向对象程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。 A
A 对数据的操作
B 信息
C 数据隐藏
D 数据抽象
9 在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类
型,下列定义正确的是()。 B
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;}
10 定义类模板时要使用关键字()。 D
A const
B new
C delete
D template
11 要将类A说明是类B的虚基类,正确的描述是()。 B
A class virtual B:public A
B class B:virtual public A
C virtual class B:public A
D class B:public A virtual
12 下列格式控制符中不是定义于iostream.h中的是()。 D
A endl
B hex
C flush
D setw
13 对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的
是()。 D
A 公有类型
B 私有类型
C 保护类型
D 友元类型
14 ()不是构造函数的特征。 D
A 构造函数的函数名与类名相同
B 构造函数可以重载
C 构造函数可以设置缺省参数
D 构造函数必须指定类型说明
15 当将一个类A说明为另一个类B的友元后,类A能够直接访问类B的()。 D
A 只能是公有成员
B 只能是保护成员
C 只能是除私有成员之外的任何成员
D 具有任何权限的成员
16 对于类定义
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 C
A A::func2( )和B::func1( )都是虚函数
B A::func2( )和B::func1( )都不是虚函数
C B::func1( )是虚函数,而A::func2( )不是虚函数
D B::func1( )不是虚函数,而A::func2( )是虚函数
17 在关键字public后面定义的成员为类的()成员。 A
A 公有
B 保护
C 私有
D 任何
18 在一个类的定义中,包含有数据成员和()的定义。 C
A 数据
B 函数
C 成员函数
D 友元
19 当使用ifstream流类定义一个流对象并打开一个磁盘文件时,隐含的打开方式为()。 A
A ios::in
B ios::out
C ios::in|ios::out
D ios::binary
20 类模板的模板参数()。 D
A 只可作为数据成员的类型
B 只可作用成员函数的返回类型
C 只可作为成员函数的参数类型
D 以上三者皆可
2 判断题
1 C++利用类来实现面向对象程序设计的继承性。 A
A 错误
B 正确
2 如果一个类至少有一个虚函数,那么该类就被称为抽象类。
A 错误
A
B 正确
3 类中含有指针数据成员时,若不定义拷贝构造函数则会产生指针悬挂问题。 B
A 错误
B 正确
4 成员函数体写在类的外部时一定要在类的内部保留函数声明。 B
A 错误
B 正确
5 创建派生类对象时,先调用基类的构造函数,再调用派生类的构造函数,当销毁这个对象时顺序
正好相反,先调用派生类的析构函数,再调用基类的析构函数。 B
A 错误
B 正确
6 操纵符hex、oct、dec只对下一个输出有效。 A
A 错误
B 正确
7 构造函数和析构函数既可以由程序员调用,也可以由系统自动调用。 A
A 错误
B 正确
8 拷贝构造函数使用本类对象的引用作为参数初始化新创建的对象。 B
A 错误
B 正确
9 在文件操作结束时,可以用close()成员函数关闭该文件。 B
A 错误
B 正确
10 当基类含有带参数的构造函数时,派生类可以不定义构造函数。 A
A 错误
B 正确
11 new和delete运算符不可以被重载。 A
A 错误
B 正确
12 构造函数和析构函数都不可以由程序员调用,只能由系统自动调用。 B
A 错误
B 正确
13 私有静态数据成员不能被类外部函数访问,也不能用对象进行访问。 B
A 错误
B 正确
14 指针是个变量,占有单独的内存空间,而引用本身不是变量,不单独占用内存空间。 B
A 错误
B 正确
15 文件流创建方式是打开二进制文件的是ios::binary。 B
A 错误
B 正确
16 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象成员的值在程序运行期间
是不可改变的。 B
A 错误
B 正确
17 可以在类的构造函数中对静态数据成员进行初始化。 A
A 错误
B 正确
18 this指针是一个const指针,不能在程序中修改它或给它赋值。 B
A 错误
B 正确
19 多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。
A 错误
B 正确
20 二进制文件结束标志为EOF(即-1)。 A
A 错误
B 正确
B