[3C第三章习题解答.docxVIP

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[3C第三章习题解答

第三章函数习题一.基本概念与基础知识自测题3.1填空题3.1.1 被定义为形参的是在函数中起(1)作用的变量,形参只能用(2)表示。实参的作用是(3),实参可以用(4)、(5)、(6)表示。答案:(1)自变量(2)变量名(3)将实际参数的值传递给形参(4)具有值的变量(5)常量(6)表达式3.1.2 局部域包括(1)、(2)和(3)。使用局部变量的意义在于(4)。答案:(1)块域(2)函数域(3)函数原型域(4)局部变量具有局部作用域使得程序在不同块中可以使用同名变量3.1.3 静态局部变量存储在(1)区,在(2)时候建立,生存期为(3),如定义时未显式初始化,则其初值为(4)。答案:(1)全局数据区(2)编译(3)全局生存期(4)全03.1.4局部变量存储在(1)区,在(2)时候建立,生存期为(3),如定义时未显式初始化,则其初值为(4)。答案:(1)栈(2)在函数或块开始执行时(3)函数或块的执行期(4)随机值3.1.5 编译预处理的作用是(1),预处理指令的标志是(2)。多文件系统中,程序由(3)来管理,用户自定义头文件中通常定义一些(4)。答案:(1)将源程序文件进行处理,生成一个中间文件,编译系统对此中间文件进行编译并生成目标代码(2)#(3)工程文件(4)用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的量3.1.6设有函数说明如下:intf(int x, int y){ return x%y+1; }假定a=10,b=4,c=5,下列语句的执行结果分别是(1)和(2)。(1) coutf(a,b)+f(a,c);(2) coutf(f(a+c,b),f(b,c));解答:(1)答案:4(2)答案:53.1.7下列程序的输出结果分别为(1)和(2)。(1)#includeiostreamusingnamespace std;int a,b;void f(int j){staticint i=a;//注意静态局部变量int m,n;m=i+j; i++; j++; n=i*j; a++;couti=i\tj=j\t;coutm=m\tn=nendl;}int main(){a=1; b=2;f(b); f(a);couta=a\tb=bendl;return 0;}解:答案:i=2 j=3 m=3 n=6 (对应蓝色)i=3j=3 m=4 n=9 (对应绿色)a=3 b=2(2)#includeiostreamusingnamespace std;float sqr(float a){return a*a;}float p(float x,int n){coutin-process:x=x\tn=nendl;if(n==0) return 1;elseif(n%2!=0) return x*sqr(p(x,n/2));elsereturn sqr(p(x,n/2));}int main(){coutp(2.0,13)endl;return 0;}图解递归,共五层,返回值是回归时产生:答案:in-process:x=2 n=13in-process:x=2 n=6in-process:x=2 n=3in-process:x=2 n=1in-process:x=2 n=081923.2 简答题3.2.1 函数的实参和形参怎样对应?实参和形参数目必须一致吗?什么情况下可以不同?答:实参和形参的个数和排列顺序应一一对应,并且对应参数应类型匹配(赋值兼容),当有缺省参数时可以不同。3.2.2 函数和内联函数的执行机制有何不同?定义内联函数有何意义?又有何要求?答:内联函数的调用机制与一般函数不同,编译器在编译过程中遇到inline时,为该函数建立一段代码,而后在每次调用时直接将该段代码嵌入到调用函数中,从而将函数调用方式变为顺序执行方式,这一过程称为内联函数的扩展或内联。内联函数的实质是牺牲空间来换取时间。因inline指示符对编译器而言只是一个建议,编译器也可以选择忽略该建议,内联函数只适用于功能简单,代码短小而又被重复使用的函数。函数体中包含复杂结构控制语句,如switch、复杂if嵌套、while语句等,以及无法内联展开的递归函数,都不能定义为内联函数,即使定义,系统也将作为一般函数处理。3.2.3 全局变量和全局静态变量的区别在哪里?为什么提倡尽量使用局部变量?答:有static修饰的全局变量只能在定义它的文件中可见,在其他文件中不可见,而非静态的全局变量则可以被其他程序文件访问,但使用前必须用extern说明。局部变量具有局部作用域使得程序在不同块中可以使用同名变量。这些同名变量各自在自己的作用域中可见,在其它地方不可见。所以提

文档评论(0)

lisuf331 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档