浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx

上传人:b****1 文档编号:326489 上传时间:2023-04-28 格式:DOCX 页数:66 大小:30.44KB
下载 相关 举报
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第1页
第1页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第2页
第2页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第3页
第3页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第4页
第4页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第5页
第5页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第6页
第6页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第7页
第7页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第8页
第8页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第9页
第9页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第10页
第10页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第11页
第11页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第12页
第12页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第13页
第13页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第14页
第14页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第15页
第15页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第16页
第16页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第17页
第17页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第18页
第18页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第19页
第19页 / 共66页
浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx_第20页
第20页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx

《浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx(66页珍藏版)》请在冰点文库上搜索。

浙大远程面向对象程序设计的离线作业答案剖析Word格式文档下载.docx

B.int*p=newint[10];

C.int*p=newint;

D.int*p=newint[40](0);

【2.7】假设已经有定义“constchar*constname="

chen"

”下面的语句中正确的是(D)。

A.name[3]='

a'

B.name="

lin"

C.name=newchar[5];

D.cout<

name[3];

【2.8】假设已经有定义“char*constname="

”下面的语句中正确的是(A)。

q'

B.name="

D.name=newchar('

);

【2.9】假设已经有定义“constchar*name="

”下面的语句中错误的是(A)。

【2.10】重载函数在调用时选择的依据中,(B)是错误的。

A.函数名字B.函数的返回类型

C.参数个数D.参数的类型

【2.11】在(A)情况下适宜采用内联函数。

A.函数代码小,频繁调用B.函数代码多,频繁调用

C.函数体含有递归语句D.函数体含有循环语句

【2.12】下列描述中,(C)是错误的。

A.内联函数主要解决程序的运行效率问题

B.内联函数的定义必须出现在内联函数第一次被调用之前

C.内联函数中可以包括各种语句

D.对内联函数不可以进行异常接口声明

【2.13】在C++中,关于下列设置默认参数值的描述中,(B)是正确的。

A.不允许设置默认参数值

B.在指定了默认值的参数右边,不能出现没有指定默认值的参数

C.只能在函数的定义性声明中指定参数的默认值

D.设置默认参数值时,必须全部都设置

【2.14】下面的类型声明中正确是(D)。

A.int&

a[4];

B.int&

*p;

C.int&

&

q;

D.inti,*p=&

i;

【2.15】下面有关重载函数的说法中正确的是(C)。

A.重载函数必须具有不同的返回值类型

B.重载函数形参个数必须不同

C.重载函数必须有不同的形参列表

D.重载函数名可以不同

【2.16】关于new运算符的下列描述中,(D)是错误的。

A,它可以用来动态创建对象和对象数组

B.使用它创建的对象或对象数组可以使用运算符delete删除

C.使用它创建对象时要调用构造函数

D.使用它创建对象数组时必须指定初始值

【2.17】关于delete运算符的下列描述中,(C)是错误的。

A.它必须用于new返回的指针

B.使用它删除对象时要调用析构函数

C.对一个指针可以使用多次该运算符

D.指针名前只有一对方括号符号,不管所删除数组的维数

【2.18】写出下列程序的运行结果。

#include<

inti=15;

