面向对象离线离线作业

上传人:cn****1 文档编号:509442903 上传时间:2023-08-09 格式:DOC 页数:60 大小:130KB
返回 下载 相关 举报
面向对象离线离线作业_第1页
第1页 / 共60页
面向对象离线离线作业_第2页
第2页 / 共60页
面向对象离线离线作业_第3页
第3页 / 共60页
面向对象离线离线作业_第4页
第4页 / 共60页
面向对象离线离线作业_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《面向对象离线离线作业》由会员分享,可在线阅读,更多相关《面向对象离线离线作业(60页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上浙江大学远程教育学院面向对象程序设计课程作业姓名:王庆炀学 号:4年级:2012年秋学习中心:文成分中心第2章【2.3】 测试下面的注释(它在C+风格的单行注释中套入了类似于C的注释)是否有效。/this is a strange /*way to do a comment*/答:此注释有效,单行注释中可以嵌套/*/方式的注释。【2.4】 以下这个简短的C+程序不可能编译通过,为什么? #includeusing namespace std;int main()sum(int a,b,c; coutab; c=sum(a,b); coutsum is:c; retur

2、n 0;sum(int a,int b) return a+b;答:不能通过编译。在using namespace std:后面加上sum(int a,int b)【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 * );答(1)这两个函数原型是等价的,函数原型中的参数名可以缺省。(2)这两个函数的第1行是不等价

3、的,因为这个函数的第1行中必须包含参数名。【2.6】 下列语句中错误的是( D )。Aint *p=new int(10); Bint *p=new int10;Cint *p=new int; Dint *p=new int40(0);【2.7】 假设已经有定义“const char * const name=chen;”下面的语句中正确的是( D )。A. name3=a; B. name=lin;C. name=new char5; D. coutname3;【2.8】 假设已经有定义“char * const name=chen;”下面的语句中正确的是( A )。A. name3=q;

4、 B. name=lin;C. name=new char5; D. name=new char(q);【2.9】 假设已经有定义“const char * name=chen;”下面的语句中错误的是( A )。A. name3=q; B. name=lin;C. name=new char5; D. name=new char(q);【2.10】重载函数在调用时选择的依据中,( B )是错误的。 A函数名字 B函数的返回类型 C参数个数 D参数的类型【2.11】 在( A )情况下适宜采用内联函数。 A函数代码小,频繁调用 B函数代码多,频繁调用 C函数体含有递归语句 D. 函数体含有循环语

5、句【2.12】 下列描述中,( C )是错误的。 A. 内联函数主要解决程序的运行效率问题 B. 内联函数的定义必须出现在内联函数第一次被调用之前 C. 内联函数中可以包括各种语句 D. 对内联函数不可以进行异常接口声明【2.13】 在C+中,关于下列设置默认参数值的描述中,( B )是正确的。 A不允许设置默认参数值 B在指定了默认值的参数右边,不能出现没有指定默认值的参数 C只能在函数的定义性声明中指定参数的默认值D. 设置默认参数值时,必须全部都设置 【2.14】 下面的类型声明中正确是( D )。 A. int &a4; B. int &*p; C.int &q; D. int i,*

6、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. 对一个指针可以

7、使用多次该运算符 D指针名前只有一对方括号符号,不管所删除数组的维数【2.18】 写出下列程序的运行结果。 #includeusing namespace std;int i=15;int main() int i; i=100; :i=i+1; cout:iendl; return 0;答:101【2.19】 写出下列程序的运行结果。#includeusing 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); couta bendl; return 0;

8、答:10,10【2.20】 分析下面程序的输出结果。#includeusing namespace std;int &f(int &i) i+=10; return i;int main() int k=0;int &m=f(k);coutkendl;m=20;coutkendl;return 0;答:10 20【2.21】 举例说明可以使用const替代define以消除define的不安全性。答例如#include #define A 2+4 #define B A*3 void main() coutBendl; 上面程序的运行结果是14而不是18但很容易被认为是18。用const替代#

9、define就能得到正确结果从而消除了#define的不安全性。 #include const A=2+4; const B=A*3; void main() coutBendl; 运行结果为18。【2.22】 编写一个C+风格的程序,用动态分配空间的方法计算Fibonacci 数列的前20项,并存储到动态分配的空间中。答:#include Using namespace std; Int main() Int*p=new int20; *p=1; *(p+1)=1;Cout*p”t*(p+1)”t”; p=p+2; for(int i=3;i=20;i+) *p=*(p-1)+*p(p-2)

10、; Cout*p”t”; If(i%5=0)coutend1; P+; 【2.23】 编写一个C+风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。重载sroot()3次,让它返回整数、长整数与双精度数的二次方根(计算二次方根时,可以使用标准库函数sqrt()。答:#include Using namespace std;Double sroot(int i) return sqrt(i);Duble sroot(long 1)return sqrt(1);Duble stroot (double d)eturn sqrt(d);Int main() Int i=12; L

11、ong 1=1234; Double d=12.34;Cout”i的二次方根是:”sroot(i)end1;Cout”i的二次方根是:”sroot(l)end1;Cout”i的二次方根是:”sroot(d)end1;Return 0【2.24】 编写一个C+风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?答:#include Using namespace std; Int main() Int I,j,sum=0; For(i=0;j=20;i+) For(j=0;j=0) Sum+; Cout100-5*i-2*j”t”j”t”iendl; Cout”sum is “sumendl; Return 0; 【2.25】 编写一个C+风格的程序,输入两个整数,将它们按由小到大的顺序输出。要求使用变量的引用。#include using namespace std; void swap(int &x,int &y) i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号