ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:24.67KB ,
资源ID:10964748      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10964748.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(四川大学C++面向对象程序设计模拟试题3.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

四川大学C++面向对象程序设计模拟试题3.docx

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

2、( )是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。 A)模板 B)类 C)对象 D)函数4下面关于静态成员函数的途术中错语的是( )。A)静态成员函数可以有返回值 B)静态成员函数含有this指针C)静态成员函数可以具有指针参数 D)静态成员函数可有具有返回值类型5定义类模板时要使用关键字( )。A)private B)public C)delete D)template6下列是重载乘法运算符的函数原型声明,其中错误的是( )。A)friend MyClass operator*(double,double); B)friend MyClass operator

3、*(double,MyClass);C)friend MyClass operator*(MyClass,double); D)friend MyClass operator*(MyClass,MyClass);7以下( )成员函数表示纯虚函数。A)virtual int fun(int) B)void fun(int)=0 C)virtual void fun()=0 D)virtual void fun(int)8关于纯虚函数,下列表述中正确的是( )。A)纯虚函数的声明不一定以=0结束 B)含有纯虚函数的类可以定义对象C)含有纯虚函数的类是抽象类 D)上面都是错误的 9( )解决二义性问

4、题。A)只能使用作用域分辨操作符 B)只能使用虚基类C)使用作用域分辨操作符或虚基类 D)上面都不能10实现编译时的多态性要使用( )。A)重载函数 B)析构函数 C)构造函数 D)虚函数二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。1定义一个函数名为fun,返回值为int,没有参数的纯虚函数的声明是( )。2定义静态成员函数应使用关键字( )。3在C+中,如果类的名称是CTest,则此类的构造函数名称为( )。4在类的对象被创建时,( )函数会被自动调用。5用class声明的类中数据成员和成员函数的默认访问级别为( )。三、

5、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。1阅读下面程序,写出输出结果。#include using namespace std;class Apublic: A() cout A() endl; A() cout A() endl; ;int main() A a, *p = new A; delete p; cout end endl; return 0; 上面程序的输出结果为:2阅读下面程序,写出输出结果。#include using namespace std;class Arrayprivate: int *elem; int size; publi

6、c: Array(int a, int sz): elem(a), size(sz) int GetSize() const return size; int &operator(int pos) return elempos - 1; ;int main() int a = 1, 2, 3, 4, 5; Array ar(a, 5); ar1 = 8; for (int i = 1; i = ar.GetSize(); i+) cout ari ; cout endl; return 0; 上面程序的输出结果为:3阅读下面程序,写出输出结果。#include using namespace

7、std; class Apublic: virtual void Show() const cout A endl; ;class B: public Apublic: void Show() const cout B A:Show(); p-Show(); return 0; 上面程序的输出结果为:4阅读下面程序,写出输出结果。#include using namespace std; template ElemType f(ElemType x) return x * (ElemType)5.1; template void f(ElemType x, ElemType y) x = x

8、* 1.1; y = y * 1.1; cout x endl; cout y endl;int main() cout f(3) endl; f(1, 2); f(1.0, 2.0); return 0; 上面程序的输出结果为:5阅读下面程序,写出输出结果。#include using namespace std;class Aprivate: int a; public: A(int m = 1): a(m) void Show() cout a endl; void Show() const cout a + 5 endl; ;int main() A a, b(8); a.Show()

9、; b.Show(); const A c, d(8); c.Show(); d.Show(); return 0; 上面程序的输出结果为:6阅读下面程序,写出输出结果。#include using namespace std; class Testprivate: static int n; public: Test() n += 6; Test() n -= 8; static int GetNum() return n; ; int Test:n = 2; int main() cout Test:GetNum() endl; Test *p = new Test; cout Test:

10、GetNum() endl; delete p; cout Test:GetNum() endl; cout end endl; return 0; 上面程序的输出结果为:四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。1请完成下面的程序#include using namespace std; class Testprivate: 1 int count; / 对象数public: Test() count+; static void Show() cout 共有 count 个对象! endl; 数;int Test:count = 0; i

