- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 函数
3-1 C++中的函数是什么?什么叫主调函数,什么叫被调函数,二者之间有什么关系?如何调用一个函数?
解: 一个较为复杂的系统往往需要划分为若干子系统,高级语言中的子程序就是用来实现这种模块划分的。C和C++语言中的子程序就体现为函数。调用其它函数的函数被称为主调函数,被其它函数调用的函数称为被调函数。一个函数很可能既调用别的函数又被另外的函数调用,这样它可能在某一个调用与被调用关系中充当主调函数,而在另一个调用与被调用关系中充当被调函数。
调用函数之前先要声明函数原型。按如下形式声明:
类型标识符 被调函数名 (含类型说明的形参表);
声明了函数原型之后,便可以按如下形式调用子函数:
函数名(实参列表)
3-2 观察下面程序的运行输出,与你设想的有何不同?仔细体会引用的用法。
源程序:
#include iostream.h
int main()
{
int intOne;
int rSomeRef = intOne;
intOne = 5;
cout intOne:\t\t intOne endl;
cout rSomeRef:\t rSomeRef endl;
int intTwo = 8;
rSomeRef = intTwo; // not what you think!
cout \nintOne:\t\t intOne endl;
cout intTwo:\t\t intTwo endl;
cout rSomeRef:\t rSomeRef endl;
return 0;
}
程序运行输出:
intOne: 5
rSomeRef: 5
intOne: 8
intTwo: 8
rSomeRef: 8
3-3 比较值调用和引用调用的相同点与不同点。
解:值调用是指当发生函数调用时,给形参分配内存空间,并用实参来初始化形参(直接将实参的值传递给形参)。这一过程是参数值的单向传递过程,一旦形参获得了值便与实参脱离关系,此后无论形参发生了怎样的改变,都不会影响到实参。
引用调用将引用作为形参,在执行主调函数中的调用语句时,系统自动用实参来初始化形参。这样形参就成为实参的一个别名,对形参的任何操作也就直接作用于实参。
3-4 什么叫内联函数?它有哪些特点?
解:定义时使用关键字 inline的函数叫做内联函数;
编译器在编译时在调用处用函数体进行替换,节省了参数传递、控制转移等开销;
内联函数体内不能有循环语句和switch语句;
内联函数的定义必须出现在内联函数第一次被调用之前;
对内联函数不能进行异常接口声明;
3-5 函数原型中的参数名与函数定义中的参数名以及函数调用中的参数名必须一致吗?
解: 不必一致,所有的参数是根据位置和类型而不是名字来区分的。
3-6 重载函数时通过什么来区分?
解:重载的函数的函数名是相同的,但它们的参数的个数和数据类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数。
★ 3-7 编写函数,参数为两个unsigned short int型数,返回值为第一个参数除以第二个参数的结果,数据类型为short int;如果第二个参数为0,则返回值为-1。在主程序中实现输入输出。
源程序:
#include iostream.h
short int Divider(unsigned short int a, unsigned short int b)
{
if (b = = 0)
return -1;
else
return a/b;
}
typedef unsigned short int USHORT;
typedef unsigned long int ULONG;
int main()
{
USHORT one, two;
short int answer;
cout Enter two numbers.\n Number one: ;
cin one;
cout Number two: ;
cin two;
answer = Divider(one, two);
if (answer -1)
cout Answer: answer;
else
cout Error, cant divide by zero!;
return 0;
}
程序运行输出:
Enter two numbers.
Number one:8
Number two:2
Answer: 4
3-8 编写函数把华氏温度转换为摄氏温度,公式为:C = (F - 32) * 5/9; 在主程序中提示用户输入一个华氏温度,转化后输出相应的摄氏温度。(略)
★ 3-9 编写函数判断一个数是否是质数,在主程序中实现输入、
您可能关注的文档
- 第6讲 细胞的自主特化:形态发生决定子.ppt
- 雅思词汇分类之计算机编程词汇(附件).docx
- 网络存储备份技术教材.ppt
- 桩基础作业(附答案)课件.doc
- 注册会计师事务所文化建设分析解析.doc
- 专利电子申请CPC客户端操作常见问题解析.doc
- 第三章 电大期末考试《计算机网络》模拟题.doc
- 专业术语目录课件.doc
- 第九章 编译原理2006期末考试试卷A答案.doc
- 注码符号标注位置刍议解析.doc
- 四川省德阳市罗江中学2025届高三考前热身化学试卷含解析.doc
- 山东省枣庄现代实验学校2025届高三下学期第五次调研考试化学试题含解析.doc
- 吉林省长春市十一高中等九校教育联盟2025届高三一诊考试生物试卷含解析.doc
- 2025届江苏省盐城市伍佑中学高考仿真模拟化学试卷含解析.doc
- 2025届广西贺州中学高考冲刺押题(最后一卷)生物试卷含解析.doc
- 安徽省池州市贵池区2025届高三第一次模拟考试生物试卷含解析.doc
- 宁夏银川一中2025届高三(最后冲刺)化学试卷含解析.doc
- 广东省广州市增城区四校联考2025届高考压轴卷化学试卷含解析.doc
- 2025届邯郸市第一中学高考生物必刷试卷含解析.doc
- 2025届安徽省安庆市石化第一中学高考仿真卷化学试卷含解析.doc
文档评论(0)