奥鹏西安交通大学《面向对象程序设计高起专》考前练兵doc.docx
- 文档编号:25202439
- 上传时间:2023-06-06
- 格式:DOCX
- 页数:36
- 大小:30.11KB
奥鹏西安交通大学《面向对象程序设计高起专》考前练兵doc.docx
《奥鹏西安交通大学《面向对象程序设计高起专》考前练兵doc.docx》由会员分享,可在线阅读,更多相关《奥鹏西安交通大学《面向对象程序设计高起专》考前练兵doc.docx(36页珍藏版)》请在冰豆网上搜索。
奥鹏西安交通大学《面向对象程序设计高起专》考前练兵doc
单选题
1.假定CTest为一个类,并且有一无默认值的的有参构造函数和一无参构造函数,则执行“CTestobjTest;”语句时将自动调用该类的()。
A.有参构造函数
B.无参构造函数
C.复制构造函数
D.赋值构造函数
答案:
B
2.下述静态数据成员的特性中,()是错误的。
A.声明静态数据成员时前面要加修饰符static。
B.静态数据成员要在类体外进行初始化。
C.在程序中引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符。
D.静态数据成员是本类中个别对象所共享的。
答案:
D
3.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字()放在函数原型或函数头的前面。
A.in
B.inline
C.inLine
D.InLiner
答案:
B
4.对于一个类的析构函数,其函数名与类名()。
A.完全相同
B.完全不同
C.只相差一个字符
D.无关系
答案:
C
5.在定义一个派生类时,若不使用保留字显式地规定采用何种继承方式,则默认为()方式。
A.私有继承
B.非私有继承
C.保护继承
D.公用继承
答案:
A
6.下列对继承关系的描述中,正确的是()。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;
B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;
C.在私有继承中,基类中只有公有成员对派生类是可见的;
D.在私有继承中,基类中的保护成员对派生类的对象是可见的;
答案:
D
7.关于运行时多态的下列描述中,()是错误的。
A.运行时多态是以虚函数为基础的;
B.运行时多态是在运行时确定所调用的函数代码的;
C.用基类指针或引用所标识的派生类对象来操作虚函数才能实现运行时多态;
D.运行时多态是在编译时确定操作函数的。
答案:
D
8.能够释放对象所占资源的是()。
A.析构函数
B.数据成员
C.构造函数
D.静态成员函数
答案:
A
9.派生类的成员函数可以直接访问基类的()成员。
A.所有
B.公有和保护
C.保护和私有
D.私有
答案:
B
10.派生类可以访问其基类的()。
A.公用成员
B.保护成员
C.私有派生
D.公用和保护成员
答案:
D
11.类的构造函数是在定义该类的一个(?
?
)时被自动调用执行的。
A.成员函数
B.数据成员
C.对象
D.友元函数
答案:
C
12.C++语言是从早期的C语言逐步发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是()。
A.面向过程
B.面向对象
C.安全性
D.复用性
答案:
B
13.基类和派生类可以分别称为()。
A.“大类”和“小类”
B.“父类”和“子类”
C.“小类”和“大类”
D.“子类”和“父类”
答案:
B
14.下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是()。
A.Valueoperator+(Value,Value);
B.Valueoperator+(Value,int);
C.Value&operator+(Value,Value*);
D.Value&operator+(Value&,Value&);
答案:
A
15.在公用继承的情况下,基类成员在派生类中的访问权限()
A.受限制
B.保持不变
C.受保护
D.不受保护
答案:
B
16.用“>>”运算符从键盘输入多于一个数据时,各数据之间应使用()符号作为分隔符。
A.空格或逗号
B.逗号或回车
C.逗号或分号
D.空格或回车
答案:
D
17.类的析构函数的作用是()。
A.一般成员函数
B.类的初始化
C.对象的初始化
D.对象释放后的操作
答案:
D
18.下列对继承关系的描述中,()是正确的。
A.在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的;
B.在公有继承中,基类中只有公有成员对派生类的对象是可见的;
C.在私有继承中,基类中只有公有成员对派生类是可见的;
D.在私有继承中,基类中的保护成员对派生类的对象是可见的;
答案:
D
19.编译时的多态性使用什么获得?
()
A.重载函数
B.继承
C.虚函数
D.B和C
答案:
A
20.双目运算符重载为普通函数时,其参数表中应带有()个参数。
A.0
B.1
C.2
D.3
答案:
C
21.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的()
A.带参构造函数
B.无参构造函数
C.复制构造函数
D.赋值重载函数
答案:
A
22.由C++目标文件连接而成的可执行文件的缺省扩展名为()。
A.cpp
B.exe
C.obj
D.lik
答案:
B
23.C++类体系中,不能被派生继承的有()。
A.转换函数
B.构造函数
C.虚函数
D.静态成员函数
答案:
C
24.每个类()构造函数。
A.只能有一个
B.可以有公用的
C.可以有多个
D.只可有缺省的
答案:
C
25.类中定义的成员默认为()访问属性。
A.public
B.private
C.protected
D.friend
答案:
D
26.在重载一个运算符时,其参数表中没有任何参数,这表明该运算符是()。
A.作为友元函数重载的1元运算符
B.作为成员函数重载的1元运算符
C.作为友元函数重载的2元运算符
D.作为成员函数重载的2元运算符
答案:
B
27.关于基类和派生类的关系,()是错误的。
A.派生类对象属于基类;
B.可以用派生类指针指向派生类对象;
C.可以将基类对象赋值给派生类对象;
D.派生类对象指针可转换为基类指针。
答案:
C
28.C++中声明常量的关键字是()。
A.const
B.extern
C.public
D.enum
答案:
A
29.函数重载与函数模板的说法错误的是()。
A.当函数的函数体不同时,可以把函数设计为重载函数;
B.当函数体相同,仅仅操作的数据类型不同时,可把函数设计为模板;
C.重载函数和函数模板都是抽象的,都需实例化;
D.函数模板有待于实例化为模板函数,重载函数可以直接引用。
答案:
C
30.派生类的构造函数的成员初始化列表中,不能包含()。
A.基类的构造函数;
B.派生类中子对象的初始化;
C.基类的子对象初始化;
D.派生类中一般数据成员的初始化;
答案:
C
31.如果表达式a+b中的“+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
A.a.operator+(b)
B.b.operator+(a)
C.operator+(a,b)
D.operator(a+b)
答案:
A
32.关于构造函数,下列说法不正确的是()。
A.构造函数名字和类名相同
B.构造函数在创建对象时自动执行
C.构造函数无任何函数返回类型
D.构造函数有且只有一个
答案:
D
33.在一个类的定义中,包含有()成员的定义。
A.数据
B.函数
C.数据和函数
D.数据或函数
答案:
C
34.以下叙述中正确的是()
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C.在程序中使用内置函数使程序的可读性变差
D.在定义函数时可以在形参表的任何位置给出缺省形参值
答案:
B
35.以下叙述中正确的是()
A.使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值
B.使用const定义的常量名有类型之分,其值在程序运行时是不可改变的
C.在程序中使用内置函数使程序的可读性变差
D.在定义函数时可以在形参表的任何位置给出缺省形参值
答案:
B
36.()是给变量取一个别名,它引入了变量的同义词。
A.指针
B.引用
C.枚举
D.结构
答案:
B
37.下列的符号常变量定义中,错误的定义是()。
A.constM=10;
B.constintM=20;
C.constcharch;
D.constboolmark=true;
答案:
C
38.对类对象成员的初始化是通过构造函数中给出的()实现的。
A.函数体
B.参数初始化表
C.参数表
D.参数初始化表或函数体
答案:
B
39.类中定义的成员默认为(?
?
)访问属性。
A.public
B.private
C.protected
D.friend
答案:
B
40.假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,则访问x对象中函数成员a()的格式为()。
A.x.a
B.x.a()
C.x->a
D.x->a()
答案:
B
41.下列关于成员函数特征的描述中,()是错误的。
A.成员函数一定是内置函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值
D.成员函数可以是静态的
答案:
A
42.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为()。
A.abc
B.*this
C.this
D.this&
答案:
C
43.类模板的作用是可以将其实例化后得到一个具体的()。
A.类
B.对象
C.模板类
D.模板函数
答案:
C
44.C++源程序文件的缺省扩展名为()。
A.cpp
B.exe
C.obj
D.lik
答案:
A
45.一个类的构造函数通常被定义为该类的(?
?
)成员。
A.公用
B.保护
C.私有
D.友元
答案:
A
46.一个类的析构函数通常被定义为该类的()成员。
A.私有
B.保护
C.公用
D.友元
答案:
C
47.C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是()。
A.增加了一些新的运算符
B.允许函数重载,并允许设置缺省参数
C.规定函数说明符必须用原型
D.引进了类和对象的概念
答案:
D
48.若需要使类中的一个指针成员指向一块动态存储空间,则通常在()函数中完成。
A.析构
B.构造
C.任一成员
D.友元
答案:
B
49.在成员函数中进行双目运算符重载时,其参数表中应带有()个参数。
A.0
B.1
C.2
D.3
答案:
B
50.说明内置函数的关键字是()。
A.inline
B.virtual
C.define
D.static
答案:
A
51.实现运行时的多态性要使用()。
A.重载函数
B.析构函数
C.构造函数
D.虚函数
答案:
D
52.C++语言建立类族是通过()。
A.类的嵌套
B.类的继承
C.虚函数
D.抽象类
答案:
B
53.关于静态成员,正确的说法是()。
A.静态成员函数可以直接访问该类中的非静态成员
B.非静态成员函数不能直接访问该类中的静态成员
C.静态数据成员同其它数据成员一样通过构造函数进行初始化
D.静态成员在任何对象创建之前就已经创建
答案:
D
54.关于继承中出现的二义性的描述中,()是错误的。
A.一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性;
B.解决二义性的最常用的方法是对成员名的限定法;
C.在单继承情况下,派生类中对基类成员的访问也会出现二义性;
D.一个派生类是从两个基类派生出来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性;
答案:
C
55.一个函数功能不太复杂,但要求被频繁调用,选用()
A.内置函数
B.重载函数
C.递归函数
D.嵌套函数
答案:
A
56.假定AB为一个类,则执行“ABr1=r2;”语句时将自动调用该类的()。
A.无参构造函数
B.带参构造函数
C.赋值重载函数
D.拷贝构造函数
答案:
D
57.下面有关重载函数的说法中正确的是()。
A.重载函数必须具有不同的返回值类型
B.重载函数形参个数必须不同
C.重载函数必须有不同的形参列表
D.重载函数名可以不同
答案:
C
58.假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A.x.a
B.x.a()
C.x>GetValue()
D.x.GetValue()
答案:
D
59.下列关于运算符重载的描述中,错误的是()。
A.运算符重载不可以改变操作数的个数
B.运算符重载不可以改变运算符的功能
C.运算符重载不可以改变结合方向
D.运算符重载不可以改变运算优先级
答案:
B
60.C++的输入输出不包括()。
A.标准的输入输出
B.文件的输入输出
C.字符串输入输出
D.显示屏和打印机的输入输出
答案:
C
61.下面关于引用的说法错误的是()。
A.引用是被引用对象的别名
B.对引用的修改就是对被引用对象的修改,反之亦然
C.引用不一定立即初始化
D.引用不能建立数组
答案:
C
62.下列关于运算符重载的描述中,()是正确的。
A.运算符重载可以改变运算数的个数;
B.运算符重载可以改变优先级;
C.运算符重载可以改变结合性;
D.运算符重载不可以改变语法结构。
答案:
D
63.函数原型语句正确的是()。
A.intFunction(voida)
B.voidFunction(int);
C.intFunction(a);
D.voidint(doublea);
答案:
B
64.如果表达式a==b中的“==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为()。
A.a.operator==(b)
B.b.operator==(a)
C.operator==(a,b)
D.operator==(b,a)
答案:
C
65.虚函数的定义是在基类中进行的,定义时需要冠以关键字()。
A.static
B.friend
C.virtual
D.public
答案:
C
66.从系统实现的角度看,多态性分为静态多态性和动态多态性。
以下说法错误的是()。
A.静态多态性是编译时的多态性
B.函数重载实现的多态性是静态多态性
C.通过虚函数实现的多态性是静态多态性
D.动态多态性是运行时的多态性
答案:
C
67.cout是某个类的标准对象,该类是()。
A.ostream
B.istream
C.stdout
D.stdin
答案:
A
68.类的析构函数是在()调用的。
A.类创建时
B.创建对象时
C.对象生命期结束时
D.不自动调用
答案:
C
69.假定一个类的构造函数为“B(intax,intbx):
a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为()。
A.1
B.2
C.3
D.4
答案:
C
70.在一个类中可以对一个运算符进行()重载。
A.1种
B.2种以下
C.3种以上
D.多种
答案:
D
71.关于构造函数特点描述中,错误的是()。
A.定义构造函数必须指出类型
B.构造函数的名字与该类的类名相同
C.一个类中可以定义0个至多个构造函数
D.构造函数是一个成员函数
答案:
A
72.C++编译系统确定调用是具体对象的过程称为关联。
C++有()关联。
A.1种
B.2种
C.3种
D.4种
答案:
B
73.一个类的构造函数为“B(intax,intbx):
a(ax),b(bx){}”,执行“Bx(1,2),y(3,4);x=y;”语句序列后x.a的值为()。
A.1
B.2
C.3
D.4
答案:
C
74.下面的类中,()不是由抽象基类ios直接派生出来的。
A.istream
B.ostream
C.iostream
D.fstreambase
答案:
C
75.已知:
p是一个指向类A数据成员m的指针,A1是类A的一个对象。
如果要给A1的m赋值为5,()是正确的。
A.A1.p=5;
B.A1->p=5;
C.A1.*p=5;
D.*A1.p=5;
答案:
C
76.假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为()。
A.x(a)
B.x[a]
C.x->a
D.x.a
答案:
D
77.为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择()。
A.内置函数
B.重载函数
C.递归函数
D.函数模板
答案:
A
78.当一个类对象离开它的作用域时,系统自动调用该类的()。
A.无参构造函数
B.带参构造函数
C.拷贝构造函数
D.析构函数
答案:
D
79.下列特性不是面向对象程序设计语言所特有的是()。
A.数据封装
B.继承
C.多态性
D.模板
答案:
D
80.在类作用域中能够通过直接使用该类的()成员名进行访问。
A.私有
B.公用
C.保护
D.任何
答案:
D
81.下面对友元的错误描述是()。
A.友元函数不可访问对象的private成员
B.一个类的成员函数可以是另一个类的友元
C.友元类和友元函数均用关键字friend声明
D.友元函数可以访问对象的protected成员
答案:
A
82.在C++中,抽象基类ios直接派生出()。
A.istream,ostream,ifstream,ofstream
B.istream,ostream,istrstream,ostrstream
C.istream,ostream,iostream
D.istream,ostream,fstreambase,strstreambase
答案:
D
83.每个类()构造函数。
A.只能有一个
B.可以有公用的
C.可以有多个
D.只可有缺省的
答案:
C
84.函数重载是指()。
A.两个或两个以上的函数取相同的函数名,但形参的个数或类型不同
B.两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同
C.两个以上的函数名字不同,但形参的个数或类型相同
D.两个以上的函数取相同的函数名,并且函数的返回类型相同
答案:
A
85.定义析构函数时,应该注意()。
A.其名与类名完全相同
B.返回类型是void类型
C.无形参,也不可重载
D.函数体中必须有delete语句
答案:
C
86.关于运算符重载,下列说法正确的是()。
A.重载时,运算符的优先级可以改变。
B.重载时,运算符的结合性可以改变。
C.重载时,运算符的功能可以改变。
D.重载时,运算符的操作数个数可以改变。
答案:
C
87.cin是某个类的标准对象,该类是()。
A.ostream
B.istream
C.stdout
D.stdin
答案:
B
88.对于类模板,其类型形参可以作为()。
A.成员函数的形参类型
B.成员函数的返回类型
C.数据成员的类型
D.其他三种均可
答案:
D
89.对于动态分配内存空间描述正确的是()。
A.使用new运算符分配的内存空间的长度必须是常量
B.delete运算符可以释放动态的存储空间和静态的存储空间
C.用new分配的内存空间是不连续的
D.delete运算符只能以释放由new分配的动态存储空间
答案:
D
90.在关键字public后面定义的成员为类的(?
?
)成员。
A.私有
B.公用
C.保护
D.任何
答案:
B
91.类的析构函数是一个对象被()时自动调用的。
A.建立
B.撤消
C.赋值
D.引用
答案:
B
92.下列关于类的访问控制机制说法错误的是()。
A.静态数据成员通常都定义为公有类型。
B.一个对象的私有成员对于同类的另一个对象是可见的
C.友元机制破坏了类的封装性。
D.基类的保护成员对派生类新定义的成员函数是可见的。
答案:
A
93.关于面向对象系统分析,下列说法中不正确的是()。
A.术语“面向对象分析”可以用缩写OOA表示
B.面向对象分析阶段对问题域的描述比设计阶段更详细
C.面向对象分析包括问题域分析和应用分析两个步骤
D.面向对象分析需要识别对象的内部和外部特征
答案:
B
94.在下面的4个关键字中,()是用来说明虚函数的。
A.virtual
B.public
C.protected
D.private
答案:
A
95.如果一个类至少有一个纯虚函数,那么该类称为().。
A.抽象类
B.虚基类
C.派生类
D.其他都不对
答案:
A
96.面向对象软件开发中使用的OOA表示()。
A.面向对象分析
B.面向对象设计
C.面向对象语言
D.面向对象方法
答案:
A
97.关于消息,下列说法中不正确的是()。
A.发送消息的对象请求服务,接受消息的对象提供服务
B.消息的发送者必须了解消息的接收者如何响应消息
C.在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用
D.每个对象只能接收某些特定格式的消息
答案:
B
98.不可以成为类的数据成员的是()。
A.自身类的对象
B.另一个类的对象
C.自身类的指针或引用
D.其他基本数据类型
答案:
A
99.用new运算符创建一个含有10个元素的一维整型数组的正确语句是()。
A.intp=newint(10);
B.intp=newint[10];
C.int*p=newint[10];
D.int*p=newint(10);
答案:
C
100.关于C++中的继承机制,错误的说法是()。
A.虚拟继承限定基类只能通过一条路径派生出派生类;
B.解决多继承带来的二义性的方法之一是对成员名加以限定;
C.派生类的构造函数的成员初始化列表中,可包含基类中的子对象;
D.继承是一种组织类的基本手段。
答案:
C
101.面向对象方法的多态性是指()。
A.一个类可以派生出多个特殊类
B.一个对象在不同的运行环境中可以有不同的变体
C.针对一消息,不同的对象可以以适合自身的方式加以响应
D.一个对象可以是由多个其他对象组合而成的
答案:
C
102.下列()的调用方式是引用调用。
A.形参和实参都是变量
B.形参是指针,实参是地址值
C.形参是引用,实参是变量
D.形参是变量,实参是地址值
答案:
C
103.C++中声明常量的关键字是()。
A.const
B.extern
C.public
D.enum
答案:
A
104.在下列的各类函数中,()不是类的成员函数。
A.构造函数
B.析构函数
C.友元函数
D.拷贝构造函数
答案:
C
105.函数原型语句正确的是()。
A.intFunction(vo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计高起专 西安交通大学 面向 对象 程序设计 高起专 考前 练兵 doc
![提示](https://static.bdocx.com/images/bang_tan.gif)