C++试题(软件工程硕士)答案_第1页
C++试题(软件工程硕士)答案_第2页
C++试题(软件工程硕士)答案_第3页
C++试题(软件工程硕士)答案_第4页
C++试题(软件工程硕士)答案_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

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

文档简介

1、四川大学计算机(软件)学院工程硕士考试试题(200 200 学年第 学期)课程号:课序号: 课程名称: 面向对象的技术与方法 任课教师:适用专业:软件工程 适用年级: 学生人数:印题份数: 学号: 姓名:考 试 须 知四川大学学生参加由学校组织或由学校承办的各级各类考试,必须执行四川大学考试工作管理办法和四川大学考场规则。有考试作弊行为的,一律按照四川大学学生考试违纪作弊处罚条例进行处四川大学各级各类考试的监考人员,必须严格执行四川大学考试工作办法、四川大学考场规则和四川大学监考人员职责。有违反有关规定的,严格按照四川大学教学事故认定及处理办法进行处理题号一二三四五六七八九十平时得分考试时年月

2、 日阅卷教间师签名一、单项选择题(在每小题的四个备选答案中,选出一个正确案,并将其号码填在题干后的括号内。每小题1分,共20分)1 面向对象程序设计将数据与_a_放在一起,作为一个相互依存可分割的整体来处理。A.对数据的操作B.信息C.数据隐藏D.数据抽象2. _a_不是面向对象系统所包含的要素。A.重载 B.对象C.类 D.继承3. 按照标识符的要求,_a_符号不能组成标识符。A.连接符C.大小写字母B.下划线D.数字字母4. 已知ch是字符型变量,下面正确的赋值语句是_b_。A.ch=123;B.ch=xff;C.ch=08;D.ch=”;5. 要求通过函数来实现一种不太复杂的功能,并且要

3、求加快执行速度_a_。A.内联函数B.递归调用C.重载函数D.嵌套调用6. _c_的功能是对对象进行初始化。A.析构函数B.数据成员C.构造函数D.静态成员函数7. 在下列关键字中,用以说明类中公有成员的是_a_。A.public B.private C.protected D.friend8. _A_无返回类型,但又有return语句。A.虚函数 B.内联函数C.友元函数 D.类型转换函数9. 类模板的使用实际上是将类模板实例化成一个具体的_D_。A.类 B.对象C.函数 D.模板类10. 利用友元函数重载“”运算符,第2个参数必须为_c_。A.指针 B.对象C.引用 D.无值11. 用成员

4、函数重载二元运算符,则显式调用方式为_a_。A.obj1.operator(obj2)B.operator(obj1,obj2)C.obj1.operator( )D.obj1obj212. 通常拷贝构造函数的参数是_c_。A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名13. 已知一个类A,_a_是指向类A成员函数的指针。假设类有三成员:void f1(int),void f2(int)和int a。A.A *p B.int A:*pc=&A:a C.void A:*pa D.A *pp14. 用struct定义类,若它的成员缺省段约束符的说明,其成员是_的成员。A

5、.私有段C.特殊段B.公有段D.保护段15. 下列定义中,_b_是定义指向数组的指针p。A.int *p5 B.int (*p)5 C.(int *)p5 D.int *p16. C+中的类有两种用法:一种是类的实例化,即生成类的对象,并参统的运行;另一种是通过_c_,派生出新的类。A.复用 B.单继承C.继承 D.多继承17. 派生类的对象对它的基类成员中_d_是可以访问的。A.公有继承的公有成员B.公有继承的私有成员C.公有继承的保护成员D.私有继承的公有成员18.说明静态成员函数的关键字为_a_。A.staticB.virtualC.friendD.void19.下列运算符中,_c_运算

6、符在C+中不能重载。A.?:B.+C.-D.E.( )3. 对一元运算符进行重载后,正确的显式调用方式有_BD_。A.aB.operator(a)C.abD.a.operator( ) E.a4. 关于构造函数,正确的描述有_AE_。A.可以是虚函数 B.可以有参数C.可以被继承D.可以重载E.可以显式调用5. C+的模板有_DE_模板。A.运算符B.数据C.类型D.类E.函数三、名词解释(每小题2分,共8分)1. 封装性:封装就是将抽象得到的数据和行为(或功能)相结合,形有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成其中数据和函数都是类的成员。封装的目的是增强安全性和简化编程

7、,不必了解具体的实现细节,而只是要通过 外部接口,一特定的访问权用类的成员。2. 类:实际上是对某种类型的对象定义变量和方法的原型。它对现实生活中一类具有共同特征的事物的抽象,是面向对象编基础。3. 构造函数:是一种特殊的方法 主要用来在创建对象时初始化对象 即成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 特别类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来们 即构造函数的重载4. 内联函数:,内联函数(有时称作在线函数或编译时期展开函数)编程语言结构,用来建议编译器对一些特殊函数进行内联扩展(有时称扩展);也就是说建议编译器将指定的函数体插入并取代每一处调用该地

