- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章函数与宏思考与练习题答案
第5章 函数与宏
请给出函数概念的基本描述。
答:函数就是一个完成特定功能的代码模块,其程序代码独立,通常要求有返回值,也可以是空值。
什么叫函数原型?
答:函数原型是指由函数定义中抽取出来的能代表函数应用特征的部分,包括函数的数据类型、函数名称、形式参数说明。
什么叫函数的实参?什么叫函数的形参?
答:实参是在调用函数过程中传递给被调用函数的参数;形参是被调用函数接受调用函数传递过来的数据的参数。
请说出函数参数为一般变量的复制传递方式、地址传递方式和引用方式的异同点。
答:复制传递方式是实参的数据拷贝给了形参变量,实参和形参是具有相同数据类型但存储空间是不同的两组空间。在复制传递方式下,被调用函数里对形参的操作不能改变实参的内容。
地址传递方式和复制传递方式正好相反,用函数的参数本身传给被调用函数。被调用函数中对形参的操作将直接改变实参的值。调用函数将实参的地址传送给被调用函数,被调用函数对该地址的目标操作即对实参本身的操作。按地址传递,实参为变量的地址,而形参为同类型的指针。按引用传递,实参为变量,形参为同类型的引用地址传递,实参为的,而形参为同类型的指针。地址传递引用对操作对直接操作按引用传递,形参为实参同类型的引用。(1) char *volume ( int height, width, char background ) ;
答:函数的参数部分说明错误;width参数没有指出数据类型。
(2) double work ( double matrix[10] ) ;
答:参数部分引用数组的说明形式错误;不符合引用数组的说明形式。
(3) void display ( int arr[ ][ ], int size ) ;
答:参数二维数组的说明不对;右下标大小不能为空。
(4) void sum ( int (a) [ ] ) ;
答:不符合引用数组的说明形式;大小不能缺省。
(5) int fun( double a, int b = 0, int c );
答:缺省值位置说明错误;指定缺省值必须从右向左给出,不能跳跃指定缺省值。
(6) double Matrix ( double *m[] );
答:指针变量数组的说明形式不对;大小不能缺省。
(7) char * fetch ( int a= 24, int b, char c=0);
答:缺省值位置说明错误;指定缺省值必须从右向左给出,不能跳跃指定缺省值。
(8) void length( int a [2 ] );
答:引用数组说明错误;不符合引用数组的说明形式。
什么叫递归函数?简述其执行过程。
答:递归函数是指一个函数的函数体中直接调用或间接调用了该函数自身的函数。
递归函数调用的执行过程分为两个阶段:
(1)递推阶段:从原问题出发,按递归公式递推,从未知到已知,最终达到递归终止条件。
(2)回归阶段:按递归终止条件求出结果,逆向逐步代入递归公式,回归到原问题求解。
阅读下列程序并给出运行结果。
#include iostream.h
int fun(int x,int y)
{
return x*y;
}
void main(void)
{
int k=5;
coutfun(k,2)endl;
}
运行结果是:10
#include iostream.h
#include math.h
void fun (int a, int b, double s, double t)
{
s=sqrt (a*a+b*b);
t=sqrt (a*a-b*b);
}
void main(void)
{
double m, n;
fun (4,3,m,n);
coutm+nendl;
}
运行结果是:7.64575
(3) #include iostream.h
int n=0;
int fun (int x) //引用型函数
{
n -=x; return n;
}
void main(void)
{
fun(100) += 10;
coutn=nendl;
}
输出结果是:n= -90
(4) #include stdio.h
int d=0;
int fun( int p)
{
static int g=10 ; g += ++d - p; printf(%d ,g);
return
您可能关注的文档
- 九寨沟会议中心案例14页PPT.ppt
- 2012网络-TCP协议(第3章).ppt
- 桃源县第十中学九年级英语复习2科导学.doc
- 牛津英语8Bunit2Vocabulary格式教案.doc
- 2011学年协德乡完小第二学期教导处工作周安排一览表.doc
- 现代通信技术第3章.ppt
- 船舶重要风险源识别.doc
- 康义敏的作业.doc
- 整理的最新申论.doc
- 东港市再生资源园区介绍.doc
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)