面向对象离线离线作业答案

发布 2022-09-05 17:58:28 阅读 7333

浙江大学远程教育学院。

面向对象程序设计》课程作业答案。

第2章。2.3】 测试下面的注释(它在c++风格的单行注释中套入了类似于c的注释)是否有效。

/this is a strange /*way to do a comment*/

答:有效。2.4】 以下这个简短的c++程序不可能编译通过,为什么?

#include

using namespace std;

int main()

int a,b,c;

cout<<"enter two numbers:";

cin>>a>>b;

c=sum(a,b);

cout<<"sum is:"

sum(int a,int b)

return a+b;

答:不能 sum使用前必须声明。

2.5】 回答问题。

1) 以下两个函数原型是否等价:

float fun(int a,float b,char *c);

float fun(int,float,char *

等价。2) 以下两个函数的第一行是否等价:

float fun(int a,float b,char * c);

float fun(int,float,char *

答:等价。2.6】 下列语句中错误的是(c )。

a.int *p=new int(10); b.int *p=new int[10];

c.int *p=new intd.int *p=new int[40](0);

2.7】 假设已经有定义“const char * const name="chen";”下面的语句中正确的是( d )。

a. name[3]='ab. name="lin";

c. name=new char[5d. cout<【2.8】 假设已经有定义“char * const name="chen";”下面的语句中正确的是( c )。

a. name[3]='qb. name="lin";

c. name=new char[5d. name=new char('q');

2.9】 假设已经有定义“const char * name="chen";”下面的语句中错误的是(a )。

a. name[3]='qb. name="lin";

c. name=new char[5d. name=new char('q');

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[4b. int &*p;

&&qd. int i,*p=&i;

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

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

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

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

d.重载函数名可以不同

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

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

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

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

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

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

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

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

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

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

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

include

using namespace std;

int i=15;

int main()

int i;

i=100;

i=i+1;

cout<<:i

答:1012.19】 写出下列程序的运行结果。

#include

using namespace std;

void f(int &m,int n)

int temp;

temp=m;

m=n;n=temp;

int main()

int a=5,b=10;

f(a,b);

cout< return 0;

答:10 10

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

#include

using namespace std;

int &f(int &i)

i+=10;

return i;

int main()

int k=0;

int &m=f(k);

cout

cout

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

答:例如#include <>

#define a 2+4

#define b a*3

void main

上面程序的运行结果是14而不是18 但很容易被认为是18。用const替代#define就能得到正确结果从而消除了#define的不安全性。

#include <>

const a=2+4;

const b=a*3;

void main()

cout< }

运行结果为18。

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

#include

using namespace std;

int main()

int i;

int *p;

p=new int[20];

p[0]=0;

p[1]=1;

cout<<*p<<"p+1)<<

for(i=2;i<20;i++)

p[i]=p[i-2]+p[i-1];

cout<<*p+i)<<

delete p;

return 0;

2.23】 编写一个c++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。重载sroot()3次,让它返回整数、长整数与双精度数的二次方根(计算二次方根时,可以使用标准库函数sqrt())

#include <>

#include <>

int sroot(int x)

float sroot(float x)

return

(float)sqrt(x);

double sroot(double x)

return (double)sqrt(x);

void maintest

int i = 4;

int resulti = sroot(i);

float j = 4.0;

float resultj =sroot(j);

double k = 4.0000;

面向对象离线离线作业答案

面向对象程序设计 离线作业答案。第2章。2.3 测试下面的注释 它在c 风格的单行注释中套入了类似于c的注释 是否有效。this is a strange way to do a comment 答 有效。2.4 以下这个简短的c 程序不可能编译通过,为什么?include using namesp...

商法离线作业答案

浙江大学远程教育学院。商法 课程作业。一 名词解释。33 强制清算 强制清算英语为 enforced liquidation。名。不可数。当开展信用交易的投资者账户中保证金不足时,公司对其实施的强制措施,如卖出抵押 追加保证存款等。1 营利社团法人的内涵。答 一 社团法人,又称法人型人合组织,指以人...

浙大商法离线作业答案

一 名词解释。1 商人。指以一定的自身或社会有形资源或无形资源为工具获取利润并附有一定社会责任的人,或者是指以自己名义实施商业行为并以此为常业的人。2 商号商号是商人在营业活动中表彰自己的名称。3 股份 股份 又称股份公司,是指其全部资本分为等额股份,股东以其所认购的股份为限对公司承担责任,公司以其...