面向对象程序试题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
精彩的迎面接力赛作文600字07-10
2012苏州大学仪器分析期末考试试题10-17
经典面试问题思路 - 面试技巧 - 模板10-07
母爱的奇迹作文500字06-28
我眼里的秋天作文300字06-19
雨中那一缕阳光作文600字06-22
感受最深的一件事作文500字06-30
阅读倾听心灵的声音作文700字07-11
美丽的花坛作文500字07-16
- 教师招聘考试真题(中学数学科目)及答案 - 图文
- 读《光辉的旗帜》有感
- 学生会副部长竞选讲稿
- 江苏省石油化工码头企业安全生产标准化考评细则 - 图文
- 2016尔雅 民俗资源与旅游 期末考试答案 整理
- 九年级华师大《二次函数》全章教案
- 生化作业6
- 串口资料
- 2014北大附中初三数学二模复习策略
- 曼尼希反应
- 努肉孜节2012
- 卫生部关于印发《关于卫生监督体制改革实 施的若干意见》和《关
- 《生活中的线条》教学设计
- 广告学概论讲义 - 图文
- VS1真空断路器原理图及两种VS1真空断路器的介绍
- 晨读倡议书 - 致全国青年朋友
- 建筑物理复习(建筑热工学) - 图文
- 高级消防与精通急救题库 doc
- YJK软件的优化设计
- 小学生必背古诗100首(带拼音)
- 试题
- 面向
- 对象
- 程序
- 生活知识题库
- 二年级上册数学教案小熊开店北师大版
- 小学2016―—2016学年度第二学期教学工作计划
- 阿里巴巴集团使命与文化
- 五年级语文上习作2
- 华南理工网络教育网 工程力学 模拟试题
- 数控机床考试题及答案
- 优秀论文2
- 小型水库除险加固工程验收应提供的资料目录
- “十对照十检查十反思”方案第三稿(定稿)
- 大众舆论关注司法审判弊大于利(2)
- 项目前期工作清单
- 井架物料提升机施工方案1
- 厦门市土地利用总体规划(2006~2020年) - 图文
- 成昆铁路峨眉至米易段 - 图文
- 《专业技术职务任职资格评审表》填写规范
- 地质地貌实习报告 - 图文
- 中华历史五千年--人文始祖
- 《大学物理学》(袁艳红主编)下册课后习题答案
- ISO9001-2018质量管理体系最新版标准