程序设计教程(机械工业出版社)课后习题答案-第4章-过程抽象――函数

程序设计教程(机械工业出版社)课后习题答案-第4章-过程抽象――函数

ID:46943005

大小:88.50 KB

页数:5页

时间:2019-11-30

程序设计教程(机械工业出版社)课后习题答案-第4章-过程抽象――函数_第1页
程序设计教程(机械工业出版社)课后习题答案-第4章-过程抽象――函数_第2页
程序设计教程(机械工业出版社)课后习题答案-第4章-过程抽象――函数_第3页
程序设计教程(机械工业出版社)课后习题答案-第4章-过程抽象――函数_第4页
程序设计教程(机械工业出版社)课后习题答案-第4章-过程抽象――函数_第5页
资源描述:

《程序设计教程(机械工业出版社)课后习题答案-第4章-过程抽象――函数》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第4章过程抽象――函数1、简述子程序的作用。答:子程序是有名字的一段程序代码,它通常完成一个独立的(子)功能。在程序的其他地方通过子程序的名字来使用它们。除了能减少程序代码外,采用子程序的主要作用是实现过程抽象,使用者只需知道子程序的功能,而不需要知道它是如何实现的,这有利于大型、复杂程序的设计和理解。2、简述局部变量的作用。答:1、实现信息隐藏,使得函数外无法访问该函数内部使用的数据。2、减少名冲突,一个函数可以为局部变量定义任何合法名字,而不用担心与其他函数的局部变量同名。2、局部变量的内存空间在栈中分

2、配,函数调用完之后释放,因此,使用局部变量能节省程序的内存空间。3、简述变量的生存期和标识符的作用域。答:变量的生存期指程序运行时一个变量占有内存空间的时间段。C++把变量的生存期分为静态、自动和动态三种。标识符的作用域是指:一个定义了的标识符的有效范围,即该标识符所标识的程序实体能被访问的程序段。在C++中,根据标识符的性质和定义位置规定了标识符的作用域。作用域分为:全局作用域、文件作用域、局部作用域、函数作用域、函数原型作用域、类作用域、名空间作用域。4、全局标识符与局部标识符在哪些方面存在不同?答:1

3、、作用域不同2、生存期不同3、用途不同,全局标识符用于标识共享的实体,而局部标识符用于标识专用的实体。5、下面的声明中哪一些是定义性声明?这些定义性声明的非定义性声明是什么?(1)constinti=1;(2)staticdoublesquare(doubledbl){returndbl*dbl;}(3)char*str;(4)structPoint;(5)char*(*pFn)(int(*)(char*,int),char**);答:1)是。非定义性声明:externconstinti;2)是。非定义性声

4、明:externdoublesquare(double);3)是。非定义性声明:externchar*str;4)不是。5)是。非定义性声明:externchar*(*pFn)(int(*)(char*,int),char**);1、下面的宏cube1和函数cube2相比,各有什么优缺点?#definecube1(x)((x)*(x)*(x))doublecube2(doublex){returnx*x*x;}答:小型函数的频繁调用会带来程序执行效率的严重下降,宏的出现解决了函数调用效率不高的问题,但宏本身

5、也存在很多问题:(1)宏会出现重复计算,(2)不进行参数类型检查和转换,(3)不利于一些工具对程序的处理。而函数可以很好的处理这些问题。另外,对于:inta;当a的值很大时,cube1(a)得不到正确结果!(因为结果类型为int,而如果a*a*a的结果超出了int型的范围,则结果将会截断!)2、编写一个函数digit(n,k),它计算整数n的从右向左的第k个数字。例如:digit(123456,3)=4digit(1234,5)=0答:intdigit(intn,intk){for(inti=1;i

6、++)n=n/10;returnn%10;}3、分别用函数实现习题3.8中的第1、4、7和10题的程序功能。答:第1题:doubleFahrenheit_To_Celsius(doublex){return(x-32)*5/9;}第4题:intnum_of_digits(intgzint){intcount=0;if(gzint<0)gzint=-gzint;while(gzint!=0){gzint=gzint/10;count++;}returncount;}4、写出下面程序的执行结果:#include

7、usingnamespacestd;intcount=0;intfib(intn){count++;if(n==1

8、

9、n==2)return1;elsereturnfib(n-1)+fib(n-2);}intmain(){cout<

10、(x)(n>1)答:#includeusingnamespacestd;doubleHermit_Iterative(int,double);//迭代方法doubleHermit_Recursion(int,double);//递归方法voidmain(){constintn=3;//n与x可自行指定doublex=3.14;cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。