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

上传人:平*** 文档编号:47702615 上传时间:2018-07-04 格式:PPT 页数:84 大小:1.12MB
返回 下载 相关 举报
2006年高考山东卷理科综合试题及参考答案_第1页
第1页 / 共84页
2006年高考山东卷理科综合试题及参考答案_第2页
第2页 / 共84页
2006年高考山东卷理科综合试题及参考答案_第3页
第3页 / 共84页
2006年高考山东卷理科综合试题及参考答案_第4页
第4页 / 共84页
2006年高考山东卷理科综合试题及参考答案_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《2006年高考山东卷理科综合试题及参考答案》由会员分享,可在线阅读,更多相关《2006年高考山东卷理科综合试题及参考答案(84页珍藏版)》请在金锄头文库上搜索。

1、1 第7章 函数 课堂提问 1.用循环编程计算输出6! 2.输入m,n,计算并输出Cnm =n!/(m!*(n-m)!)7.0 引例2 第八章 函数 7.1 概述-为什么要用函数为什么要用函数模块化程序设计 v基本思想:将一个大的程序按功能分割成一些小模块,v特点: l各模块相对独立、功能单一、结构清晰、接口简单 l控制了程序设计的复杂性 l提高元件的可靠性 l缩短开发周期 l避免程序开发的重复劳动 l易于维护和功能扩充 v开发方法: 自上向下,逐步分解,分而治之3 C是模块化程序设计语言C程序结构z=xy?x:y;return(z);例 有参函数(现代风格)int max(int x, y)

2、 int z;z=xy?x:y;return(z);例 空函数dummy( ) 函数体为空例 无参函数printstar( ) printf(“*n”); 或printstar(void ) printf(“*n”); 7 7.3 7.3 调用函数调用函数7.3.1函数调用的形式 7.3.2函数调用时的数据传递 7.3.3函数调用的过程 7.3.4函数的返回值8 7.3.17.3.1函数调用的形式函数调用的形式 按函数调用在程序中出现的形式和位置来分, 可以有以下3种函数调用方式: . 函数调用语句 如 printf_star(); 这时不要求函数带回值,只要求函数完成一定 的操作 2.函数调

