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

下载本文档

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

文档简介

1、C+ 面向对象程序设计模拟试题三一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项 中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均 无分。1下面有关重载函数的描述中,正确的是(A)重载函数必须具有不同的返回值类型C)重载函数必须具有不同的形参表2假定MyCIass为一个类,那么下列的函数说明中, ( )为该类的析构函数。A)voidMyClass();B)MyClass(int n);C)MyClass( ); D)MyClass( );3()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。A)模板B)类

2、C)对象D)函数4下面关于静态成员函数的途术中错语的是()。6下列是重载乘法运算符的函数原型声明,其中错误的是(A)MyClass operator*(double,double);C)MyClass operator*(MyClass,double);7以下()成员函数表示纯虚函数。A)virtual int fun(int)C)virtual void fun()=0 8关于纯虚函数,下列表述中正确的是(A)纯虚函数的声明总是以=0结束C)含有纯虚函数的类是抽象类9()解决二义性问题。A.只能使用作用域分辨操作符C.使用作用域分辨操作符或虚基类10实现编译时的多态性要使用(A)重载函数B)

3、析构函数二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在 每小题的空格内。错填或不填均无分。1定义一个函数名为fun,返回值为int,没有参数的纯虚函数的声明是 )。2定义静态成员函数应使用关键字()。3.在C+中,如果类的名称是CTest,则此类的构造函数名称为() 。4在类的对象被创建时,()函数会被自动调用。5.类中数据成员和成员函数的默认访问级别为()。)。B)重载函数形参个数必须不同D)重载函数名可以不同A.静态成员函数可以有返回值C.静态成员函数可以具有指针参数5定义类模板时要使用关键字(A. privateB. publicB. this指针可以指

4、向静态成员函数D.静态成员函数可有具有返回值类型 )。C. deleteD. templateB)MyClass operator*(double,MyClass);D)MyClass operator*(MyClass,MyClass)B)void fun(int)=0D)virtual void fun(int)。B)含有纯虚函数的类可以定义对象D)上面都是错误的B.只能使用虚基类D.上面都不能)。)。三、完成程序填题(本大题共3个小题,每小题3分,共9分)下面程序都留有空白,请将程序补充完整,1请完成下面的程序#include using namespace std;/预处理命令/使用标

5、准命名空间std/测试静态成员类class Testprivate:1 int count;/对象数public:Test() count+; static void Show() cout 共有 count 个对象! endl; ;int main(void)Test obj1, obj2, obj3;Test:Show();return 0;2.请完成下面的程序#include using namespace std;/整数类class Integerprivate:int a;public:Integer(int x = 0) a = x; operator int() return a

6、; Integer operator+(const Integer &i)const int Test:count = 0;/初始化静态数据成员赋初值/构造函数,实现对对象进行计数/显示对象数/主函数main(void)/定义对象/显示对象数/返回值0,返回操作系统/预处理命令/数据成员/构造函数/类型转换函数/重载加法运算符+return 2;/返回和;int main(void)Integer a,b(3), c; c = a + b;cout c endl;return 0;3.请完成下面的程序#include using namespace std;template class

7、 Aprivate:ElemType a;public:A(ElemType x): a(x) void Show() const cout a endl; ;int main(void)A obj(Hello, world!);obj.Show();return 0;四、程序分析题(本大题共4小题,每小题1阅读下面程序,写出输出结果。#include using namespace std;/主函数main(void)/定义整数对象/求和/显示和/返回值0,返回操作系统/预处理命令/使用标准命名空间std/数据成员/构造函数/显示a之值/主函数main(void)/定义对象/显示相关信息/返

8、回值0,返回操作系统5分,共20分)给出下面各程序的输出结果。class Pointprivate:int x;/ x坐标int y;/ y坐标/预处理命令/使用标准命名空间stdpublic:Point(int a = 0, int b = 0):x(a), y(b) int GetX() const return x; int GetY() const return y; void SetX(inta) x = a; void SetY(int b) y = b; ;int main(void)Point obj1; const Point obj2(9, 98);cout obj1.Ge

9、tX() 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;/预处理命令 使用标准命名空间class Arrayprivate:int *elem;/数组元素存储空间int size;/数组元素个数stdpublic:Array(int a, int sz

10、): 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 usin

11、g namespacestd;/预处理命令/使用标准命名空间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;4阅读下面程序,写出输出结果。#include using namespace std;template ElemType f(ElemTypex)return x * (ElemType)5.1

12、;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) endl;f(1, 2);f(1.0, 2.0);system(PAUSE);return 0;面程序的输出结果为:return 0;面程序的输出结果为:/返回值0,返回操作系统/预处理命令/使用标准命名空间std/调用库函数system( ),输出系统提示信息/返回值0,返回操作系统/11五、程序改错题(本大题共3小题,每小题5分,共15分)指出下面程序中的错误,说明

13、错误原因,并加以改正。1下面程序中类的定义中有一处错误,请指出出错的行, 说明错误原因, 并加以改正。#include /1using namespace std;/2/3 class A/4/5public:/6A(int x = 0, int y = 0): a = x, b = y /7void Show()/8/9cout a b endl;/10/11/12 private:/13int a, b;/14;/15/16 int main(void)/17/18A obj(18);/19obj.Show();/20/21 return 0;/22/232下面程序中类的定义中有一处错误,

14、请指出出错的行, 说明错误原因, 并加以改正。#include /预处理命令/1using namespace std;/使用标准命名空间std /2/3 template /4ElemType Max(ElemType a, ElemType b)/5/6return (a b) ? a : b;/5/6/7 int main(void)/8/9cout Max(16.8, 518) endl;/10 /133下面程序中类的定义中有一处错误,请指出出错的行, 说明错误原因, 并加以改正。#include /1using namespace std;/2/3 class Integer/4/5

15、public:/6Integer(int a = 0): i(a) /7/8 int operator int()/9/10return i;/11/12/13 private:/14int i;/15;/16/17 int main(void)/18/19Integer obj(168);/20cout obj a + i.a3参考答案:3 char *四、程序分析题(本大题共4小题,每小题5分,共20分)给出下面各程序的输出结果。1参考答案:05189982参考答案:8 2 3 4 53参考答案: 构造A构造B构造A析构B析构A4参考答案:15.3121.12.2五、程序改错题(本大题共3

16、小题,每小题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()”。static double totalArea;static void ShowTotalArea()

17、cout /预处理命令/使用标准命名空间std/定义常量PI/构造函数/析构函数/显示面积/总面积六、编程题(本大题26分)参考程序:#include usingnamespace std;const double PI = 3.1415926;class Shapepublic:Shape() virtual Shape() virtual Show() = 0;总面积: 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),

温馨提示

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

评论

0/150

提交评论