面向对象程序设计期末复习题及答案Word文档格式.docx

上传人:b****4 文档编号:17870912 上传时间:2022-12-11 格式:DOCX 页数:231 大小:136.41KB
下载 相关 举报
面向对象程序设计期末复习题及答案Word文档格式.docx_第1页
第1页 / 共231页
面向对象程序设计期末复习题及答案Word文档格式.docx_第2页
第2页 / 共231页
面向对象程序设计期末复习题及答案Word文档格式.docx_第3页
第3页 / 共231页
面向对象程序设计期末复习题及答案Word文档格式.docx_第4页
第4页 / 共231页
面向对象程序设计期末复习题及答案Word文档格式.docx_第5页
第5页 / 共231页
点击查看更多>>
下载资源
资源描述

面向对象程序设计期末复习题及答案Word文档格式.docx

《面向对象程序设计期末复习题及答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计期末复习题及答案Word文档格式.docx(231页珍藏版)》请在冰豆网上搜索。

面向对象程序设计期末复习题及答案Word文档格式.docx

iostream.h>

classSample

{

intx,y;

public:

Sample(){x=y=0;

}

Sample(inta,intb){x=a;

y=b;

~Sample()

if(x==y)

cout<

<

“x=y”<

endl;

else

“x!

=y”<

voiddisp()

“x=”<

x<

“,y”=<

y<

};

voidmain()

Samples1,s2(2,3);

s1.disp();

s2.disp();

解:

x=0,y=0

x=2,y=3

x!

=y

x=y

2.分析以下程序的执行结果

intadd(intx,inty)

returnx+y;

intadd(intx,inty,intz)

returnx+y+z;

inta=4,b=6,c=10;

add(a,b)<

<

add(a,b,c)<

10,203.分析以下程序执行结果

doubleadd(doublex,doubley)

inta=4,b=6;

doublec=2.6,d=7.4;

"

"

add(c,d)<

10,10

4.分析以下程序执行的结果

Sample(){x=y=0;

Sample(inta,intb){x=a;

x="

y="

Samples1,s2(1,2),s3(10,20);

Sample*pa[3]={&

s1,&

s2,&

s3};

for(inti=0;

i<

3;

i++)

pa[i]->

disp();

x=1,y=2

x=10,y=205.分析以下程序的执行结果:

classbase

intn;

base(){};

base(inta)

cout<

"

constructingbaseclass"

<

endl;

n=a;

cout<

n="

n<

~base(){cout<

destructingbaseclass"

}

classsubs:

publicbase

intm;

subs(inta,intb):

base(a)

constructingsubclass"

m=b;

m="

m<

~subs(){cout<

destructingsubclass"

voidmain()

subss(1,2);

}

constructingbaseclass

n=1

constructingsubclass

m=2

destructingsubclass

destructingbaseclass

6.分析以下程序的执行结果:

#include<

protected:

intx;

Sample(){x=0;

Sample(intval){x=val;

voidoperator++(){x++;

classDerived:

publicSample

inty;

Derived():

Sample(){y=0;

Derived(intval1,intval2):

Sample(val1){y=val2;

voidoperator--(){x--;

y--;

cout<

x<

y<

Derivedd(3,5);

d.disp();

d++;

d.disp();

d--;

x=3,y=5

x=4,y=5

7分析以下程序执行结果:

classA

A(char*s){cout<

s<

~A(){}

classB:

publicA

B(char*sl,char*s2):

A(sl)

s2<

classC:

C(char*sl,char*s2):

classD:

publicB,publicC

D(char*sl,char*s2,char*s3,char*s4):

B(sl,s2),C(sl,s3)

s4<

Dd("

classA"

classB"

classC"

classD"

);

classB

classC

classD补充例题

1.分析以下程序的执行结果

template<

classT>

Tmax(Tx,Ty)

{return(x>

y?

x:

y);

{cout<

max(2,5)<

“,”<

max(3.5,2.8)<

解答:

5,3.52.分析以下程序的执行结果

inta[]={10,20,30,40},*pa=a;

int*&

pb=pa;

pb++;

*pa<

输出为:

203.分析以下程序的执行结果

Tabs(Tx)

0?

-x);

abs(-3)<

abs(-2.6)<

输出为:

3,2.6

4.分析以下程序的执行结果

charc1,c2;

Sample(chara){c2=(c1=a)-32;

c1<

“转换为”<

c2<

Samplea('

a'

),b('

b'

a.disp();

b.disp();

a转换为A

b转换为B5.分析以下程序的执行结果

inta;

int&

b=a;

//变量引用

b=10;

“a=”<

a<

a=106.分析以下程序的执行结果

Sample(){};

Sample(inta){x=a;

Sample(Sample&

a){x=a.x+++10;

voiddisp(){cout<

{Samples1

(2),s2(s1);

x=3//++运算的结果

x=12//2+10

7.分析以下程序的执行结果

a){x=a.x+1;

x=3。

程序编制题例题【综合分析题】

例1,写出一个梯形类,操作有求面积和周长

分析:

由于要求梯形的面积和周长,那就要为梯形提供上底,下底,高,左边长,右边长等属性。

因此,梯形类描述为:

Classechelon

{

Inttop,bottom,height,llength,rlength;

Public:

Echelon(){。

}//构造函数

IntArea(){。

}//求面积

IntPerimeter(){。

}//求周长

}2.设计一个圆类circle和一个桌子类table,另设计一个圆桌类roundtable,它是从前两个类派生的,要求输出一个圆桌的高度、面积和颜色等数据。

解:

circle类包含私有数据成员radius和求圆面积的成员函数getarea();

table类包含私有数据成员height和返回高度的成员函数getheight()。

roundtable类继承所有上述类的数据成员和成员函数,添加了私有数据成员color和相应的成员函数。

本题程序如下:

string.h>

classcircle

doubleradius;

circle(doubler){radius=r;

doublegetarea(){returnradius*radius*3.14;

classtable

doubleheight;

table(doubleh){height=h;

doublegetheight(){returnheight;

classroundtable:

publictable,publiccircle

char*color;

roundtable(doubleh,doubler,charc[]):

circle(r),table(h)

color=newchar[strlen(c)+1];

strcpy(color,c);

char*getcolor(){returncolor;

roundtablert(0.8,1.2,黑色);

圆桌属性数据:

高度:

rt.getheight()<

米<

面积:

rt.getarea()<

平方米<

颜色:

rt.getcolor()<

3.编写程序,定义一个类test,其成员数据及函数要求如下:

(1)私有数据成员intdata

(2)构造函数两个test()及test(intd),前者将(1)中的数据成员data值设为0;

后者将(1)中的数据成员data设定为指定值d

(3)成员函数intsetdate()能在键盘读入一个数值,然后将该数值赋给data4.定义一个抽象类tea代表茶叶,它有1个double类型的保护数据成员cost代表种植成本,它还有一个纯虚函数price用来计算售价:

doubleprice(void)函数返回值为茶叶的售价。

由tea派生出具体类blacktea(红茶),要求如下:

(1)类中定义保护成员数据doubleo_cost,表示红茶的经营成本

(2)定义构造函数blacktea(doublebtc,doublebto_c),将cost和o_cost,数据成员设定为指定值

(3)重载price计算出blacktea的售价。

(假设:

blacktea售价=(cost+o_cost)*1.2)

5.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。

设计一个学生类Stud,除了包括no(学号)、name(姓名)和deg(成绩)数据成员外,有两个静态变量sum和num,分别存放总分和人数,另有两个普通成员函数setdata()和disp(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。

在main()函数中定义了一个对象数组用于存储输入的学生数据。

stdio.h>

#defineN3

classStud

intno;

charname[10];

intdeg;

staticintnum;

staticintsum;

voidsetdata(intn,charna[],intd)

no=n;

deg=d;

strcpy(name,na);

sum+=d;

num++;

staticdoubleavg()

returnsum/num;

printf(%-5d%-8s%3d\n,no,name,deg);

intStud:

:

sum=0;

num=0;

Studst[N];

inti,n,d;

charna[10];

for(i=0;

N;

printf(输入学号姓名成绩:

scanf(%d%s%d,&

n,na,&

d);

st[i].setdata(n,na,d);

printf(输出数据\n);

printf(学号姓名成绩\n);

st[i].disp();

printf(平均分=%g\n\n,Stud:

avg());

本程序的执行结果如下:

输入学号姓名成绩:

1stud189

2stud278

3stud84

输出数据

学号姓名成绩

1stud189

2stud278

3stud384

平均分=83

6.请编写一个程序,以实现在屏幕上显示如下的乘法表。

1)1

2)24

3)369

4)481216

5)510152025

6)61218243036

7)7142128354249

8)816243240485664

9)918273645546372817.P463-P464函数模板

需要掌握的内容

面向对象程序设计的三大特征

类和对象

类:

C++的一种数据类型,使用类的变量则称为对象。

C++的类是对象的抽象,是进行封装和数据隐藏的工具,包括:

数据成员和成员函数。

一个类可以声明多个对象,对象之间代码共享,数据独立。

C++类的说明

public:

可被本类以外的函数访问,是类与外部的接口;

private:

只能被该类成员函数和友元函数存取和调用;

protected:

可被本类和本类的派生类的成员函数访问,用于类的继承。

成员函数

默认时在类中定义的项都是私有的,类成员函数的外部实现:

使用对象名引用对象的公有成员函数。

方法如下:

对象名.成员函数名(参数列表)

内联函数的概念;

定义内联函数的两种格式

1)函数体放在类体内

2)函数体放在类体外,使用inline关键字

构造函数

构造函数的作用是在对象被创建时为对象分配内存空间,对类的数据成员初始化并执行对象的其他内部管理操作。

构造函数与类同名

构造函数可接收参数但不能有返回值,允许重载。

当创建一个类的对象时,系统会自动调用类的构造函数。

若未给类定义构造函数,则编译系统将为该类生成一个默认的构造函数,它没有参数,只简单地把对象中的每个实例变量初始化为0。

析构函数一、C++语言概述

  1.了解C++语言的基本符号。

  2.了解C++语言的词汇(保留字、标识符、常量、运算符、标点符号等)。

  3.掌握C++程序的基本框架(结构程序设计框架、面向对象程序设计框架等)。

  4.能够使用VisualC++6.0集成开发环境编辑、编译、运行与调度程序。

 

二、数据类型、表达式和基本运算

  1.掌握C++数据类型(基本类型,指针类型)及其定义方法。

  2.了解C++的常量定义(整型常量,字符常量,逻辑常量,实型常量,地址常量,符号常量)。

  3.掌握变量的定义与使用方法(变量的定义及初始化,全局变量,局部变量)。

  4.掌握C++运算符的种类、运算优先级和结合性。

  5.熟练掌握C++表达式类型及求值规则(赋值运算,算术运算符和算术表达式,关系运算符和关系表达式,逻辑运算符和逻辑表达式,条件运算,指针运算,逗号表达式)。

三、C++的基本语句

  1.掌握C++的基本语句,例如赋值语句、表达式语句、复合语句、输入、输出语句和空格语句等。

  2.用if语句实现分支结构。

  3.用switch语句实现多分支选择结构。

  4.用for语句实现循环结构。

  5.用while语句实现循环结构。

  6.用do…while语句实现循环结构。

  7.转向语句(goto,continue,break和return)。

  8.掌握分支语句和循环语句的各种嵌套使用。

四、数组、指针与引用

  1.掌握一维数组的定义、初始化和访问,了解多维数组的定义、初始化和访问。

  2.了解字符串与字符数组。

  3.熟练掌握常用字符串函数(strlen,strcpy,streat,strcmp,strstr等)。

  4.指针与指针变量的概念,指针与地址运算符,指针与数组。

  5.引用的基本概念,引用的定义与使用。

注意事项:

搞清楚指针与地址运算符的区别,指针与引用的区别。

五、掌握函数的有关使用

  1.函数的定义方法和调用方法。

  2.函数的类型和返回值。

  3.形式参数与实在参数,参数值的传递。

  4.变量的作用域、生存周期和存储类别(自动、静态、寄存器,外部)。

  5.递归函数。

  6.内联函数。

  7.带有缺省参数值的函数。

  

C++中,函数之间传递参数有传值和传地址两种传递方式。

六、熟练掌握类与对象的相关知识

  1.类的定义方式、数据成员、成员函数及访问权限(public,private,protected)。

  2.对象和对象指针的定义与使用。

  3.构造函数与析构函数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 设计艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1