2016最新《VC++_程序设计》期末复习题及答案 下载本文

内容发布更新时间 : 2024/10/1 22:35:33星期一 下面是文章的全部内容请认真阅读。

一、选择题

A(1)下列的( )是引用调用。

A.形参是引用,实参是变量; B.形参和实参都是变量;

C.形参是指针,实参是地址值; D.形参是数组名,实参是数组名。 C(2)作用域运算符的功能是( )

A.给定作用域的大小; B.表示作用域的级别的;

C.某个成员是属于哪个类的; D.指出作用域的范围的。 D(3)下列的各函数中,( )不是类的成员函数。

A. 构造函数;B.析构函数;C.拷贝初始化构造函数;D.友元函数。 D(4)下面( )不是构造函数的特征。

A.构造函数可以重载; B.构造函数可以设置缺省参数; C.构造函数的函数名和类名相同;D.构造函数必须指定返回值类型。 C(5)下述静态数据成员的特性中,( )是错误的。

A. 静态数据成员要在类体外进行初始化; B. 说明静态数据成员时前边要加修饰符static; C. 静态数据成员不是所有对象所共有的; D. 引用静态数据成员时,要在静态数据成员名前加<类名>和作用域运算符。

C(6)已知类A有三个公有成员:void f1(int), void f2(int) 和int a,则( )是指向类A成员函数的指针。

A.A *p; B. int A::*pc=&A::a; C. void(A ::*pa)(int); D. A **p; C(7)下列关于对象数组的描述中,( )是错的。

A.对象数组的数组名是一个地址常量; B.对象数组的下标是从0开始的; C.对象数组只能赋初值,不能被赋值;

D.对象数组的数组元素是同一个类的对象. B(8)下列定义中,( )是定义指向类A的对象数组的指针。

A.A *p[5]; B.A (*p)[ 5]; C.(A *) p[5]; D.A *p[ ];

A(9)说明语句const char *ptr;中,ptr是( )。 A.指向字符常量的指针; B.指向字符的常量指针;

C.指向字符串常量的指针; D.指向字符串的常量指针。 B(10)关于new运算符的下列描述中,( )是错的. A.使用它创建对象时要调用构造函数; B.使用它创建对象数组时必须指定初始值; C.它可以用来动态创建对象和对象数组;

D.使用它创建的对象或对象数组可以使用运算符delete删除。

答:

(1)A (2)C (3)D( 4)D( 5)C( 6)C (7)C (8)B (9)A (10)B

C(1) 派生类的对象对它的基类成员中( )是可以访问的.

A.公有继承的保护成员; B.公有继承的私有成员; C.公有继承的公有成员; D.私有继承的公有成员. D(2) 下面关于派生类的描述中,( )是错的。

A.一个派生类可以作为另一个派生类的基类; B.派生类至少有一个基类;

C.派生类的成员除了它自己的成员外,还包含了它的基类的成员. D.派生类中继承的基类成员的访问权限到派生类保持不变。 C(3)派生类的构造函数的成员初始化列表中,不能包含( )

A.基类的构造函数调用; B.派生类对象成员的初始化;

C.基类对象成员的初始化; D.派生类中一般数据成员的初始化. B(4)设置虚基类的目的是( )

A.减少目标代码;B.消除二义性;C.提高运行效率; D.简化程序。

A(5) 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚基类的子对象初始化( )

A.一次; B.二次; C.多次; D.与虚基类下面的派生类个数有关. 答案:

(1)C (2)D (3) C (4)B (5)A A(1) 以下保留字( )不能出现在说明虚函数原型的语句中。

A.static B. operator C. void D. const . D(2) 以下关于虚函数和纯虚函数的说法中,( )是不正确的

A.在派生类中虚函数可以不用关键字virtual说明。 B. 虚函数在派生类中可以不重定义。 C. 不能为虚函数定义缺省操作。

D. 纯虚函数在派生类中可以不重定义。

C(3) 以下关于动态绑定的说法中,正确的是( )

A.虚基类是动态绑定的。 B. 指针是动态绑定的。

C. 所有的虚函数和纯虚函数都是动态绑定的。 D. 动态绑定与编译系统无关。 C(4) 以下关于抽象类的说法中,( )是不正确的

A.不可创建抽象类的实例。 B. 可以声明抽象类的引用。 C. 抽象类的派生类也是抽象类。

D. 抽象类的派生类也可以是抽象类。

(5) B以下关于抽象类的说法中,只有( )是正确的

A.定义抽象类的目的是软件重用。 B. 定义抽象类是为了提高访问效率。 C. 定义抽象类是使指针的使用更灵活。 D. 抽象类提供了对类进行分类的机制。 (6) D以下关于多态性的说法中,( )是不正确的

A.每个多态类的对象有一个虚表指针。 B. 虚函数调用与this指针无关。

C. 每个多态类的基类都有一个虚函数表。

D. 多态类的每一个派生类都有一个虚函数表。 单项选择题答案:

(1) A (2) D (3) C (4) C (5) B (6) D

D(1)下列不是C++流对象的是( )

A.cout B.cin C.cerr D.ostream

A(2)已知:int w=-3,x=10,z=7 执行下面的语句的输出结果为( cout<(10?x+100:x-10) <<(w++||z++)

)

<<(!w

A. 0111 B.1111 C.0101 D.0100

C(3)void main(){cout<

A.stream.h B.iostream.h C.cin和cout D.ios B(5)文件的输入与输出流是( )

A. iostream.h B. ifstream和ofstream

C. istream_withassign,ostream_withassign D. istream和ostream

C(6)语句cout<

B(7)对<<进行重载的语句 istream & operator<< (istream & is, date& dt ),其中对is的说法正确的是()

A. 是一个istream对象

B. 是istream的一个对象的引用 C. 起返回操作结果作用 D. 仅作为参数传递的作用

B(8)以流方式打开一个文件的输入文件的语句正确的是( ) A. ofstream afile();

afile.open(\,ios::in|ios::binary) B. ifstream afile();

afile.open(\,ios::in|ios::binary)

C. ifstream afile();

afile.open(\,ios::out|ios::binary)

D. ofstream afile();

afile.open(\,ios::out|ios::binary)

答案:

1.D 2.A 3.C 4.D 5.B 6.C 7.B 8.B

B 94. 关于消息,下列说法中不正确的是( B )。

A. 发送消息的对象请求服务,接受消息的对象提供服务 B. 消息的发送者必须了解消息的接收者如何相应消息

C. 在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用 D. 每个对象只能接收某些特定格式的消息 D 95. 关于封装,下列说法中不正确的是( D )。

A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体 B. 通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见) C. 通过封装,每个对象都成为相对独立的实体 D. 通过封装,对象的属性都是不可见的 C 96. 面向对象方法的多态性是指( )。 A. 一个类可以派生出多个特殊类

B. 一个对象在不同的运行环境中可以有不同的变体

C. 针对一消息,不同的对象可以以适合自身的方式加以响应 D. 一个对象可以是由多个其他对象组合而成的 C 104. 在一个类的定义中,包含有( )成员的定义。

A. 数据 B. 函数 C. 数据和函数 D. 数据或函数