面向对象程序试题6
更新时间:2024-04-24 11:17:01 阅读量: 综合文库 文档下载
中国计量学院《面向对象程序设计》
课程考试试卷(C) 一、填空题(每空1分,共20分)。 1.所有的面向对象程序设计语言,都支持三个共同的本质特征___、___、___。 2.为了解决程序中函数调用的效率问题,引入了___,定义时需在函数前面加上___说明;为了提高程序的运行效率,引入了___,定义时需在函数前面加上___说明。 3.在类的定义当中,缺省的成员是__成员。 4. 请填写下列表格(填写派生类中成员的类型)。
派生publprivaprotec类继承方式 ic te ted 基类中成员类型 public Privat不可不可不可见 e 见 见 protec ted 5.利用成员函数对二元运算符进行重载时,其左操作数为___,右操作数为___。
6.设置虚基类的目的是___,可通过___标识虚基类。 7.动态联编是在___的支持下实现的,它通过___来调用该函数操作。 二、选择题(每题2分,共20分) 1.下列关于类型转换的描述中,()是错误的。 A、在不同类型操作数组成的表达式
中,其表达式类型一定是最高类型double型; B、逗号表达式的类型是最后一个表达式的类型;
C、赋值表达式的类型是左值的类型;D、由低向高的类型转换是保值映射。
2.()不是构造函数的特征。 A、构造函数的函数名与类名相同; B、构造函数可以重载;
C、构造函数可以设置缺省参数; D、构造函数必须指定类型说明 3.在C++中,关于下列设置参数默认值的描述中,()是正确的。 A、不允许设置参数的默认值; B、设置参数默认值只能在定义函数时设置;
C、设置参数默认值时,应该是先设置右边的,再设置左边的; D、设置参数默认值时,应该全部参数都设置
4.关于new运算符的下列描述中,()是错误的。 A、它可以用来动态创建对象和对象数组;
B、使用它创建的对象或对象数组可以使用运算符delete删除; C、使用它创建对象时要调用构造函数;
D、使用它创建对象数组时必须指定初始值。
5.重载函数在调用时选择的依据中,()是错误的。 A、参数个数; B、参数的类型; C、函数名字; D、函数的类型
6.下列描述中,()是抽象类的特性。 A、可以说明虚函数; B、可以进行构造函数重载; C、可以定义友元函数; D、不能说明其对象。
7.()是析构函数的特征。 A、一个类中只能定义一个析构函数; B、析构函数名与类名不同; C、析构函数的定义只能在类体内; D、析构函数可以有一个或多个参数; 8.关于delete运算符的下列描述中,
()是错误的。
A、它必须用于new返回的指针; B、它也适用于空指针;
C、对一个指针可以使用多次该运算符;
D、指针名前只有一对方括号符,不管所删除数组的维数。
9.const int *p说明不能修改()。 A、p指针;
B、p指针指向的变量; C、p指针指向的数据类型; D、上述A、B、C三者
10、关于子类型的描述中,()是错误的。
A、子类型就是指派生类是基类的子类型;
B、一种类型当它至少提供了另一种
类型的行为,则这种类型是另一种类型的子类型;
C、在公有继承下,派生类是基类的
子类型; D、子类型关系是不可逆的 三、改错题(共15分)
1. 找出下面程序中的错误,并说明原因。
class X { public:
int readme() const {return m;}
void writeme(int i) {m=i;}
private:
int m;
};
void f(X& x1,const X& x2)
{
x1.readme(); x1.writeme(1); x2.readme(); x2.writeme(2); }
2.找出下面程序中的错误,并改正。
#include
class TV {
void SetStation(int Station); int GetStation(); private: int itsStation; }
void main() { TV myTV;
myTV.itsStation=9;
TV.SetStation(10);
TV myOtherTV(2);
cout< } 四、写出下列程序的输出结果(每题 10分,共20分)。 1、#include class Test; void fun1(Test t); Test fun2(); class Test { public: Test(int n=1) {val=n; cout<<\l; } Test(const Test& t) {val=t.val; cout<<\con.\ Test& operator = (Test& t) { val=t.val; cout<<\ return *this; } private: int val; }; void main() { Test t1(1); Test t2=t1; Test t3; t3=t1; fun1(t2); t3=fun2(); } void fun1(Test t){} Test fun2() { Test t; return t; } 2、#include class A { public: A(){cout<<\~A(){cout<<\des.\}; class B { public: B(){cout<<\ ~B(){cout<<\des.\}; class C:public A,public B { public: C():member(),B(),A() {cout<<\ ~C(){cout<<\ private: A member; }; void main() { C obj; } 五、将下列程序补充完整(每空2分,共16分)。 1. 输出所有pumpkin的总重量。 #include weight=w; total_weight++; }~pumkin() { (2) } static void total_display() { cout<<\\pounds.\ } private: int weight; static int total_weight; }; ___(3)___ void main() { pumpkin p1(15),p2(20),p3(12); ___(4)___ } 2. 华氏温度转换为摄氏温度的公式为:C=(F-32)/1.8。 #include convert(double i) {val1=i;} ___(1)___ protected: double val1; double val2; }; //liters to gallons class l_to_g { public: ___(2)___ void compute() { val2=val1/3.7854; cout< \} }; //Fahrenheit to Celsius class f_to_c:public convert { ____(3)___ }; void fun(__(4)__) { f.compute(); } void main() { l_to_g lgobj(4); f_to_c fcobj(70); fun(lgobj); fun(fcobj); } 六、定义一个表示三维空间坐标点的 类,并对下列运算符重载。(共9分)1、<<:按 (x,y,z) 格式输出该点坐标(坐标为整型);(5分)2、 > :如果A点到原点的距离大于B点到原点的距离,则A>B为真,否则为假。(4分) 一、填空题(每空1分,共20分)。1.类、对象、继承 2.内联函数、inline、友元、friend 3.私有的(private) 4.public private protected protected private protected 5.this指针、成员函数形参 6.解决二义性问题、virtual 7.虚函数、指针或引用 二、选择题(每题2分,共20分)。 };//类定义结束时未使用语句结束符; void main() { 1.A2.D3.C4.D5.D 6.D7.A8.C9.B10.A 三、改错题(共15分)。 1.x2.writeme(2);出错。原因如下:非常对象可以调用常成员函数和非常成员函数,而常对象只能调用常成员函数。 2.参考答案如下: #include public: //成员默认访问权限为private,不能被类的对象所访问 void SetStation(int Station); int GetStation(); private: int itsStation; TV myTV; myTV.SetStation(9); //私有成员不能被类对象myTV直接访问 myTV.SetStation(10); TV myOtherTV; //使用 默认构造函数建立对象时不需要提供 参数 cout< 四、写出下列程序的输出结果(每题 10分,共20分)。 1. Con. Copy con. Con. Assignment. Copy con. Con. Copy con. Assignment. 2. A's con. B's con. A's con. C's con. C's des. A's des. B's des. A's des. 五、将下列程序补充完整。(每空2 分,共16分) 1.(1) pumpkin(int w) (2) total_weight-=weight; (3) int pumpkin::total_weight=0; (4) pumpkin::total_display(); 说明:(1)源程序中pumkin应为pumpkin; (2)total_weight++;应为 total_weight+=weight; 2. (1) virtual void compute()=0; (2) l_to_g(double i):convert(i) {} (3) public: f_to_c(double i):convert(i) {} void compute() { val2=(val1-32)*5/9; cout< Fahrenheit is \Celsius.\ } (4) convert& f 六、编程(共9分)。 #include Point3D(int xx=0,int yy=0,int zz=0):x(xx),y(yy),z(zz) {} friend bool operator >(const Point3D& A,const Point3D& B); friend ostream& operator <<(ostream& ostr,const Point3D& p); private: int x,y,z; }; bool operator >(const Point3D& A,const Point3D& B) { double disA=sqrt(A.x*A.x+A.y*A.y+A.z*A.z); double disB=sqrt(B.x*B.x+B.y*B.y+B.z*B.z); return (disA>disB)?true:false; } ostream& operator <<(ostream& ostr,const Point3D& p) { ostr<<'('< < return ostr; } void main() { Point3D p1(1),p2(2,3,4); if(p1>p2) cout<<\ p1:\point.\ else cout<<\ p2:\point.\}
正在阅读:
面向对象程序试题604-24
深化中小学教师社会保障制度改革探究12-29
考文垂大学国际人权法授课型研究生申请要求04-28
新型CPE橡胶硫化剂 EataActor PT7508-07
江西省赣州市2016-2017学年高一物理上册第一次月考试卷03-14
申报职称02-15
共产党宣言读书报告01-05
2019年中国海洋测绘行业市场深度调研与市场趋势预测研究报告05-02
云南省2015全国大学生数学建模竞赛获奖名单(公示)05-04
财务管理的基本原理习题12-05
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 试题
- 面向
- 对象
- 程序
- 生活知识题库
- 二年级上册数学教案小熊开店北师大版
- 小学2016―—2016学年度第二学期教学工作计划
- 阿里巴巴集团使命与文化
- 五年级语文上习作2
- 华南理工网络教育网 工程力学 模拟试题
- 数控机床考试题及答案
- 优秀论文2
- 小型水库除险加固工程验收应提供的资料目录
- “十对照十检查十反思”方案第三稿(定稿)
- 大众舆论关注司法审判弊大于利(2)
- 项目前期工作清单
- 井架物料提升机施工方案1
- 厦门市土地利用总体规划(2006~2020年) - 图文
- 成昆铁路峨眉至米易段 - 图文
- 《专业技术职务任职资格评审表》填写规范
- 地质地貌实习报告 - 图文
- 中华历史五千年--人文始祖
- 《大学物理学》(袁艳红主编)下册课后习题答案
- ISO9001-2018质量管理体系最新版标准