面向对象程序设计C山师面向对象程序设计试卷A.doc

上传人:wux****ua 文档编号:9108791 上传时间:2020-04-03 格式:DOC 页数:7 大小:126KB
返回 下载 相关 举报
面向对象程序设计C山师面向对象程序设计试卷A.doc_第1页
第1页 / 共7页
面向对象程序设计C山师面向对象程序设计试卷A.doc_第2页
第2页 / 共7页
面向对象程序设计C山师面向对象程序设计试卷A.doc_第3页
第3页 / 共7页
点击查看更多>>
资源描述
学号 姓名 院(部) 专业考试时间:2010年01月 日-密-封-线-山东师范大学2009-2010学年第一学期期末考试试题(时间:120分钟 共100分) 课程编号:4111307 课程名称:面向对象程序设计 适用年级:07计本 学制: 4 适用专业:计算机科学与技术 试题类别: A 考生注意事项1、第一、二、三大题写在答题纸预留的表格中上。2、第四大题写在答题纸的预留位置。3、考试结束后,务必将试卷、答题纸一并交回。一、单项选择题下面每题的选项中,只有一个是正确的,请选择正确的答案填入答题纸中对应的题号后 (本题共25小题,每小题1分,共25分)。 1、当一个函数无返回值时,函数的类型应定义为( )。 A void B 任意 C int D无 2、作用域运算符的功能是( )。A 标识作用域的级别 B 指出作用域的范围C 给定作用域的大小 D 标识某个成员是属于哪个类 3、下列的( )是引用调用。A 形参是指针,实参是地址值 B 形参和实参都是变量C 形参是数组名,实参是数组名 D 形参是引用,实参是变量 4、( )不是构造函数的特征A 构造函数的名和类名相同 B 构造函数可以重载。C 构造函数可以设置默认值 D 构造函数必须指定类型说明。 5、下列( )不能作为类的成员。A 自身类对象的指针 B 自身类对象的引用C 自身类对象 D 另一个类的对象 6、重载函数在调用时选择的依据,( )是错误的。A. 参数个数 B 参数的类型C A或者B D 函数的类型7、下列静态成员的特性中,( )是错误的。A 说明静态成员时,要加修饰符staticB 静态数据成员要在类体外进行初始化C 引用静态数据成员时,要在静态数据成员名前加及作用域运算符D 静态数据成员不是所有对象所共用的8、已知f1(int)是类A的公有成员函数,p是指向成员函数f1()的指针,采用( )是正确的。A p=f1B p=A:f1 C p=A:f1() D p=f1()9、运算符-*的功能是( )。A 用来表示指向对象指针对指向类成员指针的操作B 用来表示对象对指向类成员指针的操作C 用来表示指向对象指针对类成员的操作D 用来表示对象类成员的操作10、下列定义中,( )是定义指向数组的指针p.A int p5 B int (*p)5 C (int*)p5 D int *p 11、设p为一个指向类A数据成员m的指针,A1为A的一个对象。如果给m赋值5,( )为正确的。A A1.p=5B A1-p=5 C A1.*p=5 D *A1.p=5 12、已知print( ) 函数是一个类的常成员函数,它无返回值。下列表示中,( )是正确的。 A void print ( ) const B const void print ( ) C void const print ( ) D void print (const)13、说明const char * ptr; 中,ptr应该是( )。 A 指向字符常量的指针 B 指向字符的常量指针C 指向字符串常量的指针 D 指向字符串的常量指针14、派生类的对象对它的基类成员中( )是可以访问的。A 公有继承的公有成员 B 公有继承的私有成员C 公有继承的保护成员 D 私有继承的公有成员15、 下列对派生类的描述中,( )是错的。 A 一个派生类可以作为另一个派生类的基类 B 派生类至少有一个基类 C 派生类的成员除了它自己的成员以外,还包含了它的基类成员 D 派生类中继承的基类成员的访问权限到派生类保持不变16、对于 int * pa5; 的描述,( )是正确的。A pa是一个指向数组的指针,所指向的数组是5个int型元素。B pa是一个指向某数组中第5个元素的指针,该元素是int型变量。C pa5表示某个数组的第5个元素的值。D pa是一个具有5个元素的指针数组,每个元素是一个int型指针。17、 设置虚基类的目的是( )。A 简化程序 B 消除二义性 C 提高运行效率 D 减少目标代码 18、 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚函数的子对象初始化( )。A 与虚基类下的派生类个数有关 B 多次 C 二次 D 一次19、 下列函数中,( )不能重载。A 成员函数 B 非成员函数 C 析构函数 D 构造函数20、 关于动态联编的描述中,( )是错误的。A 动态联编是以虚函数为基础的B 动态联编是在运行时,确定所调用的函数代码的。C 动态联编调用函数操作是指向对象的指针或对象引用。D 动态联编是在编译时确定操作函数的。 21、关于虚函数的描述中,( )是正确的。A 虚函数是一个非satatic类的成员函数。B 虚函数是一个非成员函数。C 基类中说明了虚函数后,派生类中与其对应的函数可以不必说明为虚函数。D 派生类的虚函数与基类的虚函数具有不同的参数个数和类型。 22、关于纯虚函数和抽象类的描述中,( )是错误的。A 纯虚函数是一种特殊的虚函数,它没有具体的实现。B 抽象类是指含有纯虚函数的类。C 一个基类中说明了纯虚函数,则其派生类不再是抽象类。D 抽象类一般只能作为基类来使用。 23、下列关于抽象类的使用中,( )是错误的。A 可以定义抽象类的对象 B 可以定义抽象类的指针C 可以定义抽象类的引用 D 可以定义抽象类的派生类学号 姓名 院(部) 专业考试时间:2010年01月 日-密-封-线- 24、派生类的构造函数的成员初始化列表中,不能包含( )。 A 基类的构造函数B 派生类中子对象的初始化C 基类的子对象的初始化D 派生类中一般数据成员的初始化25、关于new运算符的下列描述中,( )是错的。 A 它可以用来动态创建对象和对象数组; B 使用它创建的对象或对象数组可以使用delete运算符删除; C 使用它创建对象时要调用构造函数; D 使用它创建对象数组时,必须指定初始值。 二、填空题将正确的答案填入答题纸相应的题号后。(本题共 3小题,5个空,每空2分,共10分)1. 面向对象的程序设计有三大特征,它们是封装、 (1 ) 、 (2 ) 。2、类是用户定义的类型,具有类类型的变量称作 (3) 。3、在面向对象的程序设计中,通过 (4)实现数据隐藏;通过(5)实现代码的复用。 三、分析程序的执行结果题分析程序的执行结果,将结果按程序运行时输出形式填在答题纸对应的题号后 (本题共5小题,每题4分,共20分)。1、 #include class M public: M() x=y=0; M(int i, int j) x=i; y=j; void copy(M *m); void setxy(int i, int j) x=i; y=j; void print() coutx,yx; y=m-y;void fun(M m1, M *m2) m1.setxy(12, 15); m2-setxy(22,25); void main() M p(5, 7), q; q.copy(&p); fun(p, &q); p.print(); q.print(); 2、#include class Mpublic:M()a=b=0; M(int i,int j)a=i;b=j;void print() couta,bt;private:int a,b;void main() M m24; int x=10,y=10; for(int i=0;i2;i+) for(int j=0;j4;j+) mij=M(x+=2,y+=10); M (*pm)4(m); for(i=0;i2;i+) coutendl; for(int j=0;j4;j+)(*(*(pm+i)+j).print();/用指针的方式存取数组的第ij个元素 coutendl;3、#include #include class B public:B(char *s, double n)strcpy(name,s);b=n;coutConstructor. n;B()coutDefaultn;B()coutDestructor nameendl;void getb(char *s, double& n) strcpy(s,name); n=b;private:char name80;double b;void main()B* p;double n;char s80;p=new B3;p0=B(Ma,4.8);p1=B(Wang,3.6);p2=B(Li,3.1);for(int i=0;i3;i+)学号 姓名 院(部) 专业考试时间:2010年01月 日-密-封-线- pi.getb(s,n); couts,nendl;delete p;4、#include class Apublic:A(int i,int j) a=i;b=j;void Move(int x,int y) a+=x;b+=y;void Show() cout(a,b)endl;private:int a,b;class B:public Apublic:B(int i,int j,int k,int l):A(i,j),x(k),y(l)void Show() coutx,yendl;void fun() Move(3,5);void f1() A:Show();private:int x,y;void main()A e(1,2);e.Show();B d(3,4,5,6);d.A:Show();d.B:Show();d.f1();5、#include class A public:A(int i)a=i;coutcon. An;void print()coutaendl;A()coutdes. An;private:int a;class B1 : virtual public A public:B1(int i, int j) : A(i)b1=j;coutcon. B1n;void print()A:print(); coutb1endl;B1()coutdes. B1n;private:int b1;class B2 : virtual public A public:B2(int i, int j) : A(i)b2=j;coutcon. B2n;void print()A:print(); coutb2endl;B2()coutdes. B2n;private:int b2;class C : public B1, public B2 public:C(int i, int j, int k, int l) : B1(i,j), B2(i,k), A(i) c=l; coutcon. Cendl; void print() B1:print(); B2:print();coutcendl; C()coutdes. Cendl;private:int c;void main()C c1(5,7,3,6);c1.print();四、程序设计题将编写的程序标上小题题号,写在答题纸上。本题共4小题, 45分。1编写一个程序,设计一个产品类Product,其定义如下: Class Product char *name; /产品名称int price; /产品单价int quantity; /剩余产品数量public: Product(char *n,int p,int q); /构造函数 Product(); /析构函数 void buy(int money); /购买产品 void get() const; /显示剩余产品数量;并用数据进行测试。(10分)学号 姓名 院(部) 专业考试时间:2010年01月 日-密-封-线-2. 以面向对象的方法设计一个类,此类包含3个私有数据:unlead,lead(无铅汽油和有铅汽油)以及total(当天总收入,无铅汽油的价格是17元/公升,有铅汽油的价格是16元/公升),请以构造函数方式建立此值。试输入某天所加的汽油量,本程序将列出加油站当天的总收入。(10分)3. 编写一个程序计算两个给定长方形的面积,其中在设计类成员函数addarea()(用于计算两个长方形的总面积)时使用对象作为参数。(12分)4. 编一个程序计算正方体,球体和圆柱体的表面积和体积。要求:抽象出一个公共基类container为抽象类,在其中定义求表面积和体积的纯虚函数。抽象类中定义一个公共的数据成员radius,此数值可以作为球体的半径、正方体的边长、圆柱体底面圆半径。由该抽象类派生出的三个类,都有求表面积和体积的实际定义。键盘输入radius的值后,可以输出这3种立方体的面积。(13分)学号 姓名 院(部) 专业考试时间:2010年01月 日-密-封-线- 山东师范大学2009-2010学年第一学期期末考试答题纸课程编号:4111307 课程名称:面向对象程序设计 适用年级:07计本 学制: 4 适用专业:计算机科学与技术 试题类别: A 题号一二三四总分阅卷人复核人得分一、 单项选择题得分阅卷人本题共25小题,每小题1分,共25分。16111621271217223813182349141924510152025二、 填空题得分阅卷人将正确的答案填入答题纸相应的题号后。(本题共 3小题,5个空,每空2分,共10分)(1)(2)(3)(4)(5)三、分析程序的执行结果题本题共5小题,每题4分,共20分。得分阅卷人1、2、3、4、5、学号 姓名 院(部) 专业考试时间:2010年01月 日-密-封-线-四、编程题得分阅卷人 学号 姓名 院(部) 专业考试时间:2010年01月 日-密-封-线-第7页 共7页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!