1、本试卷共 8 页 本页为第 1 页考 试 科 目 面 向 对 象 程 序 ( C+)考 试 对 象 XX 计 本 1 、 2、 3 班考 试 成 绩一、是非题(每小题 1. 5 分,共 15 分) 说明:判断各小题说法的正确性,在下面表格中对应的题号下填入是非选择,若正确 ,则 打钩 ( ) ; 否 则,打 叉( ) 。题 号 1 2 3 4 5 6 7 8 9 10是/否1. 说明函数原型时不需要指明每个函数参数的名字,只需要说明每个参数的类型和返回值类型就可以了。2. 函数定义中的形参的作用域是该函数的函数体。3. 用 new 动态申请的内存空间,必须用 delete 来释放。 4. 构造
2、函数和析构函数都可以声明为虚函数。5. 在公有继承中,基类中的公有成员和私有成员在派生类中都是可见的。6. 类的静态数据成员需要在定义每个类的对象时进行初始化。7. 使用关键字 class 定义的类中缺省的访问权限是私有(private)的。8. 在基类中被说明为虚函数的类的成员函数必须在每个派生类中说明为虚函数,才 能具有多态的特征。9. C+程序中,程序将流对象看作是文件的化身。10如果程序中有多处要抛掷异常,应该用不同的操作数类型来相互区别,操作数 的值不能用来区别不同的异常。二、填空题(每小题 1. 5 分,共 15 分)1 变 量 名 是 变 量 的 标 识 , 由 组 成 , 而
3、且 必 须 以 开头。2 有 了 函 数 原 型 , 函 数 的 作 用 域 就 不 是 从 开 始 , 而 是 从 开始。3获取一个变量的地址所采用的操作符是 。4使用 const 语句定义一个标识符常量时,则必须对它同时进行 。5 假 定 类 AB 中有一个公用属性的静态数据成员 bb, 在 类 外 不 通 过 对 象 名 访 问 该 成 员 bb 的写法为 。6 typedef 语句 的作 用为 。7 平 时 所 提 到 的 使 用 MFC 编 程 , 这 里 的 MFC 是 的缩写。8若要在程序文件中进行标准输入输出操作,则必须在开始的 # include 命令中 使用 头文件。9C+
4、中,若将 操作符插入到输出流中,则以十六进制格式输出。10 C+程 序 中 , 异 常 处 理 程 序 的 主 要 任 务 是 。 三、单选题(在备选答案中选出一个正确答案填入括号内,每小题 2 分,共20 分)1C+对 C 语言作了很多改进,下列描述中使得 C 语言发生质变,从面向过程变成 了面向 对象 的是 ( ) 。学院 _班级_姓名_学号_装订线本试卷共 8 页 本页为第 2 页A 增 加 了 一 些 新 的 运 算 符 B. 允 许 函 数 重 载 , 并 允 许 设 置 缺 省 参 数 C规定函数说明必须用原型 D. 引进了类和对象的概念2当一个函数无返回值时,定义它的函数的类型是
5、( )。A. void B. int C. 无 D. long 3下 列 不 是构 造函 数特 征 的是( ) 。A. 构造函数的函数名与类名相同 B. 构造函数可以重载C. 构造函数可以设置缺省参数 D. 构造函数必须指定返回类型 4关 于 成 员函 数特 征的 下 列描述 中, 错误 的是 ( ) 。A成员函数一定是内联函数 B成员函数可以重载 C成员函数可以设置缺省参数值 D 成 员 函 数 可 以 是 静 态 的5关 于 new 运算 符的 下列 描述中 ,错 误的 是( ) 。A. 它可以用来动态创建对象和对象数组B. 使用它创建的对象或对象数组可以使用运算符 delete 删除C.
6、 使用它创建对象时要调用构造函数D. 使用它创建对象数组时必须指定初始值 6派生类 的对 象对 它 的 基 类成员 中可 以访 问的 是( ) 。A. 公有继承的公有成员 B. 公有继承的私有成员C. 公有继承的保护成员 D. 私有继承的公有成员 7下列描述中,正确的是( ).A. 虚函数是一个 static 类型的成员函数 B. 虚函数是一个非成员函数 C. 抽象类是指具有纯虚函数的类 D. 抽象类可以说明其对象8假定要对类 AB 定义加号操作符重载成员函数,实现两个 AB 类对象的加法,并返 回相加结果,则该成员函数的声明语句为 ( )。A. AB operator+(AB class D
7、 :pubic B本试卷共 8 页 本页为第 3 页 ;B b1, * pb1; D d1;答:a)b)C)(2) 下列的程序定义了一个交换两个浮点数的函数 swap,并在主函数中调用这个函数进行两个浮点数的交换(本小题 3 分)void swap (float a , float b)float temp=a; a=b; b=temp;void main( )float a=1,b=2; swap ( a, b );错误为: 改正方法为: (3) 写 出下 面程 序运 行结 果。 ( 本小 题 6 分)#include class Apublic:virtual void act1() co
8、utact1();p-act2 ();答:五 、 下 面 的 程 序 共 有 17 行 , 程 序 的 每 行 前 面 加 上 了 行 号 。 程 序 中 变 量 num、 i 、 temp、 对象 c out 和函数 func()的作用域范围分别是 什 么 ? 在程序的下面用行号 来回 答 。 (每 小题 1 分,共 10 分)1. #include 2. int num;3. void func();4. void main() 5. 6. char name20;7. int i;8. for(i=0; i 2int CircleArea()34 double *pd=new double; 5 if(!pd)6 7 coutrd;13 cout class Shapepublic:virtual int GetArea() =0;class Rectangle : public Shapepublic:Rectangle(int width=0,int height=0) m_Width=width,m_Height=height; int GetArea() return m_Width*m_Height;private:int m_Width, m_Height;class Circle : public Shape