8、方(,从而节省了每次调用函数带来的额外时间开支。四、判断分析题(判断正误,将正确的划上“”,错误的划上“”,并简述理由。每小题3分,共12分)1. 空类就是没有名字的类。错。空类是没有任何成员的类2 引用类型和指针类型作为函数的形式参数时,对调用函数的实际参求是一样的,均是地址。错。指针类型调用函数的实际参数是地址类型由于是别名,所以调用函数的实际参数就是变量就行(引用是这个别名),操作时方式和原来变量一样,但是在函数中改变值也会改变外变量的值。3. 在派生类中,若基类的一个成员在派生类中也把相同名字定义为员,则不可调整它的访问。错。因为基类构造函数的调用顺序是按照派生时的顺序,而内嵌对象构造

9、函数调用顺序应该按照成员在类中声明的顺序都可以控制4. 对象数组在创建时要求构造函数不能有任何参数。错。静态数据成员是一个类的多个对象共享的。五、读程序、得结果(每小题5分,共20分)1. #include class A int a;public:void seta(int x)a=x;void showa()coutaendl;class Bint b;public:void setb(int x)b=x;void showb()coutbendl;class C:public A, private Bint c:public:void setc(int x,int y,int z)c=z

10、;seta(x);setb(y); void showc()coutcendl;main() C c;c.seta(1);c.showa();c.setc(1,2,3);c.showc();以上程序的执行结果是_3_。2. #include class csample private:int i ;static int k;public:csample();void display();csample:csample()i=0;k+;void csample:display()cout”i=”i”,k=”kendl; int csample:k=0;main() csample a,b; a.

11、display(); b.display();以上程序的执行结果是_。i=0,k=2i=0,k=2.3. #include class sample int x;public:void setx(int i)x=i;int putx()return x;main() sample *p; sample A3; A0.setx(5); A1.setx(6);A2.setx(7);for(int j=0;j3;j+)p=&Aj;coutputx()” ”; coutendl;以上程序的执行结果是_567_。4. #include static int dys =31,28,31,30,31,30,

12、31,31,30,31,30,31;class dateint mo,da,yr;public:date(int m,int d,int y)mo=m,da=d;yr=y; date()void disp()coutmo”/”da”/”yrdysdt.mo-1) day-=daysdt.mo-1; if(+dt.mo=13)dt.mo=1;dt.yr+;dt.da=day; return dt;main() date d1(2,10,2001),d2; d2=d1+20;d2.disp( );以上程序的执行结果是_3/2/2001_。六、编程题(每小题15分,共30分)1. 用模板设计一个堆栈

13、类,包含判栈、读栈、入栈和出栈功能,要成员函数重载“()”实现判栈功能,用友元函数重载“-”实现出栈#includeusing namespace std;template class Stackprivate:int size;int top;T *space;public:Stack(int n);Stack()delete space;void push( Tt);friend ostream& operator(ostream& out,Stack &st)while(!(st.operator()()out st.spacest.top+endl;return out;boolope

14、rator ()() constreturn top = size;bool Isfull() constreturn top = 0;template Stack:Stack(int size)this-size = size;top = size;space = new T size;template void Stack:push(Tt)if(!Isfull()space-top = t;int main()Stacks(20);/可以指定栈的大小 s.push(1);s.push(2);s.push(3);s.push(4);s.push(5);s.push(6);couts;2. 利

15、用基类、派生类和虚函数的概念编写一个程序计算三角形、矩圆形的面积。#include const double PI = 3.1415926;using namespace std;struct PointPoint()x = y = 0;Point(double X, double Y):x(X), y(Y);double x;double y;class shapepublic:virtual double GetArea()=0; / 虚函数,纯虚函数,图形不具体的话,无面积virtual void Print()=0; / 虚函数,纯虚函数,图形不具体的话,无法输积;/ 三角形类,继承自

16、图形类 class trigon : public shapepublic:trigon(Point &A, Point &B, Point &C): a(A), b(B), c(C);trigon();double GetArea()/ 自己找公式吧,根据三点计算面积的 area = 0;return area;void Print()cout 三角形【( a.x , a.y ):( b.x , b.y ):( c.x , c.y )】的面积是: GetArea() endl;private:trigon();Point a, b, c; / 三角形三个点double area; / 面积;

17、/ 矩形类,继承自图形类 class rect : public shapepublic:rect(double &Top, double &Bottom, double &Left, double &Right): top(Top), bottom(Bottom), left(Left), right(Right)/ 填充四个点的坐标 pa.x = Left;pa.y = Top; pb.x = Left; pb.y = Bottom; pc.x = Right; pc.y = Top; pd.x = Right; pd.y = Bottom;rect();double GetArea() / 计算矩形面积/return (right - left) * (bottom - top);void Print()cout 矩形【( pa.x , pa.y ):( pb.x , pb.y ):( pc.x , pc.y ):( pd.x , pd.y )】的面积是: GetArea() endl;private:rect();Point pa, pb, pc, pd; / 矩形左上、左下、右上、右下四个点坐标 double top, bottom, left, right; / 矩形上下左右四个线

温馨提示

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

评论

0/150

提交评论