11、nt main() 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; Integer operator+(const Integer &i) const return 2 ; / 返回和 ;int main() Integer a(2), b(3), c; c = a + b; cout c endl;

12、 return 0; 3请完成下面的程序#include using namespace std; template class A private: ElemType a; public: A(ElemType x): a(x) void Show() const cout a endl; ;int main() A obj(Hello, world!); obj.Show(); return 0; 4下列程序的输出结果为“B”,试将程序补充完整。#include using namespace std; class Apublic: 4 void Show() const cout A e

13、ndl; ;class B: public Apublic: void Show() const cout B Show(); delete p; return 0; 五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)1试使用函数模板实现求一个数组各元素的平均值,要求编写测试程序。函数模板声明如下:template T Average(T a, int n); / 求数组a各元素之平均值2定义Person(人)类,由Person分别派生出Teacher(教师)类和Cadre(干部)类,再由Teacher(教师)类和Cadre(干部)类采用多重继承方式派生出新类Teacher

14、Cadre(教师兼干部)类,各类之间的继承关系如下图所示。要求:(1)在Person类中包含的数据成员有姓名(name)、年龄(age)、性别(sex)。在Teacher类还包含数据成员职称(title),在Cadre类中还包含数据成员职务(post),在TeacherCadre类中还包含数据成员工资(wages)。(2)在类体中定义成员函数。(3)每个类都有构造函数与显示信息函数(Show)。C+面向对象程序设计模拟试题三参考答安全一、单项选择题(本大题共10小题,每小题2分,共20分)在每小题列出的四个备选项中,只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分

15、。1C) 2D) 3A) 4B) 5D)6A) 7C) 8C) 9C) 10A)二、填空题(本大题共5小题,每小题2分,共10分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。1参考答案:virtual int fun() = 0;2参考答案:static3参考答案:CTest 4参考答案:构造函数 5参考答案:private或私有三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。1参考答案:A()A()A()endA()2参考答案:8 2 3 4 53参考答案:ABAB4参考答案:15121.12.25参考答案:186136参考答案:280en

16、d四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。1参考答案:1 static2参考答案:2 a + i.a或this-a + i.a 3参考答案:3 char *4参考答案:4 virtual五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)1参考程序: #include using namespace std; template T Average(T a, int n) T s = 0; for (int i = 0; i n; i+) s = s + ai; return s / n; int main() doubl

17、e a = 11.8, 2, 3, 4, 5.5, 6.8, 7, 8, 9; cout Average(a, 9) endl; return 0; 2参考程序: #include using namespace std;class Personprotected: char name18; int age; char sex3; public: Person(char nm, int ag, char sx) strcpy(name, nm); age = ag; strcpy(sex, sx); void Show() const cout 姓名: name endl; cout 年龄:

18、age endl; cout 性别: sex endl; ;class Teacher: virtual public Person protected: char title18; public: Teacher(char nm, int ag, char sx, char tl): Person(nm, ag, sx) strcpy(title, tl); void Show() const Person:Show(); cout 职称: title endl; cout endl; ;class Cadre: virtual public Person protected: char p

19、ost18; public: Cadre(char nm, int ag, char sx, char pt): Person(nm, ag, sx) strcpy(post, pt); void Show() const Person:Show(); cout 职务: post endl; cout endl; ;class TeacherCadre: public Teacher, public Cadreprotected: double wages; public: TeacherCadre(char nm, int ag, char sx, char tl, char pt, dou

20、ble wg) : Person(nm, ag, sx), Teacher(nm, ag, sx, tl), Cadre(nm, ag, sx, pt) wages = wg; void Show() const Person:Show(); cout 职称: title endl; cout 职务: post endl; cout 工资: wages 元 endl; cout endl; ;int main() Teacher objTeacher(文冠杰, 48, 男, 教授); Cadre objCadre(周杰, 56, 男, 院长); TeacherCadre objTeacherCadre(李靖, 50, 女, 教授, 院长, 6890); objTeacher.Show(); objCadre.Show(); objTeacherCadre.Show(); return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1