{inti;

i=100;

:

:

i=i+1;

i<

endl;

101

【2.19】写出下列程序的运行结果。

#include<

voidf(int&

m,intn)

{inttemp;

temp=m;

m=n;

n=temp;

{inta=5,b=10;

f(a,b);

a<

"

b<

10,10

【2.20】分析下面程序的输出结果。

int&

f(int&

i)

{i+=10;

returni;

{intk=0;

m=f(k);

cout<

k<

m=20;

return0;

10

20

【2.21】举例说明可以使用const替代#define以消除#define的不安全性。

【2.22】编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项,并存储到动态分配的空间中。

{

int*p=newint[20];

*p=1;

*(p+1)=1;

*p<

”\t<

*(p+1)<

”\t”;

p=p+2;

for(inti=3;

=20;

i++)

{

*p=*(p-1)+*p(p-2);

Cout<

If(i%5==0)cout<

P++;

}

【2.23】编写一个C++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。

重载sroot()3次,让它返回整数、长整数与双精度数的二次方根(计算二次方根时,可以使用标准库函数sqrt())

cmath>

Usingnamespacestd;

Doublesroot(inti)

{Returnsqrt(i);

Doublesroot(longl)

{returnsqrt(l);

Doublesroot(doubled)

{returnsqrt(d);

Intmain()

Inti=12;

Longl=1234;

Doubled=12.34;

Cout<

”i的二次方根是:

”<

sroot(i)<

”l的二次方根是:

sroot(l)<

”d的二次方根是:

sroot(d)<

Return0;

【2.24】编写一个C++风格的程序,解决百钱问题:

将一元人民币兑换成1、2、5分的硬币,有多少种换法?

IntI,j,sum=0;

For(i=0;

For(j=0;

j<

=50;

j++)

If(100-5*I-2*j>

=0)

Sum++;

100-5*I–2*j<

”\t”<

”sumis“<

sum<

【2.25】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。

要求使用变量的引用。

{voidchange(int&

int&

Inta,b;

Cin>

If(a>

b)change(a,b);

”“<

Voidchange(int&

a1,int&

b1)

{inttemp;

Temp=a1;

A1=b1;

B1=temp;

第三章:

【3.7】在下面有关对构造函数的描述中,正确的是(B)。

A.构造函数可以带有返回值

B.构造函数的名字与类名完全相同

C.构造函数必须带有参数

D.构造函数必须定义,不能默认

【3.8】在声明类时,下面的说法正确的是(C)。

A.可以在类的声明中给数据成员赋初值

B.数据成员的数据类型可以是register

C.private、public、protected可以按任意顺序出现

D.没有用private、public、protected定义的数据成员是公有成员

【3.9】在下面有关析构函数特征的描述中,正确的是(C)。

A.一个类中可以定义多个析构函数

B.析构函数名与类名完全相同

C.析构函数不能指定返回类型

D.析构函数可以有一个或多个参数

【3.10】构造函数是在(B)时被执行的。

A.程序编译B.创建对象

C.创建类D.程序装人内存

【3.11】在下面有关静态成员函数的描述中,正确的是(B)。

A.在静态成员函数中可以使用this指针

B.在建立对象前,就可以为静态数据成员赋值

C.静态成员函数在类外定义时,要用static前缀

D.静态成员函数只能在类外定义

【3.12】在下面有关友元函数的描述中,正确的说法是〔A)。

A.友元函数是独立于当前类的外部函数

B.一个友元函数不能同时定义为两个类的友元函数

C.友元函数必须在类的外部定义

D.在外部定义友元函数时,必须加关键字friend

【3.13】友元的作用之一是(A)。

A.提高程序的运行效率B.加强类的封装性

C.实现数据的隐藏性D.增加成员函数的种类

【3.14】以下程序运行的结果是(B)。

classB{

public:

B(){}

B(inti,intj)

{x=i;

y=j;

voidprintb()

{cout<

x<

"

y<

private:

intx,y;

};

classA{

public:

A()

{}

A(intI,intj);

voidprinta();

private:

Bc;

A:

A(inti,intj):

c(i,j)

{}

voidA:

printa()

{c.printb();

{Aa(7,8);

a.printa();

A.8,9B.7,8C.5,6D.9,10

【3.15】以下程序的运行结果是(A)。

voidset(inti,intj)

intget_y()

{returny;

classbox{

voidset(intl,intw,ints,intp)

{length=1;

width=w;

label.set(s,p);

intget_area()

{returnlength*width;

intlength,width;

Alabel;

{boxb;

b.set(4,6,1,20);

b.get_area()<

A.24B.4C.20D.6

【3.16】以下程序的运行结果是(B)。

classSample{

Sample(inti,intj)

y=j;

voiddisp()

disp1"

voiddisp()const

disp2"

{constSamplea(1,2);

a.disp();

A.disp1B.disp2C.disp1disp2D.程序编译出错

【3.17】以下程序的运行结果是(B)。

classR{

R(intr1,intr2)

{R1=r1;

R2=r2;

voidprint();

voidprint()const;

intR1,R2;

voidR:

print()

{cout<

R1<

R2<

print()const

{Ra(6,8);

constRb(56,88);

b.print();

A.6,8B.56,88C.0,0D.8,6

【3.18】写出下面程序的运行结果。

classtoy

{public:

toy(intq,intp)

{quan=q;

price=p;

intget_quan()

{returnquan;

intget_price()

{returnprice;

intquan,price;

{toyop[3][2]={0,0

toy(10,20),toy(30,48),

toy(50,68),toy(70,80),

toy(90,16),toy(11,120),

for(inti=0;

3;

op[i][0].get_quan()<

op[i][0].get_price()<

\n"

op[i][1].get_quan()<

op[i][1].get_price()<

10,20

30,48

50,68

70,80

90,16

11,120

【3.19】写出下面程序的运行结果。

classexample

example(intn)

{i=n;

cout<

Constructing\n"

~example()

{cout<

Destructing\n"

intget_i()

{returni;

inti;

intsqr_it(exampleo)

{returno.get_i()*o.get_i();

{examplex(10);

x.get_i()<

sqr_it(x)<

Constructing

Destructing

100

【3.20】写出下面程序的运行结果。

classaClass

aClass()

{total++;

~aClass()

{total--;

intgettotal()

{returntotal;

staticinttotal;

intaClass:

total=0;

{aClasso1,o2,o3;

o1.gettotal()<

objectsinexistence\n"

aClass*p;

p=newaClass;

if(!

p)

Allocationerror\n"

return1;

o1.gettotal();

objectsinexistenceafterallocation\n"

deletep;

objectsinexistenceafterdeletion\n"

3objectsinexistence

4objectsinexistenceafterallocation

3objectsinexistenceafterdeletion。

【3.21】写出下面程序的运行结果。

classtest

test();

~test(){};

test:

test()

{i=25;

for(intctr=0;

ctr<

10;

ctr++)

Countingat"

testanObject;

{return0;

Countingat0

Countingat1

Countingat2

Countingat3

Countingat4

Countingat5

Countingat6

Countingat7

Countingat8

Countingat9。

【3.22】写出下面程序的运行结果。

inta,b;

{a=0;

b=0;

Defaultconstructorcalled.\n"

A(inti,intj)

{a=i;

b=j;

Constructor:

a="

b="

{Aa[3];

Ab[3]={A(1,2),A(3,4),A(5,6)};

Defaultconstructorcalled.

a=1,b=2

a=3,b=4

a=5,b=6。

【3.23】写出下面程序的运行结果。

classTest{

intval;

Test()

default."

Test(intn)

{val=n;

Con."

Test(constTest&

t)

{val=t.val;

Copycon."

{Testt1(6);

Testt2=t1;

Testt3;

t3=t1;

答:

Con.

Copycon.

Default.

【3.24】写出下面程序的运行结果。

classN{

intA;

staticintB;

N(inta)

{A=a;

B+=a;

staticvoidf1(Nm);

voidN:

f1(Nm)

A="

m.A<

B="

B<

intN:

B=0;

{NP(5),Q(9);

N:

f1(P);

f1(Q);

r

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2