第6章函数 ◆学习的意义 我的程序有上百行,如何调试最方便? 2我想设计一个程序完成下面的计算 m! n 其中,m、n为正整数且m>n 该如何设计程序最有效? ☆☆第章画数
☆☆ 第6章 函数 1 第6章 函数 ◆学习的意义
积木 软件项到 功能模块1 功能模块2 …功能模块n C语言翟序 子模块 子模块 子 模 块 2 C语言函数 ☆☆第章画数
☆☆ 第6章 函数 2 子 模 块 1 子 模 块 2 子 模 块 n ◆学习的意义 功能模块1 功能模块2 …… 功能模块n …… …… …… 软件项目 C语言程序 C语言函数 达积木
第6章函数 令本章要求 理解模块化程序设计思想; 掌握函数的定义与调用方法; 掌握C语言的参数传递方式,尤其是数组参数的传递特点; 掌握变量的作用域和存储方式。 ◆本章重点 ■函数的定义与调用 ■参数传递 ■变量的作用域和存储方式 ◆本章难点 ●参数传递 ●变量的作用域和存储方式 ☆☆第章画数
☆☆ 第6章 函数 3 第6章 函数 ❖本章要求 ▪ 理解模块化程序设计思想; ▪ 掌握函数的定义与调用方法; ▪ 掌握C语言的参数传递方式,尤其是数组参数的传递特点; ▪ 掌握变量的作用域和存储方式。 ❖本章重点 ◼函数的定义与调用 ◼参数传递 ◼变量的作用域和存储方式 ❖本章难点 ⚫参数传递 ⚫变量的作用域和存储方式
第6章函数 ·6.1函数概述 6.2函数的定义 6.3函数调用与参数传递 6.4函数与指针 6.5main函数的参数 6.6函数与变量的作用域 6.7应用程序举例 ☆☆第章画数
☆☆ 第6章 函数 4 第6章 函数 • 6.1 函数概述 • 6.2 函数的定义 • 6.3 函数调用与参数传递 • 6.4 函数与指针 • 6.5 main函数的参数 • 6.6 函数与变量的作用域 • 6.7 应用程序举例
61函数概述 6.1.1程序化设计方法 令模块化程序设计方法: 令人们在求解某个复杂问题时,通常采用逐步分解、分而治 之的方法,也就是将一个大问题分解成若干个比较容易求 解的小问题,然后分别求解。程序员在设计一个复杂的应 用程序时,往往也是把整个程序划分成若干个功能较为单 的程序模块,然后分别予以实现,最后再把所有的程序 模块象达积木一样装配起来,这种在程序设计中分而治之 的策略,被称为模块化程序设计方法。 ☆☆第章画数
☆☆ 第6章 函数 5 ❖ 模块化程序设计方法: ❖ 人们在求解某个复杂问题时,通常采用逐步分解、分而治 之的方法,也就是将一个大问题分解成若干个比较容易求 解的小问题,然后分别求解。程序员在设计一个复杂的应 用程序时,往往也是把整个程序划分成若干个功能较为单 一的程序模块,然后分别予以实现,最后再把所有的程序 模块象达积木一样装配起来,这种在程序设计中分而治之 的策略,被称为模块化程序设计方法。 ▪ 6.1.1 程序化设计方法 6.1 函数概述
61函数概述 ◆例6-1编写一个显示欢迎信息的程序,要求所有的信息 均在一个星号组成的矩形框中显示。 程序输出如下: Please input your name! *Xiao Qiang * Welcome to the c world ☆☆第章画数 6
☆☆ 第6章 函数 6 6.1 函数概述 ❖例6-1 编写一个显示欢迎信息的程序,要求所有的信息 均在一个星号组成的矩形框中显示。 程序输出如下: *************************** *Please input your name! * *************************** *Xiao Qiang * *************************** *Welcome to the C world! * ***************************
程序代码如 Include include #define USERNAME "xiaoQiang void message(char *s)i //函数声明 void main o char name [10]; essage(" Please input your name!");//函数调用 scanf("%s" name) f(strcmp(name, USERNAME)==0) message("Welcome to the c world! ")i else message("Error Username")i //函数调用 void message(char*s)//函数定义 t int n,ii n=strlen(s)i //求字符串s的长度 f。x(=1;i<=n+4;i++) printf(C,*) printf("\n")i printf("*号s*\n",s); f。x(=1;i<=n+4;i++) printf(c",'*')i printf("\n") ☆☆第章画数
☆☆ 第6章 函数 7 ▪ 程序代码如下: #include #include #define USERNAME "XiaoQiang" void message(char *s); //函数声明 void main() { char name[10]; message("Please input your name!"); //函数调用 scanf("%s",name); if(strcmp(name,USERNAME)==0) message("Welcome to the C world!"); else message("Error Username"); //函数调用 } void message(char *s) //函数定义 { int n,i; n=strlen(s); //求字符串S的长度 for(i=1;i<=n+4;i++) printf("%c",'*'); printf("\n"); printf("* %s *\n",s); for(i=1;i<=n+4;i++) printf("%c",'*'); printf("\n"); }
61函数概述 ■程序输出如下: ★★★★★★★★★★★★★★★★★★★★★★★★★★★ *Please input your name! ★★★★★★★★★★★★★★★★★★★★★★★★★★★ man XiaoQiang ★★★★★★★★★★★★★★★★★★★★★★★★★★★ mes sage ★ Welcome to the c wor1d!★ strlen ★★★大★★★★★★★★★★★★★★★★★★★★大★★ printf C程序的层次关系 scanf strom nes sage style printf ☆☆第章画数 8
☆☆ 第6章 函数 8 6.1 函数概述 ▪ 程序输出如下: *************************** *Please input your name!* *************************** XiaoQiang *************************** *Welcome to the C world!* *************************** ▪ C程序的层次关系
61函数概述 令C语言使用函数作为程序的组成单元的优点是 1)简化程序设计: 将常执行的一些操作写成函数后,可以像利用库函数 样调用。 2)便于调试和维护: 庞大的程序分成若干功能独立的小模块,便于管理和调 试。 ☆☆第章画数
☆☆ 第6章 函数 9 ❖C语言使用函数作为程序的组成单元的优点是: 1)简化程序设计: 将常执行的一些操作写成函数后,可以像利用库函数一 样 调用。 2)便于调试和维护: 庞大的程序分成若干功能独立的小模块,便于管理和调 试。 6.1 函数概述
61函数概述 令612C函数的分类 从使用角度划分 标准函数,即库函数(# include) 自定义函数(为解决不同问题而编写) n从函数形式划分 无参函数(函数定义时圆括号内为空或者void) 有参函数 n从函数的结果划分 无返回值函数(完成某项任务不向主函数返回函数值) 有返回值函数(返回结果) 从函数的存储类型划分 外部函数( extern)(可以被其他文件中的函数调用) 静态函数( static)(只限于本文件中的函数用) ☆☆第章画数 10
☆☆ 第6章 函数 10 6.1 函数概述 ❖6.1.2 C函数的分类 ▪ 从使用角度划分 标准函数,即库函数 (#include) • 自定义函数(为解决不同问题而编写) ▪ 从函数形式划分 • 无参函数(函数定义时圆括号内为空或者void) • 有参函数 ▪ 从函数的结果划分 • 无返回值函数(完成某项任务不向主函数返回函数值) • 有返回值函数(返回结果) ▪ 从函数的存储类型划分 • 外部函数(extern)(可以被其他文件中的函数调用) • 静态函数(static)(只限于本文件中的函数用)