一、 选择题(30分)
1.C++对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是(B)
A. 增加了一些新的运算符 B. 引进了类和对象的概念
C. 语序函数重载,并允许设置缺省参数 D. 规定函数说明符必须用原型
2. 基类中的(D)不允许外界访问,但允许派生类的成员访问,这样既有一定的隐藏性,又提供了开放的接口
A.公有成员
B.私有成员
C.私有成员函数 D.保护成员 3.下列函数参数默认值定义错误的是(C) A.Fun(int x,int y = 0); B.Fun(int x = 100); C.Fun(int x=0;int y); D.Fun(int x=f());(假定函数f()已经定义)
4.下列对重载函数的描述中,哪一项是错误的(A) A.重载函数中,不允许使用默认参数 B.重载函数中编译是根据参数表进行选择 C.不要使用重载函数来描述毫不相干的函数 D.构造函数重载将会给初始化带来多种方式
5.通过函数来实现一种不太复杂的功能,并且要加快执行速度,选用下列哪一种函数(A) A.内联函数 B.重载函数 C.递归函数 D.嵌套函数 6.下面说法中正确的是(B)
A.一个类只能定义一个构造函数,但可以定义多个析构函数 B.一个类只能定义一个析构函数,但可以定义多个构造函数 C.构造函数与析构函数同名,只要名字前加一个求反符号(~)
D.构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以 7.对基类和派生类的关系描述中,哪一项是错误的(B) A.派生类是基类的具体化 B.派生类是基类的子集 C.派生类是基类定义的延续 D.派生类是基类的组合
8.下列虚基类的声明中,正确的是(D) A.class virtual B:public A B.virtual class B:public A C.class B:public virtual A D.class B:virtual public A 9.C++中运算符重载可以改变(C)
A.运算符的优先级 B.运算符的结合性
C.运算符的功能 D.运算符的操作数个数
10. 在C++中,要实现运行时的多态,必须使用(D)调用虚函数
A.类名 B.派生类指针 C.对象名 D.基类指针
二、填空题(30分) (1)任何一个对象都具有 _属性____和_行为____这两个要素。
(2)函数重载时要求同名函数的参数__类型___或_个数____不同,否则无法确定是哪个函数。 (3)在用class定义一个类时,数据成员和成员函数的默认访问权限是_私有的_____。 (4)如果一个类至少有一个纯虚函数,那么就称该类为_ 抽象类____
(5)使用__const___关键字说明的对象称为常对象,并且,在定义常对象时必须进行__初始化___。
(6)面向对象程序设计的3大机制为:__封装性____、_继承 性____、和__多态性___。
(7)C++类的组成包括数据成员和_ 成员函数____,友元___不是__(是、不是)该类的成员函数。 (8)若要把整型变量y定义为x的引用,则所使用的定义语句为_int &y=x ___。
(9)假定指针变量p定义为int *p=new int(10);要释放p所指向的动态内存,应该使用语句 delete p__ (10)假定x和y为整型,其值为16和5,则x/y和double(x)/y的值分别为_3___和__3.2__。 三、程序阅读(10分)
(1)执行以下程序段后,变量i的值为_13_____
int i=2; switch(i)
{ case 1:i +=10; case 2:i +=10; case 3:i++;break; default:i++; }
(2)下面程序的运行结果是_6 6_______
#include static int c=4; b++; c--; return(a+b+c); } void main( ) {int a=2; for(int j=0;j<2;j++) cout< #include int main() {A a,*p; p=new A(2); delete p; return 0; } 四、程序设计(30分) 1. please define a class named Date ,which include three properties (year,month,day), also define: (1)A constructor that initialize the data members. (2)A member function showDate ( ) that show the information of data members. (3)Write the main function to test your classes just defined. 1. #include using namespace std; class Date { private: int year; int month; int day; public: Date(int y=2016,int m=12,int d=16){ year = y; month = m; day = d; } void showDate(){ cout<<\"year:\"< 2. Write down the following classes and complete the correspondent functionalities (1)Please design an abstract class named Vehicle(车), which declared a pure virtual function run( ). (2)Derive Motorcar(汽车) and Bicycle(自行车) classes from Vehicle. (3)The function of run( ) is to output the message like this:” Motorcar is running” or” Bicycle is running”. (4)Assign object Motorcar or Bicycle to a pointer of type Vehicle named p, When we call member function run( ) of the objects by pointer p, the output is the running information of Motorcar or Bicycle objects. 2. #include using namespace std; class Vehicle { public: virtual void run() const = 0; }; class Motorcar:public Vehicle { public: virtual void run() const {cout<<\"Motorcar is running.\"< Vehicle *p; Motorcar m; Bicycle b; p = &m; p->run(); cout< 因篇幅问题不能全部显示,请点此查看更多更全内容