C++primer 习题解答-第七篇 -.docVIP

  1. 1、本文档共12页,可阅读全部内容。
  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文档。上传文档
查看更多
第七章 函数 题目 00形参和实参有什么区别? 【解答】 形参是在函数定义的形参表中进行定义,是一个变量,其作用域为整个函数。而实参出现在 函数调用中,是一个表达式。进行函数调用时,用传递给函数的实参对形参进行初始化。 题目 01 下列哪些函数是错误的?为什么?请给出修改意见int f() { string s; // ... return s; } (b) f2(int i) { /* ... */ }(c) int calc(int v1, int v1) /* ... */ } (d) double square(double x) return x * x; 【解答】 (a) 是错误的。因为函数头中所定义的返回值类型为 int,return 语句世纪返回的表达式的类 型为 string,两个类型不同,而 string 类型又不能隐式转换为 int 类型。可修改为: string f(){ string s; //… Return s; }(b) 是错误的。因为该函数定义中没有指定返回类型,在标准 C++中,定义函数时不指定返 回类型是非法的。可修改为: Int f2(int i){/*…*/}(c) 是错误的。缺少括住函数体在左花括号,而且两个形参不应该同名。可修改为: Int caic(int v1,intv2){/*…*/} (d) 是错误的。缺少括住函数体的一对花括号。可修改为: Double square(double x){return x*x;} 题目 02编写一个带有两个 int 型形参的函数,产生第一个参数的第二个参数次幂的值。 编写程序传递两个 int 数值调用该函数,请检验其结果。 【解答】 //7-3.cpp //函数 Power 带有两个 int 型形参,产生第一个参数的第二个参数次幂的值。 //主函数传递两个 int 型数值调用 power 函数 #includeiostream Using namespace std; Int power(int x,inty)//该函数返回 x 的 y 次幂 { Int result=1; For (int loop=1;loop=y;++loop) Result *=x; Return result; } Int main() { Int xval,yval; Cout”enter two integers(the second one should be equal to or bigger than 0):”endl; Cinxvalyval; If(yval0){ Cout”the second integer should be equal to or bigger than 0”endl; Return 1; } Cout”result of raising ”xval””to the power of yval”is ”power(xval,yval)endl; Return 0; } 注意,当输入的证书较大时,该 power 函数的计算结果容易溢出。 题目 03 编写一个函数,返回其形参的绝对值。 【解答】 可编写如下 abs 函数,返回形参 x 的绝对值: Int abs(int x) { Retrun x0?x:-x; } 题目 04 编写一个函数,该函数具有两个形参,分别为 int 型和指向 int 型的指针, 并返回这两个 int 值之中较大的数值。考虑应将其指针形参定义为什么类型? 【解答】 函数代码如下: Int getBigger(int x,const int*y) { Return x*y ? x: *y; } 该函数无需修改指针形参所指向的值,因此,为了保护指针形参所指向的值,将指针形参定 义为指向 const 对象的指针。 题目 05编写函数交换两个 int 型指针所指向的值,调用并检验该函数,输出交换后的 值。 【解答】 //7-6.cpp //函数 swap 交换两个 int 型指针所指向的值。 //主函数调用 swap 函数,输出交换后的值 #includeiostream Using namespace std; Void swap(int *x,int *y)//该函数交换 x 和 y 所指向的值 { Int temp; Temp=*x; *x=*y; *y=temp; } Int main() { Int xval,yval; Cout”enter two integers:”endl; Cinxvalyval; Cout”before swapped””x= ”xval”y= ”yvalendl; Swap(xval,yval); Cout”after swapped:””x=”xval”y=”yvale

文档评论(0)

187****5045 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档