2015-2016学年第2学期西南交大面向对象程序设计主观题作业

更新时间:2023-09-18 20:49:01 阅读量: 幼儿教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一次作业

二、主观题(共9道小题)

22. 在C++中,当用class定义一个类时,数据成员和成员函数的默认访问权限是 【30】 ,而struct中成员的默认访问权限是【31】

参考答案:30) 私有(或者private) 31)公有(或者public)

23. 编写程序声明类Student,有数据成员姓名、学号、成绩,定义函数成员用于返回各数据成员信息,定义对象数组,实现10个学生的分数录入及平均分计算。 参考答案: #include class Student {public:

float getScore(); private:

char name[10]; long num; float score; };

类的成员函数的定义和主函数部分自己完成

24. 类的继承是面向对象程序设计中的重要机制,继承方式有三种,分别是: 【1】 、 【2】 和 【3】 。

参考答案:1)公有继承2)私有继承 3)受保护继承

25. 带有纯虚函数的类是 【4】 。

参考答案:4) 抽象类

26. 在C++程序中,动态建立和删除堆对象是采用 【5】 和 【6】 这两个运算符来实现的。

参考答案:5) new 6) delete

27. 假定AB为一个类, 则执行\语句时, 系统自动调用该类构造函数的次数为 【7】 . 参考答案:7) 9

28. 当一个类对象被创建时,系统将自动调用该类的构造函数,而 【8】函数是在对象的生存期即将结束的时刻由系统自动调用的。 参考答案:8) 析构

29. 类中具有相似功能的不同函数使用同一个名称来实现,这称为 【9】 。面向对象的多态性可以分为四类,分别是:参数多态、强制多态、 【10】 和 【11】 。

参考答案:9) 多态 10) 重载 11)包含

30. C++程序也需要有主函数的入口,必须而且只能是一个名为的函数【12】 参考答案:12)main

第二次作业

二、主观题(共15道小题)

1

9.

参考答案:13) -b-sqrt(b*b-4*a*c)

10.

参考答案:14) fabs(b*b-a*c) 11.

参考答案:15) 1 16) 7 17) 3 18) 0 19) 8 20) 6

12.

参考答案:21) 10 22) 3 23) 10 24) 9 25) 1 13. 面向对象的程序设计有四大特征,是【26】、【27】、【28】、【29】 。 参考答案:26)-29)抽象 封装 继承 多态 (答案顺序可交换) 14. #include

int area(int l=5,int w=5) {

return l*w; }

void main() {

cout<< area()<;

cout<< area(10,2)<; cout<< area(2)<; }

参考答案: 结果: 25 20 10

考察知识点:带默认形参值的函数。默认形参值必须按照从右向左顺序定义。调用时,实参按从左向右顺序初始化形参。

2

15. 参考答案: 运行结果: 0:0:0 11:11:12

3

16.

参考答案: 运行结果: A:

Object id:1 B:

Object id:2 17.

4

参考答案: 结果:

constructing B1 3 constructing B2 2 constructing B3 * constructing B1 4 constructing B2 1 constructing B3 *

5

18.

参考答案: 运行结果: 5 6

考察知识点:参数的传递,本题传递了实参的值 19. 下面程序的运行结果是 。 #include

int func1(int x,int y,int *cp,int *dp) {

*cp=x*x+y*y; *dp=x*x-y*y; }

void main( ) {

int a=4,b=3,c=5,d=6; func1(a,b,&c,&d); cout<<> }

参考答案: 运行结果: 25 7

考察知识点:参数的传递,本题传递了实参的地址 20. 该程序的输出是 #include “stdio.h” void main() {

char a[40]=”goodnighta”,*p;

for(p=a;*p!=’a’;p++) putchar(*p-32); }

参考答案: 运行结果:

6

GOODNIGHT

考察知识点:字符串的处理——大小写字母的转换

21.

参考答案: 运行结果: member of D1 member of B1 member of B2 1 2 3

7

分析:内存中nv有三个拷贝,fun也有三个拷贝。

22. 考察知识点:静态局部变量 #include

int f(int); int main() { int i;

for(i=1;i<=5;i++) cout<<<'';&NBSP;&NBSP; return0; }

int f(int i)

{ static int k=1;

k + = 1; return k; }

参考答案: 运行结果: 2 3 4 5 6

23. 下面程序的运行结果是 。 #include void main() {

for(i=1;i<10;i++) {

if(i%3=0) continue; cout<; } }

参考答案: 运行结果: 1 2 4 5 7 8

考察知识点:continue的使用

第三次作业

一、主观题(共5道小题)

1. 声明一个rectangle和circle类,rectangle和circle类都有getArea()函数用于计算矩形(retangle)对象和圆形(circle)对象的面积,在main中初始化一个矩形类对象和一个圆形类对象并利用getArea函数求出面积。 参考答案: #include class circle {public:

circle(float r) {radius=r;}

8

float getArea(); private:

float radius; };

float circle::getArea()

{ return 3.14*radius*radius;} class rectangle {public:

rectangle(float l1,float w1) {l=l1;w=w1} float getArea(); private: float l,w; };

float rectangle::getArea() { return l*w;} void main()

{circle circle1(3); rectangle rec1(3,5); cout<< /> cout<< /> }

2. 定义Boat与Car两个类,二者都有weight属性,定义二者的一个友元函数totalWeight(),计算二者的重量和。

9

参考答案:

3. 定义point类来描述平面上的点,包含私有数据成员x和y。定义友元函数Distance计算两点距离 参考答案:

10

4. 定义复数类,重载+,*为复数类的成员函数,实现复数类对象的+,*运算。

参考答案:

11

5. 编写程序声明类Point,有数据成员X,Y,为其定义友元函数实现重载+。

12

参考答案:

第四次作业

一、主观题(共2道小题)

1. 编写程序声明类Student,有数据成员姓名、学号、成绩,定义函数成员用于返回各数据成员信息,定义对象数组,实现10个学生的分数录入及平均分计算。 参考答案: #include class Student {public:

float getScore(); private:

char name[10]; long num; float score; };

13

类的成员函数的定义和主函数部分自己完成

2. 声明一个基类Shape,在此基础上派生出Rectangle和Circle,二者都有GetArea()函数计算对象面积。 参考答案:class Shape{ public:

float getArea() { }; };

class circle:public Shape {public:

circle(float r) {radius=r;}

float getArea() { return 3.14*radius*radius;} private:

float radius; };

class rectangle: public Shape {public:

rectangle(float l1,float w1) {l=l1;w=w1} float getArea(); { return l*w;} private:

float l,w; };

void main() {

circle circle1(3); rectangle rec1(3,5); cout< cout< }

14

本文来源:https://www.bwwdw.com/article/f18h.html

Top