2006年高考山东卷理科综合试题及参考答案.ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:84 大小:2.3MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

2006年高考山东卷理科综合试题及参考答案.ppt

2006年高考山东卷理科综合试题及参考答案.ppt

预览

免费试读已结束,剩余 74 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章函数第八章函数C是模块化程序设计语言函数分类从用户角度标准函数(库函数):由系统提供用户自定义函数从函数形式无参函数有参函数7.2函数的定义一般格式7.3调用函数7.3.1函数调用的形式7.3.2函数调用时的数据传递7.3.2函数调用时的数据传递说明:实参必须有确定的值形参必须指定类型形参与实参类型一致,个数相同若形参与实参类型不一致,自动按形参类型转换———函数调用转换形参在函数被调用前不占内存;函数调用时为形参分配内存;调用结束,内存释放例计算x的立方参数传递方式值传递方式方式:函数调用时,为形参分配单元,并将实参的值复制到形参中;调用结束,形参单元被释放,实参单元仍保留并维持原值特点:形参与实参占用不同的内存单元单向传递地址传递方式:函数调用时,将数据的存储地址作为参数传递给形参特点:形参与实参占用同样的存储单元“双向”传递实参和形参必须是地址常量或变量#include<stdio.h>longsum(inta,intb);longfactorial(intn);main(){intn1,n2;longa;scanf("%d,%d",&n1,&n2);a=sum(n1,n2);printf("a=%1d",a);}longsum(inta,intb){longc1,c2;c1=factorial(a);c2=factorial(b);return(c1+c2);}7.3.3函数调用的过程7.3.3函数调用的过程7.3.4函数的返回值返回语句形式:return(表达式);或return表达式;或return;功能:使程序控制从被调用函数返回到调用函数中,同时把返值带给调用函数说明:函数中可有多个return语句,执行到哪一个return语句,哪一个就起作用若无return语句,遇}时,自动返回调用函数若函数类型与return语句中表达式值的类型不一致,按前者为准,自动转换------函数调用转换void型函数#include<stdio.h>intmain(){intmax(floatx,floaty);floata,b;intc;scanf("%f,%f,",&a,&b);c=max(a,b);printf("maxis%d\n",c);return0;}intmax(floatx,floaty){floatz;z=x>y?x:y;return(z);}printstar(){printf("**********");}main(){inta;a=printstar();printf("%d",a);}例函数返回值类型转换7.4对被调用函数的声明和函数原型调用形式函数名(实参表);说明:实参与形参个数相等,类型一致,按顺序一一对应实参表求值顺序,因系统而定(TurboC自右向左)调用方式函数语句:例printstar();printf(“Hello,World!\n”);函数表达式:例m=max(a,b)*2;函数参数:例printf(“%d”,max(a,b));m=max(a,max(b,c));函数声明对被调用函数要求:必须是已存在的函数库函数:#include<*.h>用户自定义函数:函数类型说明函数声明一般形式:函数类型函数名(形参类型[形参名],…..);或函数类型函数名();作用:告诉编译系统函数类型、参数个数及类型,以便检验函数定义与函数说明不同函数说明位置:程序的数据说明部分(函数内或外)下列情况下,可不作函数说明若函数返值是char或int型,系统自动按int型处理被调用函数定义出现在主调函数之前有些系统(如BorlandC++)要求函数说明指出函数返值类型和形参类型,并且对void和int型函数也要进行函数说明函数声明举例/*例7.4输入两个实数,用一个函数求出它们之和*/7.5函数的嵌套嵌套调用C规定:函数定义不可嵌套,但可以嵌套调用函数例求三个数中最大数和最小数的差值7.6函数的递归调用定义:函数直接或间接的调用自身叫函数的递归调用例7.8求n的阶乘课堂提问:例7.9Hanoi(汉诺)塔问题。这是一个古典的数学问题,是一个用递归方法解题的典型例子。问题是这样的:古代有一个梵塔,塔内有3个座A、B、C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上(见图7.13)。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求编程序打印出移动的步骤。为便于理解,我们先分析将A座上3个盘子移到