3C++第三讲习题解答.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE  PAGE 14 第三章 函数习题 第三章 函数习题 一.基本概念与基础知识自测题 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)全0 3.1.4局部变量存储在 (1) 区,在 (2) 时候建立,生存期为(3) ,如定义时未显式初始化,则其初值为 (4) 。 答案: (1)栈 (2)在函数或块开始执行时 (3)函数或块的执行期 (4)随机值 3.1.5 编译预处理的作用是 (1) ,预处理指令的标志是 (2) 。多文件系统中,程序由 (3) 来管理,用户自定义头文件中通常定义一些 (4) 。 答案: (1)将源程序文件进行处理,生成一个中间文件,编译系统对此中间文件进行编译并生成目标代码 (2)# (3)工程文件 (4)用户构造的数据类型(如枚举类型),外部变量,外部函数、常量和内联函数等具有一定通用性或常用的量 3.1.6 设有函数说明如下: int f(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)答案:5 3.1.7下列程序的输出结果分别为 (1) 和 (2) 。 (1) #includeiostream using namespace std; int a,b; void f(int j){ static int 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=3 j=3 m=4 n=9 (对应绿色) a=3 b=2 (2) #includeiostream using namespace 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; else if(n%2!=0) return x*sqr(p(x,n/2)); else return sqr(p(x,n/2)); } int main(){ coutp(2.0,13)endl; return 0; } 图解递归,共五层,返回值是回归时产生: 答案: in-process:x=2 n=13 in-process:x=2 n=6 in-process:x=2 n=3 in-process:x=2 n=1 in-process:x=2 n=0 8192 3.2 简答题 3.2.1 函数的实参和形参怎样对应?实参和形参数目必须一致吗?什么情况下可以不同? 答:实参和形参的个数和排列顺序应一一对应,并且对应参数应类型匹配(赋值兼容),当有缺省参数时可以不同。 3.2.2 函数和内联函数的执行机制有何不同?定义内联函数有何意义?又有何要求? 答:内联函数的调用机制与一般函数不同,编译器在编译过程中遇到inline时,为该函数建立一段代码,而后在每次调用时直接将该段代码嵌入到调用函数中,从而将函数调用方式变为顺序执行方式,这一过程称为内联函数的扩展或内联。内联函数的实质是牺牲空间来换取时间。因inline指示符对编译器而言只是一个建议,编译器也可以选择忽略该建议,内联函数只适用于功能简单,代码短小而又被重复使用的函数。函数体中包含复杂结构控制语句,如switch、复杂if嵌套、while语

文档评论(0)

xuefei111 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档