3、用出现在另一个表达式中如c=max(a,b); . 函数参数 函数调用作为另一函数调用时的实参如mmax(a,max(b,c);9 7.3.2 7.3.2 函数调用时的数据传递函数调用时的数据传递 1.形式参数和实际参数在调用有参函数时,主调函数和被调用函数之 间有数据传递关系 定义函数时函数名后面的变量名称为“形式参 数”(简称“形参”)主调函数中调用一个函数时,函数名后面参数 称为“实际参数”(调用函数时函数名后面括号 中的表达式,简称“实参”) 实际参数可以是常量、变量或表达式10 7.3.2 7.3.2 函数调用时的数据传递函数调用时的数据传递c=max(a,b);(main 函数)(

4、max 函数)max(int x, int y) int z;z=xy?x:y;return(z); 例7.2输入两个整数,要求输出其中值较大者。要求用函数来找到大数。main() int a,b,c;scanf(“%d,%d“,c=max(a,b);printf(“Max is %d“,c); max(int x, int y) int z;z=xy?x:y;return(z); 形参实参11 v说明: l实参必须有确定的值 l形参必须指定类型 l形参与实参类型一致,个数相同 l若形参与实参类型不一致,自动按形参类型转换函数 调用转换 l形参在函数被调用前不占内存;函数调用时为形参分配内存

5、;调用结束,内存释放 7.3.2 7.3.2 函数调用时的数据传递函数调用时的数据传递 形参与实参 v形式参数:定义函数时函数名后面括号中的变量名 v实际参数:调用函数时函数名后面括号中的表达式12 例 计算x的立方#include float cube(float x) return(x*x*x); main() float a, product;printf(“Please input value of a:“);scanf(“%f“,product=cube(a);printf(”Cube of %.4f is %.4fn“,a,product); xa product 1.21.21.

6、72813 参数传递方式 v值传递方式 l方式:函数调用时,为形参分配单元,并将实参的值复制到形参 中;调用结束,形参单元被释放,实参单元仍保留并维持原值 l特点: u形参与实参占用不同的内存单元 u单向传递14 v地址传递 l方式:函数调用时,将数据的存储地址作为参数传递给形参 l特点: u形参与实参占用同样的存储单元 u“双向”传递u实参和形参必须是地址常量或变量15 #include long sum(int a, int b);long factorial(int n); main() int n1,n2;long a;scanf(“%d,%d“,a=sum(n1,n2);printf

7、(“a=%1d“,a); long sum(int a,int b) long c1,c2;c1=factorial(a);c2=factorial(b);return(c1+c2); long factorial(int n) long rtn=1;int i;for(i=1;i int main() int max(float x,float y);float a,b; int c;scanf(“%f,%f,“,c=max(a,b);printf(“max is %dn“,c);return 0; int max(float x,float y) float z; z=xy?x:y;ret

8、urn( z ) ; 1.52.62.62变为220 printstar() printf(“*“); main() int a;a=printstar();printf(“%d“,a); 例 函数带回不确定值输出:10void printstar() printf(“*“); main() int a;a=printstar();printf(“%d“,a); 编译错误!21 例 函数返回值类型转换 main() float a,b;int c;scanf(“%f,%f“,c=max(a,b);printf(“Max is %dn“,c); max(float x, float y) flo

9、at z;z=xy?x:y;return(z); 22 7.4对被调用函数的声明和函数原型调用形式函数名(实参表);说明: l实参与形参个数相等,类型一致,按顺序一一对应 l实参表求值顺序,因系统而定(Turbo C 自右向左)23 调用方式 v函数语句:例 printstar();printf(“Hello,World!n”);v函数表达式:例 m=max(a,b)*2;v函数参数:例 printf(“%d”,max(a,b);m=max(a,max(b,c);24 函数声明 v对被调用函数要求: l必须是已存在的函数 l库函数: #include l用户自定义函数: 函数类型说明 v函数声

10、明 l一般形式: 函数类型 函数名(形参类型 形参名,. );或 函数类型 函数名();l作用:告诉编译系统函数类型、参数个数及类型,以便检验 l函数定义与函数说明不同 l函数说明位置:程序的数据说明部分(函数内或外) l下列情况下,可不作函数说明 u若函数返值是char或int型,系统自动按int型处理u被调用函数定义出现在主调函数之前 l有些系统(如Borland C+)要求函数说明指出函数返值类型和形 参类型,并且对void 和 int 型函数也要进行函数说明25 函数声明举例 /*例7.4 输入两个实数,用一个函数求出它们之和*/main() float a,b;int c;scanf

11、(“%f,%f“,c=max(a,b);printf(“Max is %dn“,c); max(float x, float y) float z;z=xy?x:y;return(z); int型函数可不作函数说明 (Borland C+不行)/*ch7_5.c*/ float add(float x, float y) float z;z=x+y;return(z); main() float a,b,c;scanf(“%f,%f“,c=add(a,b);printf(“sum is %f“,c); 被调函数出现在主调函数 之前,不必函数说明main() float add(float,fl

12、oat); /*function declaration*/float a,b,c;scanf(“%f,%f“,c=add(a,b);printf(“sum is %f“,c); float add(float x, float y) /*注意定义处无引号*/ float z;z=x+y;return(z); float add();26 7.5 函数的嵌套 嵌套调用 C规定:函数定义不可嵌套,但可以嵌套调用函数main( )调用函数a结束a函数b函数调用函数b 27 例 求三个数中最大数和最小数的差值#include int dif(int x,int y,int z);int max(in

13、t x,int y,int z);int min(int x,int y,int z); void main() int a,b,c,d;scanf(“%d%d%d“,d=dif(a,b,c);printf(“Max-Min=%dn“,d);Ch7_202.cint dif(int x,int y,int z) return max(x,y,z)-min(x,y,z); int max(int x,int y,int z) int r;r=xy?x:y;return(rz?r:z); int min(int x,int y,int z) int r;r=x int fac(int n) int

14、 f;if(n void main() void hanoi(int n,char one,char two,char three); /* 对hanoi函数的声明 */int m;printf(“input the number of diskes:“);scanf(“%d”,printf(“The step to moveing %d diskes:n“,m);hanoi(m,A,B,C);36 void hanoi(int n,char one,char two,char three) /* 定义hanoi函数,将个盘从one座借助two座,移到 three座 */void move(c

15、har x,char y); /* 对move函数的声明 */if(n=1) move(one,three);else hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three); void move(char x,char y) /* 定义move函数 */printf(“%c%cn“,x,y);37 运行情况如下: input the number of diskes:3The steps to noving 3 diskes: 38 7.7 数组作为函数参数 7.7.17.7.1数组元素作函数实参数组元素作函数实参 数组元素作函数实参值传递例7.9 输入10个数,要求输出其中值最大的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 教学课件

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