浙大2013年下半学期面向对象离线离线作业.doc

上传人:公**** 文档编号:563806474 上传时间:2023-05-03 格式:DOC 页数:61 大小:165.01KB
返回 下载 相关 举报
浙大2013年下半学期面向对象离线离线作业.doc_第1页
第1页 / 共61页
浙大2013年下半学期面向对象离线离线作业.doc_第2页
第2页 / 共61页
浙大2013年下半学期面向对象离线离线作业.doc_第3页
第3页 / 共61页
浙大2013年下半学期面向对象离线离线作业.doc_第4页
第4页 / 共61页
浙大2013年下半学期面向对象离线离线作业.doc_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《浙大2013年下半学期面向对象离线离线作业.doc》由会员分享,可在线阅读,更多相关《浙大2013年下半学期面向对象离线离线作业.doc(61页珍藏版)》请在金锄头文库上搜索。

1、浙江大学远程教育学院面向对象程序设计课程作业姓名:学 号:年级:2013(春)计算机科学与技术(专本(业余)学习中心:南京学习中心第2章【2.3】 测试下面的注释(它在C+风格的单行注释中套入了类似于C的注释)是否有效。/this is a strange /*way to do a comment*/答:此注释有效,单行注释中可以嵌套 / * * /方式的注释。【2.4】 以下这个简短的C+程序不可能编译通过,为什么? #includeusing namespace std;int main()int a,b,c; coutab; c=sum(a,b); coutsum is:c; retu

2、rn 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. nam

4、e3=q; 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. in

6、t i,*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; ret

8、urn 0;答: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

9、。用const替代#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=*(

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

11、rt(d); Int main() Int i=12; Long l=1234; Double d=12.34; Cout”i的二次方根是:”sroot(i)endl; Cout”l的二次方根是:”sroot(l)endl; Cout”d的二次方根是:”sroot(d)endl; Return 0; 【2.24】 编写一个C+风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?答:#include Using namespace std; Int main() Int I,j,sum=0; For(i=0;i=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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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