知识要点:函数的定义
视频:

目录
一、任务分析
用函数调用来实现比较两个数的大小,输出其中较大的数。
任务要求用函数调用来完成,也就是说完成对两个整数比较大小这个功能需要另外定义一个函数,总共是两个模块。
1.首先是写一个main()函数;
2.在main()函数中,定义三个变量,两个用来存放两个整数,第三个用来存放两数中的最大值;
3.自己定义一个函数max()用来完成对两个整数比较大小这个功能并且将较大的数作为返回值返回到main()函数中;
4.在main()函数中调用max()函数完成任务。
二、必备知识与理论
1. 函数的引入
C语言是结构化的程序设计语言,结构化程序设计是以模块化设计为中心,是将待开发的软件系统划分为若干个相互独立的模块,由这些独立的模块完成不同的功能,然后将这些模块通过一定的方法组织起来,成为一个整体。这就是结构化程序设计的思想, 也就是“自顶向下、逐步细化”,即将一个较大的程序按其功能分成若干个模块,每个模块具有单一的功能,其中模块化是结构化程序设计的核心。
2.函数的分类
(1)从函数定义的角度进行分类,可将C函数分为标准库函数和用户自定义函数两种。
(2)从函数形式的角度进行分类,可将C函数分为无参函数和有参函数两种
(3)从有无返回值的角度进行分类,可将C函数分为有返回值函数和无返回值函数两种。
(4)从函数的作用范围进行分类,可将C函数分为外部函数和内部函数。
3.函数的定义
C语言中的“函数”实际上是“功能”的意思,当需要完成某种功能时,就用一个函数来实现它。C语言程序处理过程全部都是以函数形式出现的,最简单的程序至少也有一个main函数。函数必须先定义和声明后才能调用。
在C语言中,函数的定义形式分为无参函数定义形式和有参函数定义形式。
(1)无参函数定义的一般形式:
类型说明符 函数名()
{ / *函数体* /
类型说明
语句部分
}
(2)有参函数定义的一般形式:
C函数的定义格式有两种:现代风格(ANSI C格式)和传统风格(K&R格式)。传统风格是早期编译系统使用的格式,现代风格是现代编译系统使用的格式。推荐使用现代风格,现代风格在系统编译时易于对形参进行检查,从而保证了函数说明和定义的一致性。具体定义的语法格式如下所示:
1)现代风格
类型说明符 函数名(类型名 形式参数1,类型名 形式参数2,……)
{ / *函数体* /
类型说明
语句部分
}
2)传统风格
类型说明符 函数名(形式参数表列)
形参的类型说明;
{ / *函数体* /
类型说明
语句部分
}
三、任务实施
本任务是比较两个整数的大小,输出其中较大的数(用函数调用来完成)。
任务要求用函数调用来完成,也就是说完成对两个整数比较大小这个功能需要另外定义一个函数,总共是两个模块。在项目一中介绍C程序结构的时候讲过这个例题。
(1)首先是写一个main()函数,在main()函数中定义三个整型变量a,b,c,a和b用来存放两个整数,c用来存放两数中的最大值。
(2)自己定义一个有参函数max()用来完成对两个整数比较大小这个功能并且将较大的数作为返回值返回到main()函数中。
(3)在main()函数中调用max()函数完成任务。
程序代码如下:
#include <stdio.h>
main() /* 主函数 */
{
int max(int x,int y); /* 对被调用max函数的声明 */
int a,b,c;
printf("please input two numbers:\n");
scanf("%d,%d",&a,&b);
c=max(a,b); /* 调用max函数,将得到的值赋给c */
printf("max=%d\n",c);
}
/* 现代风格 */
int max(int x,int y)/*定义max函数,函数值为整型,x,y为形式参数*/
{
int z;
z=x>y?x:y;
return (z); /*将z的值返回,通过函数调用将值带回到调用处*/
}
运行结果:
please input two numbers:
6,9↙
max=9
注意:其中max()函数也可以这样写:
/* 传统风格 */
int max(x,y) /*定义max函数,函数值为整型,x,y为形式参数*/
int x,y;
{
int z;
z=x>y?x:y;
return (z); /*将z的值返回,通过函数调用将值带回到调用处*/
}
函数的作用是:比较a和b两个数的大小,将最大的赋值给c,其中a和b是形参,最后通过语句return返回最大值c给主调函数。在进行函数调用时,主调函数将实际参数a和b的值传递给被调用函数的形式参数x和y。
2498

被折叠的 条评论
为什么被折叠?



