西安交通大学18年5月补考《面向对象程序设计》作业考核试题 -0001 试卷总分:100 得分:0 一、 单选题 (共 30 道试题,共 60 分) 1.在一个类的定义中,包含有( )成员的定义。 A.数据 B.函数
西安交通大学18年5月补考《面向对象程序设计》作业考核试题 -0001
试卷总分:100 得分:0
一、 单选题 (共 30 道试题,共 60 分)
1.在一个类的定义中,包含有( )成员的定义。
A.数据
B.函数
C.数据和函数
D.数据或函数
2.下列()的调用方式是引用调用。
A.形参和实参都是变量
B.形参是指针,实参是地址值
C.形参是引用,实参是变量
D.形参是变量,实参是地址值
3.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为( )。
A.int
B.char
C.AA
D.AA*
4.关键字class和typename用于定义模板类型参数,其含义为( )。
A.任何用户定义的类类型
B.C++内部的类型
C.A与B
D.都不是
5.不可以成为类的数据成员的是______。
A.自身类的对象
B.另一个类的对象
C.自身类的指针或引用
D.其他基本数据类型
6.函数原型语句正确的是( )。
A.int Function(void a)
B.void Function (int);
C.int Function(a);
D.void int(double a);
7.C++类体系中,不能被派生继承的有( )。
A.转换函数
B.构造函数
C.虚函数
D.静态成员函数
8.C++源程序文件的缺省扩展名为( )。
A.cpp
B.exe
C.obj
D.lik
9.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( )。
A.作为友元函数重载的1元运算符
B.作为成员函数重载的1元运算符
C.作为友元函数重载的2元运算符
D.作为成员函数重载的2元运算符
10.C++的输入输出不包括()。C
A.标准的输入输出
B.文件的输入输出
C.字符串输入输出
D.显示屏和打印机的输入输出
11.友元的作用之一是()。
A.提高程序的运行效率。
B.加强类的封装性。
C.实现数据的隐蔽性。
D.增加成员函数的种类。
12.下列语句中错误的是()。
A.“int *p=new int (10);”
B.“int *p=new int [10];”
C.“int *p=new int ;”
D.“int *p=new int (10)(0);”
13.下面的类中,( )不是由抽象基类ios直接派生出来的。
A.istream
B.ostream
C.iostream
D.fstreambase
14.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( )。
A.int *p=new int[30];
B.int *p=new int(30);
C.int *p=new [30];
D.*p=new int[30];
15.双目运算符重载为普通函数时,其参数表中应带有( )个参数。
A.0
B.1
C.2
D.3
16.下列哪个初始化是非法的(下面五个选项是顺序出现的声明语句)( )
A.int i =-1;
B.const int ic=i;
C.const int *pc=⁣
D.int *const cpi=⁣
E.const int *const cpic=⁣
17.在关键字private后面定义的成员为类的( )成员。
A.私有
B.公用
C.保护
D.任何
18.假设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是( )。
A.“class derived::student prived {// …} ;”
B.“class derived:student public {// …} ;”
C.“class derived:private student{// …} ;”
D.“class derived::student public stuednt {// …} ;”
19.下面关于析构函数特征的描述正确的是( )。
A.一个类中可以定义多个析构函数
B.析构函数名与类名相同
C.析构函数不能指定返回类型
D.析构函数可以有一个或多个参数
20.面向对象方法的多态性是指( )。
A.一个类可以派生出多个特殊类
B.一个对象在不同的运行环境中可以有不同的变体
C.针对一消息,不同的对象可以以适合自身的方式加以响应
D.一个对象可以是由多个其他对象组合而成的
21.有关析构函数的说法不正确的是_____.
A.析构函数有且只有一个
B.析构函数和构造函数一样可以有形参
C.析构函数无任何函数类型
D.析构函数的作用是在对象被撤销时收回先前分配的内存空间
22.说明内置函数的关键字是( )。
A.inline
B.virtual
C.define
D.static
23.下列关于类的访问控制机制说法错误的是()。
A.静态数据成员通常都定义为公有类型。
B.一个对象的私有成员对于同类的另一个对象是可见的
C.友元机制破坏了类的封装性。
D.基类的保护成员对派生类新定义的成员函数是可见的。
24.以下叙述中正确的是( )
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C.在程序中使用内置函数使程序的可读性变差
D.在定义函数时可以在形参表的任何位置给出缺省形参值
25.C++语言建立类族是通过( )。
A.类的嵌套
B.类的继承
C.虚函数
D.抽象类
26.每个类( )构造函数。
A.只能有一个
B.可以有公用的
C.可以有多个
D.只可有缺省的
27.对于一个类的构造函数,其函数名与类名( )。
A.完全相同
B.基本相同
C.不相同
D.无关系
28.关于静态成员,正确的说法是()。
A.静态成员函数可以直接访问该类中的非静态成员
B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化
D.静态成员在任何对象创建之前就已经创建
29.下列关于私有继承的说法中正确的是()。
A.基类成员对派生类新定义的成员函数是不可见的;
B.基类成员对派生类新定义的成员函数是可见的;
C.只有基类成员中的公有成员对派生类新定义的成员函数是可见的;
D.基类成员中的保护成员对派生类新定义的成员函数是可见的。
30.下列不是C++基本数据类型的是______。
A.int
B.string
C.char
D.void
二、 判断题 (共 20 道试题,共 40 分)
1.构造函数可以重载。( )
A.错误
B.正确
2.常量不能作为左值使用。( )
A.错误
B.正确
3.不可以定义抽象类的对象。( )
A.错误
B.正确
4.当一个成员函数被声明为虚函数后,其派生类中的具有相同参数类型和相同参数个数类型的相同类型的同名函数也是虚函数。( )
A.错误
B.正确
5.友元函数说明在类体内,它是一种成员函数。( )
A.错误
B.正确
6.C++只能用于面向对象程序设计,不适用于面向过程程序设计。( )
A.错误
B.正确
7.C++允许用户可以定义新的运算符。例如,可将“**”定义为幂运算符。( )
A.错误
B.正确
8.关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。( )
A.错误
B.正确
9.派生类能够继承基类的析构函数。( )
A.错误
B.正确
10.使用虚函数可以避免多重继承产生的二义性。( )
A.错误
B.正确
11.抽象类中只能有一个纯虚函数。( )
A.错误
B.正确
12.使用虚函数无法避免多重继承产生的二义性。( )
A.错误
B.正确
13.C++中的字符串输入输出通常指定一个字符数组作为存储空间,它只能输入输出string类数据。( )
A.错误
B.正确
14.引用可以不初始化。( )
A.错误
B.正确
15.变量必须先定义后赋值。( )
A.错误
B.正确
16.引用和指针都可作函数参数。( )
A.错误
B.正确
17.若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。( )
A.错误
B.正确
18.Iostream是抽象基类ios的直接派生类.。()
A.错误
B.正确
19.在声明派生类时,派生类把基类的的构造函数也一起继承过来。( )
A.错误
B.正确
20.C++语言支持封装性和继承性,不支持多态性。( )。
A.错误
B.正确
试卷总分:100 得分:0
一、 单选题 (共 30 道试题,共 60 分)
1.在一个类的定义中,包含有( )成员的定义。
A.数据
B.函数
C.数据和函数
D.数据或函数
2.下列()的调用方式是引用调用。
A.形参和实参都是变量
B.形参是指针,实参是地址值
C.形参是引用,实参是变量
D.形参是变量,实参是地址值
3.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数的类型为( )。
A.int
B.char
C.AA
D.AA*
4.关键字class和typename用于定义模板类型参数,其含义为( )。
A.任何用户定义的类类型
B.C++内部的类型
C.A与B
D.都不是
5.不可以成为类的数据成员的是______。
A.自身类的对象
B.另一个类的对象
C.自身类的指针或引用
D.其他基本数据类型
6.函数原型语句正确的是( )。
A.int Function(void a)
B.void Function (int);
C.int Function(a);
D.void int(double a);
7.C++类体系中,不能被派生继承的有( )。
A.转换函数
B.构造函数
C.虚函数
D.静态成员函数
8.C++源程序文件的缺省扩展名为( )。
A.cpp
B.exe
C.obj
D.lik
9.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是( )。
A.作为友元函数重载的1元运算符
B.作为成员函数重载的1元运算符
C.作为友元函数重载的2元运算符
D.作为成员函数重载的2元运算符
10.C++的输入输出不包括()。C
A.标准的输入输出
B.文件的输入输出
C.字符串输入输出
D.显示屏和打印机的输入输出
11.友元的作用之一是()。
A.提高程序的运行效率。
B.加强类的封装性。
C.实现数据的隐蔽性。
D.增加成员函数的种类。
12.下列语句中错误的是()。
A.“int *p=new int (10);”
B.“int *p=new int [10];”
C.“int *p=new int ;”
D.“int *p=new int (10)(0);”
13.下面的类中,( )不是由抽象基类ios直接派生出来的。
A.istream
B.ostream
C.iostream
D.fstreambase
14.定义p并使p指向动态空间中的包含30个整数的数组所使用的定义语句为( )。
A.int *p=new int[30];
B.int *p=new int(30);
C.int *p=new [30];
D.*p=new int[30];
15.双目运算符重载为普通函数时,其参数表中应带有( )个参数。
A.0
B.1
C.2
D.3
16.下列哪个初始化是非法的(下面五个选项是顺序出现的声明语句)( )
A.int i =-1;
B.const int ic=i;
C.const int *pc=⁣
D.int *const cpi=⁣
E.const int *const cpic=⁣
17.在关键字private后面定义的成员为类的( )成员。
A.私有
B.公用
C.保护
D.任何
18.假设已经定义好了一个类student,现在要定义类derived,它是从student私有派生的,定义类derived的正确写法是( )。
A.“class derived::student prived {// …} ;”
B.“class derived:student public {// …} ;”
C.“class derived:private student{// …} ;”
D.“class derived::student public stuednt {// …} ;”
19.下面关于析构函数特征的描述正确的是( )。
A.一个类中可以定义多个析构函数
B.析构函数名与类名相同
C.析构函数不能指定返回类型
D.析构函数可以有一个或多个参数
20.面向对象方法的多态性是指( )。
A.一个类可以派生出多个特殊类
B.一个对象在不同的运行环境中可以有不同的变体
C.针对一消息,不同的对象可以以适合自身的方式加以响应
D.一个对象可以是由多个其他对象组合而成的
21.有关析构函数的说法不正确的是_____.
A.析构函数有且只有一个
B.析构函数和构造函数一样可以有形参
C.析构函数无任何函数类型
D.析构函数的作用是在对象被撤销时收回先前分配的内存空间
22.说明内置函数的关键字是( )。
A.inline
B.virtual
C.define
D.static
23.下列关于类的访问控制机制说法错误的是()。
A.静态数据成员通常都定义为公有类型。
B.一个对象的私有成员对于同类的另一个对象是可见的
C.友元机制破坏了类的封装性。
D.基类的保护成员对派生类新定义的成员函数是可见的。
24.以下叙述中正确的是( )
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C.在程序中使用内置函数使程序的可读性变差
D.在定义函数时可以在形参表的任何位置给出缺省形参值
25.C++语言建立类族是通过( )。
A.类的嵌套
B.类的继承
C.虚函数
D.抽象类
26.每个类( )构造函数。
A.只能有一个
B.可以有公用的
C.可以有多个
D.只可有缺省的
27.对于一个类的构造函数,其函数名与类名( )。
A.完全相同
B.基本相同
C.不相同
D.无关系
28.关于静态成员,正确的说法是()。
A.静态成员函数可以直接访问该类中的非静态成员
B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化
D.静态成员在任何对象创建之前就已经创建
29.下列关于私有继承的说法中正确的是()。
A.基类成员对派生类新定义的成员函数是不可见的;
B.基类成员对派生类新定义的成员函数是可见的;
C.只有基类成员中的公有成员对派生类新定义的成员函数是可见的;
D.基类成员中的保护成员对派生类新定义的成员函数是可见的。
30.下列不是C++基本数据类型的是______。
A.int
B.string
C.char
D.void
二、 判断题 (共 20 道试题,共 40 分)
1.构造函数可以重载。( )
A.错误
B.正确
2.常量不能作为左值使用。( )
A.错误
B.正确
3.不可以定义抽象类的对象。( )
A.错误
B.正确
4.当一个成员函数被声明为虚函数后,其派生类中的具有相同参数类型和相同参数个数类型的相同类型的同名函数也是虚函数。( )
A.错误
B.正确
5.友元函数说明在类体内,它是一种成员函数。( )
A.错误
B.正确
6.C++只能用于面向对象程序设计,不适用于面向过程程序设计。( )
A.错误
B.正确
7.C++允许用户可以定义新的运算符。例如,可将“**”定义为幂运算符。( )
A.错误
B.正确
8.关系运算符可以用来比较两个字符的大小,也可用来比较两个字符串的大小。( )
A.错误
B.正确
9.派生类能够继承基类的析构函数。( )
A.错误
B.正确
10.使用虚函数可以避免多重继承产生的二义性。( )
A.错误
B.正确
11.抽象类中只能有一个纯虚函数。( )
A.错误
B.正确
12.使用虚函数无法避免多重继承产生的二义性。( )
A.错误
B.正确
13.C++中的字符串输入输出通常指定一个字符数组作为存储空间,它只能输入输出string类数据。( )
A.错误
B.正确
14.引用可以不初始化。( )
A.错误
B.正确
15.变量必须先定义后赋值。( )
A.错误
B.正确
16.引用和指针都可作函数参数。( )
A.错误
B.正确
17.若类Y是类X的私有派生类,类Z是类Y的公用派生类,则类Z不能访问类X 的公用成员和保护成员。( )
A.错误
B.正确
18.Iostream是抽象基类ios的直接派生类.。()
A.错误
B.正确
19.在声明派生类时,派生类把基类的的构造函数也一起继承过来。( )
A.错误
B.正确
20.C++语言支持封装性和继承性,不支持多态性。( )。
A.错误
B.正确