四川大学C++面向对象程序设计模拟试题2
更新时间:2024-04-13 05:12:01 阅读量: 综合文库 文档下载
C++面向对象程序设计模拟试题二
一、单项选择题
1.说明内联函数的关键字是(A)。
A)inline B)virtual C)define D)static 2.假定CAb为一个类,则执行CAb oX;语句时将自动调用该类的(B)
A)有参构造函数 B)无参构造函数 C)拷贝构造函数 D)赋值重载函数 3.cin是某个类的标准对象的引用,该类是(B)。 A)ostream B)istream C)stdout D)stdin 4.下面的哪个保留字不能作为函数的返回类型?(C)
A)void B)int C)template D)long 5.派生类的成员函数不能访问基类的(C)。
A)保护成员 B)公有成员 C)私有成员 D)前面各选项都正确 6.在语句“cout << data;”中,cout是(C)。
A)C++的关键字 B)类名 C)对象名 D)函数名 7.编译时多态性使用什么获得?(A)
A)重载函数 B)继承 C)虚函数 D)B和C 8.拷贝构造函数的参数通常是(C)。 A)无特殊要求 B. 指向对象的指针 C)本类对象的常引用 D)对象 9.C++有几种联编?(B) A)1种 B)2种 C)3种 D)4种 10.基类和派生类可以分别称为(B)。 A)“大类”和“小类” B)“父类”和“子类” C)“小类”和“大类” D)“子类”和“父类” 二、填空题
1.设函数max是由函数模板实现的,并且max(3.5, 5)和max(3, 5)都是正确的函数调用,则此函数模板具有(2)个类型参数。
2.在C++中,函数重载与虚函数帮助实现了类的(多态)性。 3.由static修饰的数据成员为该类的所有对象(共享)。
4.重载函数一般在参数类型或参数个数上不同,但(函数名)相同。
5.使用new建立的动态对象在不用时应该用(delete)释放所占用的空间。
三、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。 1.阅读下面程序,写出输出结果。 #include
class Point {
public: Point(int a = 0, int b = 0):x(a), y(b) {} int GetX() const { return x; } int GetY() const { return y; } void SetX(int a) { x = a; } void SetY(int a) { y = a; }
private: int x; int y; };
int main() { Point u; const Point v(6, 8); cout << u.GetX() << endl; u.SetX(16); cout << u.GetX() << endl; u.SetY(18); cout << u.GetY() << endl; cout << v.GetX() << endl; cout << v.GetY() << endl; return 0; }
上面程序的输出结果为:0 16 18 6 8
2.阅读下面程序,写出输出结果。 #include
template
public: Test(Type a[], int iSize):elem(a) { size = iSize; } void Print() const { for (int i = 0; i < size; i++) cout << elem[i] << \
private:
\ Type *elem; int size; };
int main() { int a[] = {1, 0, 8}; double b[] = {1.6, 1.8}; Test
上面程序的输出结果为:1 0 8 1.6 1.8
3.阅读下面程序,写出输出结果。 #include
class Goods {
public: Goods(int w): weight(w) { totalWeight = totalWeight + w; } Goods(const Goods &g) { weight = g.weight; totalWeight = totalWeight + weight; } ~Goods() { totalWeight = totalWeight - weight; } void Print() const; static int GetTotalWeight() { return totalWeight; }
private: int weight; static int totalWeight; };
int Goods::totalWeight = 0;
void Goods::Print() const { cout << this->weight << \ \ \}
int main() { Goods g1(6); g1.Print(); Goods g2(g1); g2.Print(); cout << Goods::GetTotalWeight(); cout << endl; return 0; }
上面程序的输出结果为:6 6 6 12 12
4.阅读下面程序,写出输出结果。 #include
template
public: Test(Type a = 0, Type b = 0, Type c = 0):z(c) { void Print() { cout << x << endl; cout << y << endl; } void Print() const { cout << z << endl; }
private: Type x, y; const Type z;
x = a; y = b; } };
int main() { Test
上面程序的输出结果为:0 0 1 9 1.8
5.阅读下面程序,写出输出结果。 #include
template
Type Max(const Type &a, const Type &b) { if (a < b) return b; else return a; }
template
Type Min(const Type &a, const Type &b) { if (a < b) return a; else return b; }
int main() { double x = 5.38, y = 6.09; cout << Max(x, y) << \ cout << Min(x, y) << \ return 0; }
上面程序的输出结果为:6.09 6 5.38 5
6.阅读下面程序,写出输出结果。 #include
class A {
public: A() { cout << \ ~A() { cout << \ };
class B: public A {
public: B() { cout << \ ~B() { cout << \ };
int main(void) { B obj; return 0; }
上面程序的输出结果为:A B ~B ~A
四、完成程序填题(本大题共4个小题,每小题3分,共12分)下面程序都留有空白,请将程序补充完整。
1.将如下程序补充完整。 #include
class A {
private: int n;
public: A(int n) { [1] this->n或A::n = n; } // 将数据成员n初始化为形参n void Show() const { cout << n << endl; } };
int main() { A i = 8; i.Show(); return 0; }
2.将如下程序补充完整。
#include
class A {
private: int a;
public: A(int m): a(m) {} void Show() const { cout << a << endl; } };
class B: A {
public: B(int m): [2] A(m) {} void Show() const { A::Show(); } };
int main() { B obj(8); obj.Show(); return 0; }
3.将如下程序补充完整。
#include
class Test
// 将数据成员a初始化为m
{
private: static int num;
public: Test() { num++; } ~Test() { num--; } static void ShowObjectNum() { cout << num << endl; } };
[3] int Test::num = 0; // 静态数据成员的初始化为0
int main(void) { Test::ShowObjectNum(); Test obj; Test::ShowObjectNum(); return 0; }
4.将如下程序补充完整。 #include
class Integer {
private: int i;
public: Integer(int x = 0): i(x) { } [4] operator int() { return i; }// 类类型转换函数,将类Integer转换为基本类型int };
int main() { Integer a, b(18) ; cout << a << endl; cout << int(b) << endl; return 0;
}
五、编程题(本大题共2小题,第1小题12分,第2小题16分,共28分)
1.编写一个函数模板,用于求数组中各元素之和,并编写测试程序进行测试。 函数模板声明如下: template
参考程序:
#include
int main() { int a[] = {1, 2, 3}; double b[] = {1.5, 2.8, 8.9, 8}; cout << Sum(a, 3) << endl; cout << Sum(b, 4) << endl; return 0; }
2.定义一个抽象类Shape,它有一个纯虚函数GetPerimeter();派生出四边型类Rectangle和圆类Circle,在派生类中重载函数GetPerimeter(),用于求图形的周长,编写测试程序进行测试。
参考程序:
#include
public: virtual double GetPerimeter() const = 0; };
class Rectangle:public Shape {
public: Rectangle(double w, double h) { width = w; height = h; } double GetPerimeter() const { return 2 * (width + height); } private: double width, height; };
class Circle:public Shape {
public: Circle(double r) { radius = r; } double GetPerimeter() const { return 3.1415926 * radius * radius; }
private: double radius; };
int main() { Rectangle oRectangle(2, 3); cout << oRectangle.GetPerimeter() << endl; Circle oCircle(10); cout << oCircle.GetPerimeter() << endl; return 0; }
正在阅读:
四川大学C++面向对象程序设计模拟试题204-13
我喜欢的书中人物作文5篇02-05
塑料成型工艺与模具设计实验指导书04-28
工程总承包合同示范文本(征求意见稿)03-19
初中物理公式大全(冲刺必记点)04-24
某住宅小区建设项目的环评报告书06-15
制度宣贯实施方案04-07
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 四川大学
- C++
- 模拟试题
- 程序设计
- 面向
- 对象
- 大学生心理健康
- 《我对谁负责谁对我负责》教案1
- 医学类有机化学习题参考答案
- 新版外研版7年级下册课时作业 Module 10 A holiday journey Unit
- 中级财务管理(2014)第六章 投资管理 单元测试下载版
- 土壤微生物对植物所需各大中微量元素的转化作用
- 2018年气雾罐市场发展前景分析报告目录
- 灵通小学新课程改革中长期规划
- 上海牛津英语7BU3综合练习
- 泵及泵站思考题与习题
- 我国遭受反倾销措施现状及对策分析
- 2015武汉大学《算法设计与分析》期中试卷
- 2012高考语文总复习 考场作文资料 凡高素材
- 素质与思想品德教育大作业要求
- 水土资源平衡分析
- 系统解剖学考点、重点整理
- 2019届 一轮复习通用版城市化学案+Word版含解析 - 图文
- 毕业论文-网络文学的快餐式现象
- 全国2013年01月自学考试00159《高级财务会计》历年真题及参考答
- 建筑CAD试卷A与答案