面向对象程序设计试题(二).docVIP

  • 26
  • 0
  • 约4.53千字
  • 约 5页
  • 2016-08-17 发布于重庆
  • 举报
面向对象程序设计试题(二)

姓名 本试卷满分100分; 请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰; 请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸 一并交上来。 单选题(共10分,每题1分) 1. C++中解决命名冲突的机制是: (A) 虚基类 (B) 虚函数 (C) 函数重载 (D) 名字空间(namespace) 2. 若类A的一个对象所占的内存空间中包含虚函数表的入口地址,则: (A) 类A不能有静态数据成员       (B) 类A中公有的成员函数一定是虚的 (C) 类A中至少有一个成员函数是虚的   (D) 类A的析构函数一定是虚的 3.任意一个类,析构函数的个数最多是: (A) 不限个数 (B) 1 (C) 2 (D) 3 下列关于this指针的说法,哪个是正确的: (A) this指针一定指向常量型数据 (B) this指向的数据不可更改 (C) 静态成员函数中也可以访问this指针 (D) this指针本身可直接作为成员函数的返回值 5.在类定义中private, protected, public 可以出现次数为至多一次 public 至少一次至少一次 (A) A * p = new A; (B) A a; A* p = a; (C) const A* p = new A; (D) A a; const A* p = a; 7. obj是类A的一个对象,执行语句 const A aA= obj; ,则下列说法正确的是: (A) 类A的拷贝构造函数会被调用 (B) 类A的赋值函数会被调用 (C) aA的值就是 obj (D) 语句obj.f( );等价于语句aA.f( ); 8.下面关于访问类A的私有数据成员的说法,错误的是: (A) 类A的友元函数可以访问类A的私有成员。 (B) 类A的友元类中的非静态成员函数可以访问类A的私有成员。 (C) 类A的嵌套类中的非静态成员函数可以访问类A的私有成员。 (D) 类A中的非静态成员函数可以访问类A的私有成员。 9.类A中有唯一的一个成员函数f,且f是公有的静态或非静态成员函数,对于类A的一个对象a,执行语句 a.f(100);成功,那么f 的函数原型不可以是: A f( int, int=50 ); (B) void f(int ) ; (C) const A * f(const int ); (D) A f( const int); 10. 下面关于类的成员函数描述不正确的是: (A) 静态成员函数内可以直接访问类的非静态成员数据 (B) 静态成员函数内可以直接访问类的静态成员数据 (C) 非静态成员函数可以直接访问类的非静态成员数据 (D) 非静态成员函数可以直接访问类的静态成员数据 二、判断正误,对于你认为错误的论述,说明原因或举出反例。(每题2分,共20分) 重载流操作符和 时,如果第一个参数为ostream 和istream,那么这个重载函数既可以用于标准输入输出流,也可以用于文件流上A有一个非静态的成员函数f,其函数原型是:void A::f( ) const,则该函数被调用时,一定是通过类A或类A的某后裔类的一个用const修饰符说明的常量对象调用的。 异常必须在其产生的当前函数中捕获,而不能在外层函数中捕获该异常。 只要程序中没有A a1 = a2; 和A a1(a2); 形式的代码,类A的拷贝构造函数就不会被调用。 在protected继承方式下,派生类对象的指针不能直接转换成指向基类对象的指针。 若静态成员函数中调用了一个函数f,那么f 一定不是虚函数。 若要实例化一个含有引用型数据成员的类,那么只能使用构造函数初始化列表来初始化该数据成员。 构造函数的函数体中,不能使用return语句;但在实现该类的自动类型转化函数时,必须有return 语句。 三、回答下列各题(每题4分,共20分) 举例说明static关键字的用法和相应目的(至少3种)。 举例说明类的数据成员在哪些情况下必须在初始化列表中进行初始化(至少3种)。 举例说明虚拟继承的作用和目的。 举例说明成员函数A f( ) const;和成员函数A f( ); 的区别。 有类A的对象a,任意给出一种解决方案,使得程序支持下面的表达式: a=10+a; 四、指出下列程序代码中存在的错误或不足,说明原因。(每题5分,共10分) 1. #inclu

文档评论(0)

1亿VIP精品文档

相关文档