- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章模块化程序设计1
第4章 模块化程序设计;第4章 模块化程序设计;4.1函 数;main(void)
{
┇
f1();
┇
f2();
┇
return 0;
};4.1.2 函数结构;1.函数头
函数类型 函数名(形式参数表列)
一个函数的函数头的结构如下:
(1)函数类型。指定函数值的类型,即函数返回值的类型。
(2)函数名。函数名必须采用合法的用户标识符。
(3)圆括号:在函数名后面的一对圆括号是“函数运算符”,表示进行函数运算,函数运算符具有很高的运算优先级别
(4)形式参数表。形式参数表由写在一对圆括号(函数运算符)中的一系列参数组成。每一个参数由一个类型符和一个参数名组成。参数名也应当是合法的用户关键字。函数可以没有参数,这时在函数运算符内写一个“void”,也可以空允白。;2. 函数体
函数体由一些语句组成。主要是三种类型的语句:
声明语句:声明在函数??要使用的变量等程序实体。
可执行语句:包括若干流程控制 语句和表达式语句,。
return语句:使流程返回到调用处。
这里主要介绍return语句的用法。
当函数执行到return语句时,将停止本函数的执行,将流程送回到调用处。同时,编译器将函数分为三类进行处理:
纯粹计算型函数,如sqrt()和sin()。这类函数将返回一个计算结果。
完成一项具体工作,返回完成的成败。如printf()执行成功时,返回显示的字节数;失败时,返回一个负整数。
只执行一个过程的函数,不产生返回值,其类型应定义为void。
C99规定,对于非void类型的函数,必须使用有返回值的return语句。;int absolutevalue (int x)
{
return (x=0?x:-x);
}
void spc (int n)
{
int i;
for (i=0; in ; i++)
printf (″ ″);
return;
};3. 函数中变量的作用域 ;#include stdio.h
int func(int x)
{
x=5;
return x+3;
}
int main(void)
{
printf(x=%d\n,x);
return 0;
}
这个程序企图在main函数中使用func函数中的变量x。编译这个程序,系统将给出如下编译错误:
c(13) : error C2065: x : undeclared identifier;4. 空函数;4.1.3 函数定义与函数声明;2. 函数声明;设有一函数的定义为:
double func (double a, int b, char c)
{
/* 函数体*/
}
与之相应的函数声明应为:
double func (double x, int y, char z);
/* 注意末尾的分号 */;4.1.4 虚实结合与传值调用;1. 函数调用时的虚实结合;2. 传值调用的虚实结合过程;#include stdio.h
void swap (int x, int y);
int main(void)
{
int a=3, b=5;
swap (a,b);
printf (″a=%d, b=%d\n″, a,b);
return 0;
}
void swap (int x, int y)
{
int temp;
temp=x, x=y, y=temp; /* 交换变量的值 */
printf(″x=%d,y=%d\n″,x,y);
}
执行结果:
x=5,y=3
a=3,b=5;4.1.5 递归函数; 递归计算n!的函数rfact( )。
通常,n的阶乘可以描述为:
n!=1·2·…·n
但是,也可以描述为:
n!= n·(n-1)·…·2·1
或者可以写为:
n!= n·(n-1)!
更一般的形式是:; 这就形成一个递归表达式。这个递归表达式可以用下面的函数实现。
long rfact(int n)
{
if (n0)
{
printf(″Negative argument to fact !\n″);
exit (-1);
}
else if (n=1)
return (1);
else
return (n*rfact (n-1)); /*自己调用自己*/
}
;当n=5时rfact的其调用和回代过程。;汉诺塔(Tower of Hanoi)问题。; 下
您可能关注的文档
最近下载
- Y Y-T 1118-2001 石膏绷带 粘胶型.pdf VIP
- 中职语文《江姐》(节选) 知识清单.docx VIP
- 绝望的主妇经典台词1-8季中英对照.pdf VIP
- 华力液压模块车(SPMT)使用说明书.pdf VIP
- 2025年保安员(初级)考试模拟100题(含答案) .pdf VIP
- 2024四年级上册语文课课贴(彩虹版).pdf VIP
- GZ055 环境艺术设计赛项赛题15套-2023年全国职业院校技能大赛赛项赛题 .pdf VIP
- 12小学体育二年级课程纲要.doc VIP
- 粘胶型石膏绷带产品技术要求2023完整版.docx VIP
- 2025-2026学年初中数学七年级上册(2024)华东师大版(2024)教学设计合集.docx
文档评论(0)