(0166)《面向对象技术》复习思考题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(0166)《面向对象技术》复习思考题
一、选择题
1、下列关键字中,( )不是类定义中使用的关键字。
关键字中,( )不是类定义中使用的关键字。
的关键字。
A. class
B. public
C. switch
D. private
. public C. switch D. private
tch D. private
2、在new运算符的下列描述中,( )是错误的。
A. 它可以动态创建对象和对象数组;
B. 用它创建对象数组时必须指定初始值;
C. 用它创建对象时要调用构造函数;
D. 用它创建的对象应使用运算符delete来释放。
3、主函数可以访问派生类的对象中它的哪一类基类成员?( )
A. 公有继承的基类的公有成员
B. 公有继承的基类的保护成员
C. 公有继承的基类的私有成员
D. 保护继承的基类的公有成员
4、定义重载函数的下列条件中,( )是错误的。
A. 要求参数个数不同;
B. 要求参数类型不同;
C. 要求函数返回值类型不同;
D. 要求在参数个数相同时,参数类型的顺序不同。
5、下列函数中,( )不能重载。
A. 成员函数
B. 非成员函数
C. 构造函数
D. 析构函数
6、下列有关运算符重载的描述中,( )是正确的。
A. 运算符重载可改变其优先级;
B. 运算符重载不改变其语法结构;
C. 运算符重载可改变其结合性;
D. 运算符重载可改变其操作数的个数。
7、下列构造函数的特点中,( )是错误的。
错误的。
A. 构造函数具有一般成员函数的特点;
有一般成员函数的特点;
B. 构造函数的名称与其类名相同;
C. 构造函数必须指明其类型;
D. 一个类中可定义1个或多个构造函数。
与其类名相同;
C. 构造函数必须指明其类型;
D. 一个类中可定义1个或多个构造函数。
8、C++语言的基本数据类型包括( )。
A. 整型、实型、逻辑型、空型
B. 整型、实型、字符型、空型
C. 整型、字符型、逻辑型、空型
D. 整型、实型、指针型、字符型
9、下列关于指针的运算中,( )是非法的。
A.两个指针在一定条件下,可以进行相等或不等的运算;
B.可以用一个空指针赋值给某个指针;
C.一个指针可以加上两个整数之差;
D.两个指针在一定条件下,可以相加。
10、在C++中,关于下列设置缺省参数值的描述中,正确的是( )。
A. 不允许设置缺省参数值;
B. 在指定了缺省值的参数右边,不能出现没有指定缺省值的参数;
C. 只能在函数的定义中指定参数的缺省值;
D. 设置缺省参数值时,必须全部都设置。
11、预处理命令在程序中是以( )开头的。
A. *
B. #
C.:
D./
12、按照标识符的要求,( )符号不能组成标识符。
A. -
B. _
C. 大小写字母
D. 数字字符
13、假定a为一个数组名, 则下面的哪一种表示有错误。( )
A. a[i]
B. *(a+1)
C. *a
D. *a++
14、关于delete运算符的下列描述中,错误的是( )。
A. 它必须用于new返回的指针;
B. 使用它删除对象时要调用析构函数;
C. 对一个指针可以使用多次该运算符;
D. 指针名前只有一对方括号符号,不管所删除数组的维数。
15、下列对派生类的描述中,( )是错误的。
A. 一个派生类可以作为另一个派生类的基类;
B. 派生类至少应有一个基类;
C. 基类中成员的访问权限被派生类继承后都不改变;
D. 派生类的成员除了自己定义的成员外,还包含了它的基类成员。
16、main函数在源程序中的位置()。
A. 必须在最开始处
B. 必须在子函数的后面
C. 可以任意
D. 必须在最后
17、在c++语言中,要求参加运算的数必须是整数的运算符是()。
A. /
B.!
C. %
D. = =
18、对两个基本类型相同的指针变量,不能进行的运算是()。
A. +
B. -
C. =
D. = =
19、下列各种高级语言中,( )最早提出了对象的概念。
A.A1gol 60 B.Simula 67 C.Smalltalk D.C++
20、执行C++程序时出现的“溢出”属于( )错误。
A.运行 B.链接 C.编译 D.逻辑
21、下列关于引用的说法错误的是( )。
A.不能声明一个指针的引用;
B.引用必须在定义的同时进行初始化;
C.返回引用的函数,可以作为左值被调用;
D.使用引用参数,可以实现将实参的地址传递给行参。
22、为表示关系x≤y≤z,正确的C++表达式是( )。
A.(x<=y)&&(y<=z) B.(x<=y)AND(y<=z)
C.(x<=y<=z) D.(x<=y)&(y<=z)
23、若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为( )。
A.a< >0 B.!a C.a=0 D.a
24、int * const p说明不能修改( )。
A.p指针;
B.p指针指向的变量;
C.p指针指向的数据类型;
D.上述A、B、C三者。
25、下面的函数声明中, ( )是” void BC(int a, int b);”的重载函数?
A.int BC(int a, int b) B.void BC(int a, char b)
C.float BC(int a, int b, int c=0) D.void BC(int a, int b=0)
26、下列静态数据成员的特性中,错误的是( )。
A.说明静态数据成员时前边要加修饰符static;
B.引用静态数据成员时,必须用类名和作用域运算符引导;
C.静态数据成员是所有对象所共用的;
D.静态数据成员要在类的定义之外进行初始化。
27、判断字符串s1和s2是否相等的表达式为()。
A.s1=s2 B.s1= =s2
C.strcpy(s1,s2)= =0 D.strcmp(s1,s2)= =0
28、若用数组名作为调用函数的实际参数,则传递给形式参数的是()。
A.数组存储首地址;
B.数组的第一个元素值;
C.数组中全部元素的值;
D.数组元素的个数。
二、填空题
1、假定一个二维数组的定义为int a[4][5],则该数组所含元素的个数为___ ___。
2、预处理命令在程序中都是以_____ ___开头的。
3、执行cout<< char('E'+2)< 4、在32位机器中,若有定义: int k=5; char *p=“Beijing”; int arr1[5]; float *arr2=new float[k]; 则 sizeof(k)=________, sizeof(p)=_________, sizeof(arr1)=___________, sizeof(arr2)=__________。 5、面向对象系统最突出的特征是________性、________性和多态性。 6、C++源程序经过________和________后生成可执行程序。