中国石油大学c语言课件第9章_函数[1]

上传人:子 文档编号:57142218 上传时间:2018-10-19 格式:PPT 页数:75 大小:1.41MB
返回 下载 相关 举报
中国石油大学c语言课件第9章_函数[1]_第1页
第1页 / 共75页
中国石油大学c语言课件第9章_函数[1]_第2页
第2页 / 共75页
中国石油大学c语言课件第9章_函数[1]_第3页
第3页 / 共75页
中国石油大学c语言课件第9章_函数[1]_第4页
第4页 / 共75页
中国石油大学c语言课件第9章_函数[1]_第5页
第5页 / 共75页
点击查看更多>>
资源描述

《中国石油大学c语言课件第9章_函数[1]》由会员分享,可在线阅读,更多相关《中国石油大学c语言课件第9章_函数[1](75页珍藏版)》请在金锄头文库上搜索。

1、第9章 函数,2,回顾,字符串常量 字符串与字符数组 字符串输入/输出函数 常用字符串函数 strlen strcpy strcmp strcat strrev strlwr strupr,3,教学目标,描述 C 语言中的函数 掌握 C 语言中常见的内置函数 理解函数原型和函数的返回值 熟练掌握自定义函数的定义和调用 理解变量的作用域 理解变量的存储类型 理解两种参数传递的方式:传值、引用 熟悉带参函数的调用 熟练使用数组作为函数参数,4,程序设计的艺术,三国演义中有这样一段描写: 懿问曰:“孔明寝食及事之烦简若何?”使者曰:“丞相夙兴夜寐,罚二十以上皆亲览焉。所啖之食,日不过数升。”懿顾谓诸

2、将曰:“孔明食少事烦,其能久乎?” 此话音落不久,诸葛亮果然病故于五丈原。 “事无巨细”,“事必躬亲” 管理学的观点是极其排斥这种做法的,认为工作必须分工,各司其职 其中的思想,在程序设计里也适用,5,程序设计的艺术,结构化程序设计有两大最高级的艺术 算法设计艺术 结构设计艺术 C语言为程序的结构提供了两样武器 函数和模块 函数(function)是结构设计的最基本单位 “一个程序应该是轻灵自由的,它的子过程就象串在一根线上的珍珠。” Geoffrey James的编程之道,6,数学函数,自变量,因变量,函数名,7,数学函数,一个自变量,一个因变量,两个自变量,一个因变量,8,数学函数,自变量

3、,因变量,9,数学函数,一个变量 二个变量N个变量,一个变量 二个变量N个变量,自变量与 因变量的关系,10,数学函数,集合A,关系,集合B,11,int main(void) :x=x*x*x;y=y*y*y;z=z*z*z;ans1=x+y+z;a=a*a*a;b=b*b*b;c=c*c*c;ans2=a+b+c;: ,为什么使用函数,重复多次的同一计算类型,int main(void) :ans1=cube(x,y,z);ans2=cube(a,b,c);: ,int cube(int a,int b,int c) int ans;ans=(a*a*a)+(b*b*b)+(c*c*c);

4、return ans; ,函数,主程序,ans,函数可以把相对独立的某个功能抽象出来,使之成为程序中的一个独立实体。可以在同一个程序或其他程序中多次重复使用,12,程序设计中的函数,程序设计中的函数不局限于计算 计算类,如打印阶乘表的程序 判断推理类,如排序、查找,13,用函数解决问题的要点,分而治之 函数把较大的任务分解成若干个较小的任务,并提炼出公用任务 复用 程序员可以在其他函数的基础上构造程序,而不需要从头做起 信息隐藏 设计得当的函数可以把具体操作细节对程序中不需要知道它们的那些部分隐藏掉,从而使整个程序结构清楚,14,函数机制的优点,使程序变得更简短而清晰 有利于程序维护 可以提高

5、程序开发的效率 提高了代码的重用性,15,C语言中的函数,说明: 一个源程序文件由一个或多个函数组成。 一个C程序由一个或多个源程序文件组成。 C程序的执行从main函数开始,调用其他函数后流程回到main函数,在main函数中结束整个程序运行。 所有函数都是平行的,即函数定义时是互相独立的,一个函数并不从属于另一个函数。,16,函数类型,内置函数: 由语言系统提供; 用户无须定义,也不必在程序中作类型说明; 只需在程序前包含有该函数定义的头文件;,自定义函数: 用户在程序中根据需要而编写的函数;,17,常用内置函数,18,问题描述: 求自然数110的平方根和立方。,内置函数sqrt 和pow

