C++面向对象程序设计模拟试题三.doc_第1页
C++面向对象程序设计模拟试题三.doc_第2页
C++面向对象程序设计模拟试题三.doc_第3页
C++面向对象程序设计模拟试题三.doc_第4页
C++面向对象程序设计模拟试题三.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+面向对象程序设计模拟试题三一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1下面有关重载函数的描述中,正确的是( )。A)重载函数必须具有不同的返回值类型 B)重载函数形参个数必须不同C)重载函数必须具有不同的形参表D)重载函数名可以不同2假定MyCIass为一个类,那么下列的函数说明中,( )为该类的析构函数。A)voidMyClass();B)MyClass(int n);C)MyClass( );D)MyClass( );3( )是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。 A)模板B)类C)对象D)函数4下面关于静态成员函数的途术中错语的是( )。A. 静态成员函数可以有返回值 B. this指针可以指向静态成员函数C. 静态成员函数可以具有指针参数 D. 静态成员函数可有具有返回值类型5定义类模板时要使用关键字( )。A. private B. public C. delete D. template6下列是重载乘法运算符的函数原型声明,其中错误的是( )。A)MyClass operator*(double,double);B)MyClass operator*(double,MyClass);C)MyClass operator*(MyClass,double);D)MyClass operator*(MyClass,MyClass);7以下( )成员函数表示纯虚函数。A)virtual int fun(int)B)void fun(int)=0C)virtual void fun()=0D)virtual void fun(int)8关于纯虚函数,下列表述中正确的是( )。A)纯虚函数的声明总是以=0结束B)含有纯虚函数的类可以定义对象C)含有纯虚函数的类是抽象类 D)上面都是错误的 9( )解决二义性问题。A. 只能使用作用域分辨操作符B. 只能使用虚基类C. 使用作用域分辨操作符或虚基类D. 上面都不能10实现编译时的多态性要使用( )。A)重载函数B)析构函数C)构造函数D)虚函数二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。1定义一个函数名为fun,返回值为int,没有参数的纯虚函数的声明是( )。2定义静态成员函数应使用关键字( )。3在C+中,如果类的名称是CTest,则此类的构造函数名称为( )。4在类的对象被创建时,( )函数会被自动调用。5类中数据成员和成员函数的默认访问级别为( )。三、完成程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整, 1请完成下面的程序#include / 预处理命令using namespace std;/ 使用标准命名空间std/ 测试静态成员类class Testprivate: 1 int count;/ 对象数public:Test() count+; / 构造函数, 实现对对象进行计数static void Show() cout 共有 count 个对象! endl; / 显示对象数;int Test:count = 0;/ 初始化静态数据成员赋初值int main(void)/ 主函数main(void)Test obj1, obj2, obj3;/ 定义对象Test:Show();/ 显示对象数return 0; / 返回值0,返回操作系统2请完成下面的程序#include / 预处理命令using namespace std;/ 使用标准命名空间std/ 整数类class Integerprivate:int a;/ 数据成员public:Integer(int x = 0) a = x; / 构造函数operator int() return a; / 类型转换函数Integer operator+(const Integer &i) const/ 重载加法运算符+return 2 ;/ 返回和;int main(void)/ 主函数main(void)Integer a(2), b(3), c;/ 定义整数对象c = a + b;/ 求和cout c endl;/ 显示和return 0; / 返回值0, 返回操作系统3请完成下面的程序#include / 预处理命令using namespace std;/ 使用标准命名空间stdtemplate class A private:ElemType a;/ 数据成员public:A(ElemType x): a(x) / 构造函数void Show() const cout a endl; / 显示a之值;int main(void)/ 主函数main(void)A obj(Hello, world!);/ 定义对象obj.Show();/ 显示相关信息return 0;/ 返回值0, 返回操作系统四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Pointprivate:int x;/ x坐标int y;/ y坐标public:Point(int a = 0, int b = 0):x(a), y(b)int GetX() const return x; int GetY() const return y; void SetX(int a) x = a; void SetY(int b) y = b; ;int main(void)Point obj1;const Point obj2(9, 98);cout obj1.GetX() endl;obj1.SetX(5);cout obj1.GetX() endl;obj1.SetY(18);cout obj1.GetY() endl;cout obj2.GetX() endl;cout obj2.GetY() endl;return 0; / 返回值0,返回操作系统上面程序的输出结果为:2阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Arrayprivate:int *elem;/ 数组元素存储空间int size;/ 数组元素个数public:Array(int a, int sz): elem(a), size(sz) / 构造函数int GetSize() return size; int &operator(int pos) return elempos - 1; / 重载下标运算符;int main(void)int a = 1, 2, 3, 4, 5;Array obj(a, 5);obj1 = 8;for (int i = 1; i = obj.GetSize(); i+)/ 依次输出数组各元素之值cout obji ;cout endl;return 0; / 返回值0, 返回操作系统上面程序的输出结果为:3阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdclass Apublic:A() cout 构造A endl; / 构造函数A() cout 析构A endl; / 析构函数;class B: public Apublic:B() cout 构造B endl; / 构造函数B() cout 析构B endl; / 析构函数;int main(void)B obj;A *p = new A;return 0; / 返回值0, 返回操作系统上面程序的输出结果为:4阅读下面程序,写出输出结果。#include / 预处理命令using namespace std;/ 使用标准命名空间stdtemplate ElemType f(ElemType x) return x * (ElemType)5.1; template void f(ElemType x, ElemType y) x = x * 1.1;y = y * 1.1;cout x endl;cout y endl;int main(void)cout f(3.0) a + i.a 3参考答案:3 char *四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1参考答案:05189982参考答案:8 2 3 4 53参考答案:构造A构造B构造A析构B析构A4参考答案:15.3121.12.2五、程序改错题(本大题共3小题,每小题5分,共15分)指出下面程序中的错误,说明错误原因,并加以改正。1参考答案:第7行“a = x, b = y”有错,初始列表的格式错,应改为“a(x), b(y)”。2参考答案:第10行有错,模板函数无隐式转换功能,函数调用Max(16.8, 518)无法确定参数类型,可第11行的“Max(16.8, 518)”改为“Max(16.8, 518.0)”。3参考答案:第9行“int operator int()”有错,类型转换函数不能有返回值类型,可改为“operator int()”。六、编程题(本大题26分)参考程序:#include / 预处理命令using namespace std;/ 使用标准命名空间stdconst double PI = 3.1415926;/ 定义常量PIclass Shapepublic:Shape() / 构造函数virtual Shape() / 析构函数virtual Show() = 0;/ 显示面积static double totalArea;/ 总面积static void ShowTotalArea() cout 总面积: totalArea endl; ;class Circle: public Shapeprivate:double radius;/ 半径public:Circle(double r): radius(r) totalArea += PI * r * r; / 构造函数Circle() / 析构函数virtual Show() cout 圆面积: PI * radius * radius endl; ;/ 显示面积;class Rectangle: public Shapeprivate:double length;/ 长double width;/ 宽public:Rectangle(double l, double w): length(l), width(w) totalArea += l * w; / 构造函数Rectangle() / 析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论