文档详情

C 面向对象程序设计期末考试试题.docx

发布:2025-04-22约7.2千字共12页下载文档
文本预览下载声明

《C++面向对象程序设计》考试试题

今本试卷满分100分;

今请将答案写在答题纸上,写明题号,不必抄题,字迹工整、清晰;

今请在答题纸和试题纸上都写上你的班级,学号和姓名,交卷时请将试题纸、答题纸和草纸一并交上来。

一、单选题(共10分,每题1分)

1.C++中解决命名冲突的机制是:D

(A)虚基类(B)虚函数(C)函数重载(D)名字空间

2.若类A的一个对象所占的内存空间中包含虚函数表的入口地址,则:C

(A)类A不能有静态数据成员(B)类A中公有的成员函数一定是虚的

(C)类A中至少有一个成员函数是虚的(D)类A的析构函数一定是虚的

3.任意一个类,析构函数的个数最多是:B

(A)不限个数(B)1(C)2(D)3

4.下列关于this指针的说法,哪个是正确的:D

(A)this指针一定指向常量型数据(B)this指向的数据不可更改

(C)静态成员函数中也可以访问this指针(D)this指针本身可直接作为成员函数的返回值

5.在类定义中,为说明成员的访问权限,private,protected,public可以出现次数为:A(A)次数没有具体限定(B)每种至多一次

(C)public至少一次(D)每种至少一次

6.下面哪种定义方式是正确的,并且使得p可以作为函数voidf(A*constpp);的实参:A(A)A*p=newA;(B)Aa;A*p=a;

(C)constA*p=newA;(D)Aa;constA*p=a;

7.obj是类A的一个对象,执行语句constAaA=obj;,则下列说法正确的是:C

(A)类A的拷贝构造函数会被调用(B)类A的赋值函数会被调用

(C)aA的值就是obj(D)语句obj.f();等价于语句aA.f();

8.下面关于访问类A的私有数据成员的说法,错误的是:C

(A)类A的友元函数可以访问类A的私有成员。

(B)类A的友元类中的非静态成员函数可以访问类A的私有成员。

(C)类A的嵌套类中的非静态成员函数可以访问类A的私有成员。

(D)类A中的非静态成员函数可以访问类A的私有成员。

9.类A中有唯一的一个成员函数f,且f是公有的静态或非静态成员函数,对于类A的一个对象a,执行语句a.f(100);成功,那么f的函数原型不可以是:B

(A)Af(int,int=50);(B)voidf(int);

(C)constA*f(constint);(D)Af(constint);

10.下面关于类的成员函数描述不正确的是:A

(A)静态成员函数内可以直接访问类的非静态成员数据

(B)静态成员函数内可以直接访问类的静态成员数据

-2-

(C)非静态成员函数可以直接访问类的非静态成员数据

(D)非静态成员函数可以直接访问类的静态成员数据(全局成员)

二、判断正误,对于你认为错误的论述,说明原因或举出反例。(每题2分,共20分)

1.重载流操作符和时,如果第一个参数的类型为ostream和istream,那么这个重载函数既可以用于标准输入输出流,也可以用于文件流上。

对,ostream和istream是标准输入输出流、文件流、字符串流的基类

2.在同一个类中,可以定义重载的成员函数voidf(int);和virtualvoidf(int);。

错,这属于重复定义

3.抽象类不会产生实例,所以不需要有构造函数。

错,被派生时需要它的构造函数

4.类A有一个非静态的成员函数f,其函数原型是:voidA::f()const,则该函数被调用时,一定是通过类

显示全部
相似文档