欢迎来到天天文库
浏览记录
ID:52266814
大小:484.51 KB
页数:49页
时间:2020-04-03
《C语言程序设计教程CJ04模块化程序设计New潭浩强第.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、辽宁师范大学计算机与信息技术学院蔡静C语言程序设计目录C语言程序设计初步数据描述与基本操作C程序的流程控制函数数组指针结构体和共用体位运算文件综合应用第四章函数4.1函数概述4.2变量的存储属性4.3编译预处理4.1函数4.1.1设计C语言的程序就是设计函数函数:把对应于一个问题求精的程序写在一起,作为一个单独的程序模块,称为函数。函数源程序文件C程序函数的分类从用户角度分标准函数/库函数用户自定义函数按函数形式分有参函数无参函数例4.1:4辽宁师范大学蔡静说明:类型说明符:表示函数返回值的类型有返回值的:是某种类型(缺
2、省为int或char)无返回值的:是void函数名:命名规则同标识符(且见名知义),函数名后紧跟一对小括号(无分号),且其后无分号。4.1.2函数定义的一般形式1.无参函数类型说明符函数名(){函数体}2.有参函数类型说明符函数名(形参说明表列){函数体}辽宁师范大学蔡静形参说明表列写法:类型说明符形参[,类型说明符形参[…..]]形参与实参的类型、个数、位置必须一致。调用过程中存储空间的分配实参可为常量、变量或表达式,各实参间用逗号分隔值传递(实参形参)函数体一般包括说明定义部分和语句序列也可为空,即占位以等待扩充功能。voi
3、d函数名(void){}空函数辽宁师范大学蔡静函数的返回-------RETURN语句格式:retnrn(…..);…..的类型应与函数类型一致,否则将之转化为指定类型。函数中可以有多个retnrn语句,执行到的第一个语句即为被调用函数的结束。return后的小括号可以省略。函数定义的外部性:函数不能嵌套定义(可以嵌套调用),一个函数不能定义在别的函数的内部。各函数相互独立。辽宁师范大学蔡静intabsolutevalue(intx){return(x>=0?x:-x);}voidspc(intn){inti;for(i=0;i4、+);printf(″″);return;}辽宁师范大学蔡静4.1.3函数定义与函数声明在主调函数中要对在本函数中被调用的函数事先声明。标准函数的声明#include<文件名>#include“文件名”自定义函数的声明:在调用函数之前说明被调用函数。格式:类型说明符函数名(形参说明表列);说明:函数类型为int、char可以不作声明;被调用函数定义在调用函数之前,可不作说明;在所有函数定义之前声明,则在主调用函数中不再声明。一般,在文件开头,main()之外,声明函数。注意:函数声明是一个语句,后跟分号9辽宁师范大学蔡静4.1.4函数的调用调5、用的一般形式函数名(实参表列)调用的方式函数语句……(…..);如:do_some();draw(20);printf(“**”);函数表达式如:c=max(a,b);c=max(a,b)*2+3;函数作为另一函数的参数。如:printf(“%d”,max(a,b));d=max(a,max(b,c));10辽宁师范大学蔡静函数的调用是传值调用:一个入口:实参值传给形参。过程:形参在调用前不占内存,调用时才被分配存储单元,然后将实参值传给形参。一个出口:函数返回值。main(){…....f1();……f2();…...}f1(){…....f6、11();……}f2(){…....f21();……f22();….}f11(){…....}f21(){…....}f22(){…....}11辽宁师范大学蔡静例1:#include"stdio.h"intadd();voidmain(){intx=3,y=7;printf("%d+%d=%d",x,y,add(x,y));}intadd(inta,intb){return(a+b);}12辽宁师范大学蔡静例2:voidswap(intx,inty){inttemp;printf("swap()中——交换前:");printf("x=7、%d,y=%d",x,y);temp=x,x=y,y=temp;printf("swap()中——交换后:");printf("x=%d,y=%d",x,y);}//这样能交换变量的值?#include"stdio.h"voidswap(intx,inty);intmain(void){inta=3,b=5;printf("main()中——交换前:");printf("a=%d,b=%d",a,b);swap(a,b);printf("main()中——交换后:");printf("a=%d,b=%d",a8、,b);return0;}13辽宁师范大学蔡静4.1.5函数的嵌套调用例CJ_Combination.c:求的值。1.接收
4、+);printf(″″);return;}辽宁师范大学蔡静4.1.3函数定义与函数声明在主调函数中要对在本函数中被调用的函数事先声明。标准函数的声明#include<文件名>#include“文件名”自定义函数的声明:在调用函数之前说明被调用函数。格式:类型说明符函数名(形参说明表列);说明:函数类型为int、char可以不作声明;被调用函数定义在调用函数之前,可不作说明;在所有函数定义之前声明,则在主调用函数中不再声明。一般,在文件开头,main()之外,声明函数。注意:函数声明是一个语句,后跟分号9辽宁师范大学蔡静4.1.4函数的调用调
5、用的一般形式函数名(实参表列)调用的方式函数语句……(…..);如:do_some();draw(20);printf(“**”);函数表达式如:c=max(a,b);c=max(a,b)*2+3;函数作为另一函数的参数。如:printf(“%d”,max(a,b));d=max(a,max(b,c));10辽宁师范大学蔡静函数的调用是传值调用:一个入口:实参值传给形参。过程:形参在调用前不占内存,调用时才被分配存储单元,然后将实参值传给形参。一个出口:函数返回值。main(){…....f1();……f2();…...}f1(){…....f
6、11();……}f2(){…....f21();……f22();….}f11(){…....}f21(){…....}f22(){…....}11辽宁师范大学蔡静例1:#include"stdio.h"intadd();voidmain(){intx=3,y=7;printf("%d+%d=%d",x,y,add(x,y));}intadd(inta,intb){return(a+b);}12辽宁师范大学蔡静例2:voidswap(intx,inty){inttemp;printf("swap()中——交换前:");printf("x=
7、%d,y=%d",x,y);temp=x,x=y,y=temp;printf("swap()中——交换后:");printf("x=%d,y=%d",x,y);}//这样能交换变量的值?#include"stdio.h"voidswap(intx,inty);intmain(void){inta=3,b=5;printf("main()中——交换前:");printf("a=%d,b=%d",a,b);swap(a,b);printf("main()中——交换后:");printf("a=%d,b=%d",a
8、,b);return0;}13辽宁师范大学蔡静4.1.5函数的嵌套调用例CJ_Combination.c:求的值。1.接收
此文档下载收益归作者所有