单项选择题
1. 什么不是面向对象程序设计的主要特征(D)
A. 封装     B.继承   C 多态      D结构
2. UML中有四种关系是:依赖,泛化,关联和(C)
A. 继承    B.合作      C.实现        D.抽象
3. 在UML中,(B)图显示了一组类,接口,协作以及它们之间的关系.
  A. 状态图            B.类图        C.用例图  D.部署图
4. 软件生存期包括计划,需要分析和定义(B),编码,软件测试和运行维护.
    A. 软件开发   B.软件设计(详细设计)    C软件支持    D软件定义
5. ( A )模型的缺点是缺乏灵活性,特别是无法解决软件需要不明确或不准确的问题.
  A.瀑布模型      B原型模型    C 增量模型   D螺旋模型
6. 下图是(B)
窗体顶端
窗体底端
  A类图     B用例图        C活动图  D状态图 
7.下面哪个不是UML中的静态视图(A)
  A. 状态图            B用例图            C对象图      D类图
8.下列关于状态图的说法中,正确的是(C)
  A.状态图是UML中对系统的静态方面进行建模的五种图之一.
 B. 状态图是活动图的一个特例,状态图中的多数状态是活动状态.
 C.活动图和状态图是对一个对象的生命周期进行建模,描述对象活动时间变化的行为.
 D.状态图强调对有几个对象参与的活动过程建模,而活动图更强调对单个瓜型对象建模.
9.对反应型对象建模一般使用(A)图
    A.状态图            B顺序图            C活动图                D类图
10.类图应该画在Rose的哪种视图中(B)
      A. Use Case View    B.Logic View    C .Component View    D. Deployment View
11.类通常可以分为实体类,(C)和边界类.
    A. 父类            B.子类            C控制类                D祖先类
12.顺序图由类角,生命线,激活期和(B)组成
    A.关系            B.消息            C.用例                D.实体
13.( D)是系统中遵从一组接口且提供实现的一个物理部件,通常指开发和运行时类的物理实现.
    A部署图            B.类                C.接口                D.组件
14.关于协作图的描述,下列哪个不正确(B)
    A.协作图作为一种交互图,强调的是参加交互的对象的组织.
    B. 协作图是顺序图的一种特例.
    C. 协作图中有消息流的顺序号.
    D. 在Rose工具中,协作图可在顺序图的基础上按”F5”键自动生成.
15.(C)是一组用于描述类或组件的一个服务的操作.
    A.包        B. 节点            C. 接口            D.组件
16. 一个对象和另一个对象之间,通过消息来进行通信,消息通信在面向对象的通信中
17. D
18. 下图中的空心箭头连线表示(A)关系
  A.泛化   B 包含    C扩展    D实现
19.组件图展现了一组组件之间组件和依赖,它专注于系统的(B)实现图.
      A. 动态  B.静态        C 基础            D实体