6、 示例,2,6,64,#include #include int main(void) int x=1;double squareroot,power;while(x = 10)squareroot=sqrt(x);power=pow(x,3);printf(“ %d的平方根:%3.2ft%d的立方:%5.0f n“,x,squareroot,x,power);x+;return 0; ,1的平方根: 1.00 1的立方: 12的平方根: 1.41 2的立方: 83的平方根: 1.73 3的立方: 274的平方根: 2.00 4的立方: 645的平方根: 2.24 5的立方: 1256的平方根

7、: 2.45 6的立方: 2167的平方根: 2.65 7的立方: 3438的平方根: 2.83 8的立方: 5129的平方根: 3.00 9的立方: 729 10的平方根: 3.16 10的立方: 1000 Press any key to continue,19,内置函数ceil和floor示例,2,6,64,#include #include int main(void) printf(“=floor()=“);printf(“n floor(99.1) = %f n“,floor(99.1);printf(“ floor(-99.1) = %fn“,floor(-99.1);print

8、f(“ floor(99.9) = %fn“,floor(99.9);printf(“ floor(-99.9) = %fn“,floor(-99.9);printf(“n=ceil()=“);printf(“n ceil(99.1) = %fn“,ceil(99.1);printf(“ ceil(-99.1) = %fn“,ceil(-99.1);printf(“ ceil(99.9) = %fn“,ceil(99.9);printf(“ ceil(-99.9) = %fn“,ceil(-99.9);return 0; ,=floor()=floor(99.1) = 99.000000flo

9、or(-99.1) = -100.000000floor(99.9) = 99.000000floor(-99.9) = -100.000000=ceil()=ceil(99.1) = 100.000000ceil(-99.1) = -99.000000ceil(99.9) = 100.000000ceil(-99.9) = -99.000000 Press any key to continue,20,toupper和tolower示例,2,6,64,#include #include int main(void) char msg1,msg2,to_upper,to_lower;print

10、f(“请输入一个小写字母:“);msg1=getchar();to_upper=toupper(msg1);printf(“转换为大写:%cn“,to_upper);printf(“请输入一个大写字母:“);fflush(stdin);msg2=getchar();to_lower=tolower(msg2);printf(“转换为小写:%cn“,to_lower);return 0; ,请输入一个小写字母:d 转换为大写:D 请输入一个大写字母:E 转换为小写:e Press any key to continue,21,内置函数rand示例,2,6,64,#include #include

11、 /#include int main(void) int i; printf(“产生 10 个 0 到 99 之间的随机数序列:nn“); /srand(unsigned)time(NULL);for(i=0; iy?x:y;return m; ,该函数名为max,它有两个double类型的参数,返回值为double类型。在函数体内有三条语句实现了求两个数中较大的数,并将它返回。,27,计算打折函数,void displayDiscount() float price, discount_amt;printf(“请输入价格“);scanf(“%f, ,该函数名为displayDiscount

12、,无参数,使用void说明无返回值,函数体内的语句用于根据产品的价格求折扣后的价格。,28,函数参数,形参( 形式参数 ): 在定义函数时,定义函数名后面括号中的变量名实参( 实际参数 ): 在主调函数中调用一个函数,调用函数名后面括号中的参数(或表达式),29,函数调用,通过在程序中使用函数名称,可以执行函数中包含的语句,这称为调用函数 单向值传递 调用函数时,必须提供所有的参数 printf和scanf是采用变长变量表定义的函数,所以变量的个数不固定。 提供的参数个数、类型、顺序应与定义时相同,30,函数调用,int main() int a = 12;int b = 24;int ave

13、;ave = Average(a, b);printf(“Average of %d and %d is %d.n“, a, b, ave);return 0; ,31,函数调用,有返回值时 放到一个数值表达式中 如c = max(a,b); 作为另一个函数调用的参数 如c = max(max(a,b),c);printf(“%dn“, max(a,b); 无返回值时 函数调用表达式 如display(a,b);,32,函数原型,调用一个函数之前,先要对其返回值类型、函数名和参数进行声明(declare) 有助于编译器进行类型检查 函数原型说明在形式上与函数头部类似,最后加一个分号。原型说明中参数表里的参数名可以不写(只写参数类型)。 声明时不要省略参数以及返回值的类型,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号