《2022年C面向对象程序设计模拟试题三.docx》由会员分享,可在线阅读,更多相关《2022年C面向对象程序设计模拟试题三.docx(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学而不思就惘,思而不学就殆C+ 面对对象程序设计模拟试题三一、单项挑选题(本大题共10 小题,每道题2 分,共 20 分)在每道题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内;错选、多项或未选均无分;1下面有关重载函数的描述中,正确选项();A)重载函数必需具有不同的返回值类型 C)重载函数必需具有不同的形参表B)重载函数形参个数必需不同 D)重载函数名可以不同2假定 MyCIass 为一个类,那么以下的函数说明中,()为该类的析构函数;A)voidMyClass; B)MyCl
2、assint n; C)MyClass ; D)MyClass ; 3()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型;A)模板 B)类 C)对象 D)函数4下面关于静态成员函数的途术中错语的是();A. 静态成员函数可以有返回值 C. 静态成员函数可以具有指针参数B. this 指针可以指向静态成员函数 D. 静态成员函数可有具有返回值类型5定义类模板时要使用关键字(););D. template A. private B. public C. delete 6以下是重载乘法运算符的函数原型声明,其中错误选项(A)MyClass operator*double,
3、double; C)MyClass operator*MyClass,double; B)MyClass operator*double,MyClass; D)MyClass operator*MyClass,MyClass; 7以下()成员函数表示纯虚函数;A)virtual int funint B)void funint=0 C)virtual void fun=0 D)virtual void funint 8关于纯虚函数,以下表述中正确选项();A)纯虚函数的声明总是以 =0 终止 B)含有纯虚函数的类可以定义对象C)含有纯虚函数的类是抽象类 D)上面都是错误的9()解决二义性问题;
4、A. 只能使用作用域辨论操作符 B. 只能使用虚基类C. 使用作用域辨论操作符或虚基类 D. 上面都不能10实现编译时的多态性要使用();A)重载函数 B)析构函数 C)构造函数 D)虚函数二、填空题(本大题共 5 小题,每道题 2 分,共 10 分)不写解答过程,将正确的答案写在每道题的空格内;错填或不填均无分;(1定义一个函数名为fun,返回值为int ,没有参数的纯虚函数的声明是); 第 1 页,共 9 页 );细心整理归纳 精选学习资料 2定义静态成员函数应使用关键字();3在 C+中,假如类的名称是CTest,就此类的构造函数名称为(4在类的对象被创建时, ()函数会被自动调用;5类
5、中数据成员和成员函数的默认拜访级别为(); - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学而不思就惘,思而不学就殆三、完成程序填题(本大题共3 个小题,每道题3 分,共 9 分)下面程序都留有空白,请将程序补充完整,1请完成下面的程序#include / 预处理命令std using namespace std; / 使用标准命名空间/ 测试静态成员类class Test private: 1 int count; / 对象数public: Test cou
6、nt+; / 构造函数 , 实现对对象进行计数static void Show cout 共有 count 个对象 . endl; / 显示对象数; int Test:count = 0; / 初始化静态数据成员赋初值int mainvoid / 主函数 mainvoid Test obj1, obj2, obj3; / 定义对象Test:Show; / 显示对象数return 0; / 返回值 0,返回操作系统 2请完成下面的程序#include / 预处理命令std using namespace std; / 使用标准命名空间/ 整数类class Integer private: int
7、 a; / 数据成员public: Integerint x = 0 a = x; / 构造函数+ operator int return a; / 类型转换函数Integer operator+const Integer &i const / 重载加法运算符 return 2 ; / 返回和 ; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学而不思就惘,思而不学就殆int mainvoid / 主函数 m
8、ainvoid Integer a2, b3, c; / 定义整数对象c = a + b; / 求和cout c endl; / 显示和return 0; / 返回值 0, 返回操作系统 3请完成下面的程序#include / 预处理命令std using namespace std; / 使用标准命名空间template class A private: ElemType a; / 数据成员public: AElemType x: ax / 构造函数void Show const cout a endl; / 显示 a 之值; int mainvoid / 主函数 mainvoid A ob
9、jHello, world.; / 定义对象obj.Show; / 显示相关信息return 0; / 返回值 0, 返回操作系统 四、程序分析题(本大题共4 小题,每道题5 分,共 20 分)给出下面各程序的输出结果;1阅读下面程序,写出输出结果;#include / 预处理命令std using namespace std; / 使用标准命名空间class Point private: int x; / x 坐标int y; / y 坐标public: 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 9 页 - - - - - - -
10、 - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学而不思就惘,思而不学就殆Pointint a = 0, int b = 0:xa, yb int GetX const return x; int GetY const return y; void SetXint a x = a; void SetYint b y = b; ; int mainvoid Point obj1; const Point obj29, 98; cout obj1.GetX endl; obj1.SetX5; cout obj1.GetX endl; obj1.Set
11、Y18; cout obj1.GetY endl; cout obj2.GetX endl; cout obj2.GetY endl; return 0; / 返回值 0,返回操作系统 上面程序的输出结果为:2阅读下面程序,写出输出结果;#include / 预处理命令std using namespace std; / 使用标准命名空间class Array private: 细心整理归纳 精选学习资料 int *elem; / 数组元素储备空间 第 4 页,共 9 页 int size; / 数组元素个数 - - - - - - - - - - - - - - - - - - - - -
12、- - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学而不思就惘,思而不学就殆public: Arrayint a, int sz: elema, sizesz / 构造函数 int GetSize return size; ; int &operatorint pos return elempos - 1; / 重载下标运算符 int mainvoid int a = 1, 2, 3, 4, 5; Array obja, 5; obj1 = 8; for int i = 1; i = obj.GetSize; i+ cout obji ; cou
13、t endl; / 依次输出数组各元素之值return 0; / 返回值 0, 返回操作系统 上面程序的输出结果为:3阅读下面程序,写出输出结果;#include / 预处理命令std using namespace std; / 使用标准命名空间class A public: A cout 构造 A endl; / 构造函数 A cout 析构 A endl; / 析构函数 ; class B: public A public: B cout 构造 B endl; / 构造函数 B cout 析构 B endl; / 析构函数 ; int mainvoid 细心整理归纳 精选学习资料 - -
14、 - - - - - - - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学而不思就惘,思而不学就殆B obj; A *p = new A; return 0; / 返回值 0, 返回操作系统 上面程序的输出结果为:4阅读下面程序,写出输出结果;#include / 预处理命令std using namespace std; / 使用标准命名空间template ElemType fElemType x return x * ElemType5.1; template
15、void fElemType x, ElemType y x = x * 1.1; y = y * 1.1; cout x endl; cout y endl; int mainvoid cout f3.0 a + i.a 3参考答案: 3 char * 四、程序分析题(本大题共4 小题,每道题5 分,共 20 分)给出下面各程序的输出结果;1参考答案:0 5 18 9 98 2参考答案:8 2 3 4 5 3参考答案:构造 A 构造 B 构造 A 析构 B 析构 A 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 9 页 - - - -
16、 - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学而不思就惘,思而不学就殆4参考答案:15.3 1 2 1.1 2.2 五、程序改错题(本大题共3 小题,每道题5 分,共 15 分)指出下面程序中的错误,说明错误缘由,并加以改正;1参考答案:第 7 行“a = x, b = y ” 有错,初始列表的格式错,应改为“ax, by ” ;2参考答案:第 10 行有错,模板函数无隐式转换功能,函数调用Max16.8, 518 无法确定参数类型,可第 11 行的“Max16.8, 518 ” 改为“Max16.8, 518.0 ” ;3参考答
17、案:第 9 行“ int operator int ” 有错,类型转换函数不能有返回值类型,可改为“ operator int ” ;六、编程题(本大题 26 分)参考程序:#include / 预处理命令std using namespace std; / 使用标准命名空间const double PI = 3.1415926; / 定义常量 PI class Shape public: 细心整理归纳 精选学习资料 Shape / 构造函数 第 8 页,共 9 页 virtual Shape / 析构函数virtual Show = 0; / 显示面积 - - - - - - - - - -
18、 - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学而不思就惘,思而不学就殆static double totalArea; / 总面积; static void ShowTotalArea cout 总面积 : totalArea endl; class Circle: public Shape private: double radius; / 半径public: Circledouble r: radiusr totalArea += PI * r * r; / 构造函数Circle / 析构函
19、数virtual Show cout 圆面积 : PI * radius * radius endl; ; / 显示面积; class Rectangle: public Shape private: double length; / 长double width; / 宽public: Rectangledouble l, double w: lengthl, widthw totalArea += l * w; / 构造函数Rectangle / 析构函数virtual Show cout 矩形面积 : length * width endl; ; / 显示面积; double Shape:totalArea = 0; / 初始化 totalArea int mainvoid Circle c1; / 定义圆对象c.Show; / 显示面积Rectangle r1, 2; / 定义矩形对象r.Show; / 显示面积Shape:ShowTotalArea; / 显示总面积return 0; / 返回值 0, 返回操作系统 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 9 页 - - - - - - - - -
限制150内