2022年面向对象程序设计C山师面向对象程序设计试卷A.docx
精选学习资料 - - - - - - - - - 山东师范高校 2022-2022 学年第一学期期末考试试卷11、设 p 为一个指向类A 数据成员m 的指针, A1 为 A 的一个对象;假如给m 赋值 5,()为正确的;日-(时间: 120 分钟共 100 分)A A1.p=5B A1->p=5 C A1.*p=5 D *A1.p=5 12、已知 print 函数是一个类的常成员函数,它无返回值;以下表示中,()是正确的;课程编号: 4111307 课程名称:面对对象程序设计适用年级: 07 计本 学制 : 4 适用专业:运算机科学与技术 A void print const B const void print 试卷类别: A C void const print D void print const 考生留意事项13、说明 const char * ptr ; 中, ptr 应当是(); A 指向字符常量的指针 B 指向字符的常量指针1、第一、二、三大题写在答题纸预留的表格中上;C 指向字符串常量的指针 D 指向字符串的常量指针14、派生类的对象对它的基类成员中()是可以拜访的;2、第四大题写在答题纸的预留位置;01月A 公有继承的公有成员 B 公有继承的私有成员3、考试终止后,务必将试卷、答题纸一并交回;C 公有继承的爱护成员 D 私有继承的公有成员年 2022:间 时 试 考一、单项挑选题15、 以下对派生类的描述中,()是错的;下面每题的选项中,只有一个是正确的,请挑选正确的答案填入答题纸中对应的题号后(此题共25 小题,每 A 一个派生类可以作为另一个派生类的基类小题 1 分,共 25 分); B 派生类至少有一个基类1、当一个函数无返回值时,函数的类型应定义为(); C 派生类的成员除了它自己的成员以外,仍包含了它的基类成员 A void B 任意 C int D 无 D 派生类中继承的基类成员的拜访权限到派生类保持不变业 专2、作用域运算符的功能是();16、对于 int * pa5 ; 的描述,()是正确的;A 标识作用域的级别 B 指出作用域的范畴A pa 是一个指向数组的指针,所指向的数组是5 个 int 型元素;C 给定作用域的大小 D 标识某个成员是属于哪个类-线B pa 是一个指向某数组中第5 个元素的指针,该元素是int 型变量;3、以下的()是引用调用;C pa5 表示某个数组的第5 个元素的值;A 形参是指针,实参是地址值 B 形参和实参都是变量D pa 是一个具有5 个元素的指针数组,每个元素是一个int 型指针;C 形参是数组名,实参是数组名 D 形参是引用,实参是变量17、 设置虚基类的目的是();4、()不是构造函数的特点A 简化程序 B 排除二义性 C 提高运行效率 D 削减目标代码A 构造函数的名和类名相同 B 构造函数可以重载;)部(院18、 带有虚基类的多层派生类构造函数的成员初始化列表中都要列出虚基类的构造函数,这样将对虚-封C 构造函数可以设置默认值 D 构造函数必需指定类型说明;函数的子对象初始化(); 5、以下()不能作为类的成员;A 与虚基类下的派生类个数有关 B 多次 C 二次 D 一次A 自身类对象的指针 B 自身类对象的引用19、 以下函数中,()不能重载;C 自身类对象 D 另一个类的对象名 姓A 成员函数 B 非成员函数 C 析构函数 D 构造函数 6、重载函数在调用时挑选的依据,()是错误的;20、 关于动态联编的描述中,()是错误的;A. 参数个数 B 参数的类型-密A 动态联编是以虚函数为基础的C A 或者 B D 函数的类型B 动态联编是在运行时,确定所调用的函数代码的;7、以下静态成员的特性中,()是错误的;C 动态联编调用函数操作是指向对象的指针或对象引用;A 说明静态成员时,要加修饰符static 号 学D 动态联编是在编译时确定操作函数的;B 静态数据成员要在类体外进行初始化21、关于虚函数的描述中,()是正确的;C 引用静态数据成员时,要在静态数据成员名前加<类名 >及作用域运算符A 虚函数是一个非satatic 类的成员函数;D 静态数据成员不是全部对象所共用的B 虚函数是一个非成员函数;8、已知 f1int 是类 A 的公有成员函数,p 是指向成员函数f1 的指针,采纳()是正确的;C 基类中说明白虚函数后,派生类中与其对应的函数可以不必说明为虚函数;A p=f1B p=A:f1 C p=A:f1 D p=f1 D 派生类的虚函数与基类的虚函数具有不同的参数个数和类型;9、运算符 ->* 的功能是();22、关于纯虚函数和抽象类的描述中,()是错误的;A 用来表示指向对象指针对指向类成员指针的操作A 纯虚函数是一种特别的虚函数,它没有详细的实现;B 用来表示对象对指向类成员指针的操作B 抽象类是指含有纯虚函数的类;C 用来表示指向对象指针对类成员的操作C 一个基类中说明白纯虚函数,就其派生类不再是抽象类;D 用来表示对象类成员的操作D 抽象类一般只能作为基类来使用;10、以下定义中,()是定义指向数组的指针p. 23、以下关于抽象类的使用中,()是错误的;A int p5 B int *p5 C int*p5 D int *p A 可以定义抽象类的对象 B 可以定义抽象类的指针1 / 8 名师归纳总结 - - - - - - -第 1 页,共 8 页精选学习资料 - - - - - - - - - C 可以定义抽象类的引用 D 可以定义抽象类的派生类public: 日-24、派生类的构造函数的成员初始化列表中,不能包含();Ma=b=0 ; ij 个元素 A 基类的构造函数Mint i,int ja=i; b=j; B 派生类中子对象的初始化void print cout<<a<<","<<b<<"t"; C 基类的子对象的初始化private: D 派生类中一般数据成员的初始化int a,b;25、关于 new 运算符的以下描述中, 是错的; ; A 它可以用来动态创建对象和对象数组;void main B 使用它创建的对象或对象数组可以使用delete运算符删除;M m24; int x=10,y=10 ; C 使用它创建对象时要调用构造函数;forint i=0 ; i<2 ; i+ D 使用它创建对象数组时,必需指定初始值;forint j=0 ;j<4 ;j+ 01月二、填空题 mij=Mx+=2,y+=10; 2022年:间 时 试 考将正确的答案填入答题纸相应的题号后;(此题共 3 小题, 5 个空,每空2 分,共 10 分) M *pm4m;1. 面对对象的程序设计有三大特点,它们是封装、1 、 2;2、类是用户定义的类型,具有fori=0 ;i<2; i+ 类类型的变量称作(3);cout<<endl ;3、在面对对象的程序设计中,通过(4)实现数据隐匿;通过(5)实现代码的复用;forint j=0 ; j<4 ; j+ 三、分析程序的执行结果题*pm+i+j.print;/用指针的方式存取数组的第业 专分析程序的执行结果,将结果按程序运行时输出形式填在答题纸对应的题号后此题共 5 小题 ,每题 4 分,共 20 cout<<endl ;分; -线1、 #include <iostream.h> 3、#include <iostream.h> class M public: M x=y=0 ; #include <string.h> Mint i, int j class B x=i ; y=j; public: )部(院 void copyM *m ;Bchar *s, double n -封 void setxyint i, int j strcpyname,s; x=i ; y=j; b=n ; void print cout<<x<<","<<y<<endl; cout<<"Constructor. n" ;名 姓 private: int x, y ; ;Bcout<<"Defaultn"; -密void M:copyM *m Bcout<<"Destructor "<<name<<endl; x=m->x ; y=m->y ; void getbchar *s, double& n void funM m1, M *m2 strcpys,name ;n=b; 号 学 m1.setxy12, 15 ;private: m2->setxy22,25;char name80; double b;void main ; M p5, 7, q ;void main q.copy&p ; B* p ;funp, &q ;double n; p.print ;char s80; q.print ;p=new B3 ; p0=B"Ma",4.8 ; 2、 #include <iostream.h> p1=B"Wang",3.6 ;class M p2=B"Li",3.1;2 / 8 名师归纳总结 - - - - - - -第 2 页,共 8 页精选学习资料 - - - - - - - - - forint i=0 ;i<3; i+ class B1 : virtual public A 日-pi.getbs,n ; public: cout<<s<<","<<n<<endl ;B1int i, int j : Aib1=j; cout<<"con. B1n" ; void printA:print; cout<<b1<<endl ; delete p ;B1cout<<"des. B1n" ; private: int b1 ;4、#include <iostream.h> ;class A class B2 : virtual public A public: public: B2int i, int j : Aib2=j; cout<<"con. B2n" ; 01月Aint i,int j a=i;b=j; void printA:print; cout<<b2<<endl ; 2022年:间 时 试 考void Moveint x,int y a+=x; b+=y; B2cout<<"des. B2n" ; void Show cout<<""<<a<<","<<b<<""<<endlprivate: private: int b2 ;int a,b; ; ;class C : public B1, public B2 业 专class B:public A public: Cint i, int j, int k, int l : B1i,j, B2i,k, Ai public: c=l ; cout<<"con. C"<<endl ; -线Bint i,int j,int k,int l:Ai,j,xk,yl void print B1:print ;B2:print ; cout<<c<<endl ; void Show cout<<x<<","<<y<<endl; Ccout<<"des. C"<<endl ; void fun Move3,5 ; private: void f1 A:Show; int c ;)部(院private: ;-封int x,y ;void main ; void main C c15,7,3,6;名 姓 c1.print ;A e1,2; -密e.Show;号 学B d3,4,5,6 ;四、程序设计题d.A:Show ;将编写的程序标上小题题号,写在答题纸上;此题共4 小题 ,45 分;d.B:Show ;1编写一个程序,设计一个产品类Product,其定义如下:d.f1 ;Class Product 5、 #include <iostream.h> char *name; /产品名称class A int price ; /产品单价public: int quantity ; /剩余产品数量Aint ia=i ; cout<<"con. An" ; public: void printcout<<a<<endl; Productchar *n,int p,int q ; /构造函数Acout<<"des. An" ; Product; /析构函数private: void buyint money ; / 购买产品int a;void get const ; /显示剩余产品数量 ; ;3 / 8 名师归纳总结 - - - - - - -第 3 页,共 8 页精选学习资料 - - - - - - - - - 并用数据进行测试;(10 分)日-2.以面对对象的方法设计一个类,此类包含3 个私有数据: unlead, lead(无铅汽油和有铅汽油)以及total3.(当天总收入,无铅汽油的价格是17 元/公升,有铅汽油的价格是16 元/公升),请以构造函数方式建立此值;试输入某天所加的汽油量,本程序将列出加油站当天的总收入;(10 分)编写一个程序运算两个给定长方形的面积,其中在设计类成员函数addarea(用于运算两个长方形的总面4.积)时使用对象作为参数;(12 分)编一个程序运算正方体,球体和圆柱体的表面积和体积;要求:抽象出一个公共基类container 为抽象类,在其中定义求表面积和体积的纯虚函数;抽象类中定义一个公共的数据成员radius,此数值可以作为球体的半径、正方体的边长、圆柱体底面圆半径;由该抽象类派生出的三个类,都有求表面积和体积的实际定义;键盘输入radius 的值后,可以输出这3 种立方体的面积;(13 分)月 012022年:间 时 试 考业 专-线)部(院-封名 姓-密号 学4 / 8 名师归纳总结 - - - - - - -第 4 页,共 8 页精选学习资料 - - - - - - - - - 1、山东师范高校 2022-2022 学年第一学期期末考试答题纸日-课程编号: 4111307 课程名称:面对对象程序设计适用年级: 07 计本 学制 : 4 适用专业:运算机科学与技术10 分 )2、试卷类别: A 3、题号一二三四总分阅卷人复核人得分一、单项挑选题01月得分4、2022年:间 时 试 考阅卷人此题共 25 小题,每道题1 分,共 25 分;1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 -线4 9 14 19 24 业 专5 10 15 20 25 5、二、填空题-封)部(院得分阅卷人将 正 确 的 答 案 填 入 答 题 纸 相 应 的 题 号 后 ; ( 本 题 共3 小 题 , 5 个 空 , 每 空2 分 , 共名 姓1 -密号 学2 3 4 5 三、分析程序的执行结果题此题共 5 小题 ,每题 4 分,共 20 分;得分 阅卷人5 / 8 名师归纳总结 - - - - - - -第 5 页,共 8 页精选学习资料 - - - - - - - - - 四、编程题得分阅卷人日月 01年 2022:间 时 试 考业 专)部(院名 姓号 学-线-封-密6 / 8 名师归纳总结 - - - - - - -第 6 页,共 8 页精选学习资料 - - - - - - - - - 日01月2022年:间 时 试 考业 专)部(院名 姓号 学-线-封-密7 / 8 名师归纳总结 - - - - - - -第 7 页,共 8 页精选学习资料 - - - - - - - - - 8 / 8 名师归纳总结 - - - - - - -第 8 页,共 8 页