20. 下列关于类方法的声明,不正确的是 (  C  )
A.方法定义了类所许可的行动
B.从一个类所创建的所有对象可以使用同一组属性和方法
C.每个方法应该有一个参数
D.如果在同一个类中定义了类似的操作,则他们的行为应该是类似的
第二题:填空
1. 面向对象系统包含的3个要素有:对象,类和继承.
2. OOA模型的五个层次有:主题层,结构层,服务层,属性层和类及对象层.
3. UML的全称是:Unified Modeling Language
4. 组件是被节点执行的事物.
5. 构造,析构
6. UML提供一系列的图支持面向对象的分析与设计,其中(类图)给出系统的静态设计视图;
(用例图)对系统的行为进行组织和建模是非常重要的;(序列图)和(协作图)都是描述系统动态视图的交互图,其中(序列图)描述了以时间顺序组织的对象之间的交互活动,(协作图)强调收发消息的对象的组织结构.
7. 在协作图中通过(消息编号)表示出消息的时间顺序.
8. UML中的交互图有顺序图和协作图两种.
9. 在UML提供的图中,(用例图)用于描述系统与外部系统及用户之间的交互,(序列图)用于按时间顺序描述对象间的交互.
10. 用例图的建模步骤包括寻参与者,确定用例,分析关系,细化用例规约,精化用例模型.
11. 时序图包括对象或(Object),生命线或(Lifeline),激活或(Activation),消息或(Messsage)
12. RUP开发过程中各阶段的核心工作流包括:初始阶段,细化阶段,构造阶段.
13. 标准建模语言UML的重要内容可以由哪五类图(共9种图形)来定义:用例图,静态
图(包括类图,对象图和包图),行为图,交互图和实现图.
14. 动态视图包含交互图和行为图,交互图包括时序图,协作图,状态图和活动图.
第三题:分析题
1、下面那些特征不能被派生类继承。 
答:
1)构造函数:不能。每个类至少含义一个构造函数,如果编写代码时没有显式的定义,编译器会为类自动生成一个;调用时,编译器会根据派生的实现依次调用基类和派生类的构造函数,因此没有必要继承基类的构造函数。
2)析构函数:同"构造函数"
3用户定义的NEW运算符:能。但该运算符必须是公有的,以使派生类得以访问。
4友元关系:不能。友元函数不是类的成员函数,自然不能被他的派生类继承。
5)成员变量的属性:能。但必须是公有的,以使派生类得以访问。
2、分析下面的类层次结构:
class Base{
int b;
void fun(int);
};
class Derived:Base{
void b( );
void fun(double);
};
class SubDerived:Derived,Base{
Derived b;
SubDerived c;
Base d;
};
下面的语句各能访问那些成员?为什么?
(1) b.b();
(2) b.fun(3);
(3) c.b();
(4) c.fun(5); 
(5) d.fun(2);
答:类默认的访问是私有的;当不使用基类访问标识符时,类的派生视为私有。派生类无法得到基类的私有元素。所以:(1)和(2)访问的分别是类Derived实例b的b()和fun();(3)和(4)没有可访问的对象,(5)仿问的是基类Base实例D的fun()。
3、看图回答问题
析构方法
a. 下图中类的名字是:___ReaderManager___ 
b. 类中的行为(方法)是:_newReader(),ModifyReader(),deleteReader() ___ 
c. 类中的成员方法的访问可见性是: public   
d. 该类是什么类型的类,这种类型的类作用是什么?
答:该类是控制类。控制类是负责协调其他类的工作,它建立了一个或几个用例的行为模型。它整理系统的行为并描述一个系统的动态特性,处理主要的任务和控制流。每个用例通常都有一个控制类、控制用例中的事件顺序。也存在多个用例共享同一个控制类。 
4、请指出在下面各说明语句中,变量p各被说明成什么类型? 
int *p; //整数指针。
int *p[]; //整数指针数组,数组元素为整数指针
int &p=5; //引用类型
const int *p=a; //指向整形常量a的指针
int **p; //两级指针
5、以下各词法,哪些是合法的C++变量名?并说明为什么其他词法符号不合法。
答:不合法的变量名:
3nd 不能以数字开头。只能用26个字母或下划线作开头。
@price 不合法的开头。
a*b *为非法变量名字符。
π 非法变量名字符。
-depth 不合法的开头。
via.num 点号"."为非法变量名字符。
6、请指出以下程序中存在的错误: 
#include <iostream.h>
void main()
{
const: x=1; //const后不应该有冒号。
y=6; //y没有进行定义就被赋值。
x=x+y; //x是const常量,不能被重新赋值。
cout<<'X='<<x; //字符串应该用双引号写成″X=″。
}
第四题:简答
1、简述继承机制的重要性。
答:当今软件开发十分重视软件的"可扩充性"和"复用性",软件"模块化"是实现该目标的重要途径。提供模块化实现"复用性"的过程就是利用"继承"机制实现类与类之间关系的过程,如扩充、特化和组合等。