- 3
- 0
- 约1.75万字
- 约 84页
- 2019-05-14 发布于广东
- 举报
C语言程序设计 —进阶篇 第3章 函数(一) 内容概述 1.函数定义、函数原型及声明。 2.函数调用及参数传递。 3.函数嵌套的概念及其定义和使用方法。 4.局部变量、全局变量以及最常用的两种变量存储类型auto和static。 教学目标 1.掌握自定义函数的一般结构及定义函数的方法; 2.掌握形参、实参、函数原型等重要概念。掌握函数声明、函数调用的一般方法; 3.熟悉函数嵌套的概念,能定义和使用嵌套函数。 4.了解局部变量、全局变量和变量的存储类型的概念,掌握auto型和static型局部变量的特点和用法。 5.了解main函数的参数及用法。 4. 函数 在C语言中,完成一个特定功能的程序模块就是函数。 (1)C语言是通过函数来实现模块化程序设计的。所以较大的C语言应用程序,往往是由多个函数组成的,每个函数分别对应各自的功能模块。 (2)C程序由一个且只能有一个main和任意个函数组成。程序从main函数开始运行,调用其他函数后返回到main函数,并在main函数中结束整个程序的运行。 3.3.1 形式参数与实际参数 例3.3 #include stdio.h int max(int a,int b, int c) { int z; z=ab? a:b; z=zc? z:c; return (z); } main() { int a,b,c,result; scanf(%d,%d,%d,a,b,c); result=max(a,b,c); printf(Max is %d\n,result); } 3.4.3 main函数的参数 main函数可以带参数,用以从命令行(Command Line)上接受用户输入的参数,其原型为: int main(int argc, char *argv[]) 或 void main(int argc, char **argv) 如用户从命令行输入以下命令: C:\add 34 78 则argc=3即3个参数,argv数组中有三个字符串: argv[0]=”C:\add” argv[1]=”34” argv[2]=”78” 示例3.9如下: #include stdlib.h int main(int argc,char *argv[]) { int x,y,z; if(argc!=3) { printf(命令参数不对!\n); return -1; } x=atoi(argv[1]); /*字符串转换为相应的整数,原型在stdlib.h 中*/ y=atoi(argv[2]); z=x+y; /*现在可以运算了*/ printf(输入的命令为%s %s %s\n,argv[0],argv[1],argv[2]); printf(运行结果为: %d\n,z); return 0; } 数组用作函数参数有两种形式:数组元素(下标变量)作为实参;数组名作为函数的形参和实参。 【例3.12】判别一个整数数组中各元素的值,若大于0 则输出该值,若小于等于0则输出0值。 void nzp(int v) { if(v0) printf(%d ,v); else printf(%d ,0); } main() { int a[5],i; printf(input 5 numbers\n); for(i=0;i5;i++) { scanf(%d,a[i]); nzp(a[i]); } } 3.6.2 数组名作为函数的参数 数组名作函数参数时,既可以作形参,也可以作实参。 数组名作函数参数时,要求形参和相对应的实参都必须是类型相同的数组,都必须有明确的数组说明。 例3.13 已知某个学生5门课程的成绩,求平均成绩。 float aver(float a[ ]) /*定义求平均值函数,形参为一浮点型数组名*/ { int i; float av,s=a[0]; for(i=1;i5;i++) s += a[i]; av=s/5; return av; } void main() { float sco[5],av; int i; printf(\ninput 5 scores:\n); for(i=0;i5;i++) scanf(%f,sco[i
您可能关注的文档
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(3).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(4).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(5).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(6).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(7).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(8).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(9).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(10).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(1).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(2).ppt
原创力文档

文档评论(0)