.
一、单项选择题(本大题共10 小题,每小题2 分,共20 分) 1.在C++中,函数原型不能标识(D )
A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能 2.在C++程序中,对象之间的相互通信通过(B )
A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现
3.对于任意一个类,析构函数的个数最多为(B ) A.0 B.1 C.2 D.3 5.友元关系不能(A )
A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率 6.语句ofstream f(″SALARY.DAT″,ios::app|ios::binary)?的功能是建立流对象f,试图打开文件SALARY.DAT 并与之连接,并且(A )
A.若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B.若文件存在,将其置为空文件;若文件不存在,打开失败
C.若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D.若文件存在,打开失败;若文件不存在,建立一个新文件 7.下面说法正确的是(B )
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方 B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义 D.类的内联函数必须在类体外通过加关键字inline 定义
//当程序使用内敛函数时,编译器将每个函数调用都用函数内的语句代替,这样就省去了函数调用地开销
8.可以用p.a 的形式访问派生类对象p 的基类成员a,其中a 是(D )
.
.
A.私有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.公有继承的公有成员
//函数可以调用成员,对象不可以调用
9.在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是( C) A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针
//派生类的对象是不能访问基类的任何成员 10.对于类定义 class A{
public:virtual void func1( ){ } void func2( ){ } }?
class B:public A{
public:void func1( ){cout<<″class B func 1″< 下面正确的叙述是(C ) A. A::func2( )和B::func1( )都是虚函数 B. A::func2( )和B::func1( )都不是虚函数 C. B::func1( )是虚函数,而A::func2( )不是虚函数 D. B::func1( )不是虚函数,而A::func2( )是虚函数 第二部分非选择题(共80 分) . . 二、填空题(本大题共10 小题,每小题2 分,共20 分) 11.定义类的动态对象数组时,系统只能够自动调用该类的_无参_______构造函数对其进行初始化。 12.在C++程序设计中,建立继承关系倒挂的树应使用____单_一____继承。 13.表达式cout< 14.基类的公有成员在派生类中的访问权限由___访问控制___ __决定。 15.C++支持的两种多态性分别是__编译时的_(操作重载)_静态_____多态性和_运行时的(虚函数)___动态_____多态性。 16.C++中语句const char * const p=″hello″;所定义的指针p 和它所指的内容都不能被__改变(重新赋值)____。 17.假定AB 为一个类,则语句AB(AB&x);为该类_____拷贝____构造函数的原型说明。 18.将关键字const 写在成员函数的____函数头_____和____函数体_____之间时,所修饰的是this 指针。 19.在C++中,访问一个对象的成员所用的运算符是__·___,访问一个指针所指向的对象的成员所用的运算符是__>___。 20.派生类从一个或多个以前定义的该类的__基类__ 一、单项选择题(每题2分,共20分) 1. 派生类对象可访问基类中的什么成员( A) A.公有继承的公有成员 B.公有继承的私有成员 C.公有继承的保护成员 D.私有继承的公有成员 2. 定义析构函数时,应该注意( C ) A.其名与类名完全相同 B.返回类型是void类型 C.无形参,也不可重载 D.函数体 . . 中必须有delete语句 3. 如果类A被说明成类B的友元,则( D )。 A.类A的成员即类B的成员 B.类B的成员即类A的成员 C.类A的成员函数不得访问类B的成员 D.类B不一定是类A的友元 4. 应在下列程序划线处填入的正确语句是( C ) #include class Base { public: void fun(){cout<<\ }; class Derived:public Base { void fun() {_____________ // 显示调用基类的函数fun() cout<<\ } }; A.fun(); B. Base.fun(); C. Base::fun(); D. Base->fun(); 5. 面向对象程序设计将数据与( A )放在一起,做为一个相互依存、不可分割的整体来处理。 . . A. 对数据的操作 B. 信息 C. 数据隐藏 D. 数据抽象 6. 在类中声明转换函数时不能指定( A )。 A. 参数 B. 访问权限 C. 操作 D. 标识符 7. 在派生类中重新定义虚函数时必须在( A )方面与基类保持一致。 A. 参数类型 B. 参数名字 C. 操作内容 D. 赋值 8. 下面关于C++中类的继承与派生的说法错误的是( C )。 A.基类的protected成员在公有派生类的成员函数中可以直接使用 B.基类的protected成员在私有派生类的成员函数中可以直接使用 C.公有派生时,基类的所有成员访问权限在派生类中保持不变 D.基类的protected成员在保护派生类的成员函数中可以直接使用 9. 重载赋值操作符时,应声明为( C )函数。 A. 友元 B. 虚 C. 成员 D. 多态 10. 语句 ofstream f(″SALARY.DAT″,ios::app|ios::binary); 的功能是建立流对象 f,试图打开文件 SALARY.DAT 并与之连接,并且 ( A ) A. 若文件存在,将文件写指针定位于文件尾;若文件不存在,建立一个新文件 B. 若文件存在,将其置为空文件;若文件不存在,打开失败 C. 若文件存在,将文件写指针定位于文件首;若文件不存在,建立一个新文件 D. 若文件存在,打开失败;若文件不存在,建立一个新文件 二、填空题(每空2分,共30分) 1. 假定 AB 为一个类,则语句 AB(AB&x) ;为该类 _________ 复制 构造函数的原型说明。 2. C++ 支持的两种多态性分别是 ________编译时的_ 多态性和 运行时的_________ 多态性。 3. 定义类的动态对象数组时,系统只能够自动调用该类的 无参的_________ 构造函数对其进 .