函数的分类 从使用角度: 库函数:直接使用(调用) 自定义函数:用户需要自己先定义,然后使用。 根据返回值: 有返回值:需要返回计算结果 无返回值:不需要返回计算(处理)结果 根据参数: 无参函数: cIrscr 有参函数:pow(xy) 16
16 函数的分类 ▪ 从使用角度: ▪ 库函数 :直接使用(调用) ▪ 自定义函数:用户需要自己先定义,然后使用。 ▪ 根据返回值: ▪ 有返回值:需要返回计算结果 ▪ 无返回值:不需要返回计算(处理)结果 ▪ 根据参数: ▪ 无参函数:clrscr() ▪ 有参函数:pow(x,y)
函数声明 函数声明也称为函数原型 在调用之前一定要对函数进行声明,否 则在编译时会出现" function大大★ not define的提示 如果函数定义在函数调用之前,函数声 明可以省略。 17
17 函数声明 ▪ 函数声明也称为函数原型 ▪ 在调用之前一定要对函数进行声明,否 则在编译时会出现"function *** not define!"的提示 ▪ 如果函数定义在函数调用之前,函数声 明可以省略
也可以写成 #include <stdio. h> 函数功能:计算梯形面积并输出 函数形式参数: float a表示上底,floα↑b表示下底, float h 表示高 函数返回值:无* void Area(float a, float b, float h printf" area=%f . (a+b)*h/2): void maino [ float a, b,h; printf(" please input a, b, h: ) scanf( %d%d %d",&a, &b, &h): Area(a,bh):腆调用函数计算面积并输出
18 也可以写成 #include<stdio.h> /*函数功能:计算梯形面积并输出 函数形式参数: float a表示上底,float b表示下底, float h 表示高 函数返回值:无*/ void Area(float a,float b, float h) { printf("area=%f", (a+b)*h/2); } void main() { float a,b,h; printf(" please input a,b,h: "); scanf("%d%d%d", &a, &b, &h); Area(a,b,h); /*调用函数计算面积并输出*/ }
多函数程序的调试方法 要想检验一个函数是否正确,要在调用 函数处设置断点。当调试执行时,在该 行停止,此时,点击bud> step into 进入函数内部执行,此时可点击buld > step over单步跟踪执行,或在调试前 在函数内部重点检查语句行设置断点。 若想结束函数内部的执行,点击bu|d > step out,回到主调函数 19
19 多函数程序的调试方法 ▪ 要想检验一个函数是否正确,要在调用 函数处设置断点。当调试执行时,在该 行停止,此时,点击build->step into 进入函数内部执行,此时可点击build- >step over单步跟踪执行,或在调试前 在函数内部重点检查语句行设置断点。 若想结束函数内部的执行,点击build- >step out,回到主调函数
练习1:编写函数,将小写字母恩 Include <stdio. h> char atoA(cha):/函数声明*/ *函数功能:将小写字母转换成大写字母 函数形式参数:小写字母 char lower 函数返回值:转换成的大写字母,char类型* char atoA(char lower) return (lower-32) void maino char lower, upper printf( please input an lowercase: ) scanf( %c",&lower) upper= atoA(lower): printf lower: %c->upper: %c\n", lower, upper);
20 练习1:编写函数,将小写字母 #include <stdio.h> 转换成大写字母 char atoA(char);/*函数声明*/ /* 函数功能:将小写字母转换成大写字母 函数形式参数:小写字母char lower 函数返回值:转换成的大写字母,char类型*/ char atoA(char lower) { return (lower-32); } void main() { char lower,upper; printf(" please input an lowercase: "); scanf("%c", &lower); upper= atoA(lower); printf(" lower:%c->upper:%c\n", lower,upper); }