资源描述:
《c语言程序设计技术(下)ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、TheCProgrammingLanguageC语言程序设计技术(下)TheCProgrammingLanguage第11讲函数(1)一.函数的定义与调用1.函数的定义<函数类型标识符><函数名>(<虚参>){〈函数体〉}2.函数值非void型函数的函数值必须用return语句返回。3.函数调用<函数名>(<实参>);例如:c=2*max(13,25)m=max(a,max(b,c))说明:(1)调用函数前,应对函数原型进行声明(2)实参的个数必须与虚参个数相同,类型必须匹配(3)实参可以是一个表达式,虚参只能是变量(4)当虚参是一个指针或数组时
2、,实参与虚参的值双向传递(5)函数不能嵌套定义,但可嵌套调用(6)函数的实参类型与虚参类型不相同时将实参转换为虚参的类型(7)函数的返回值与函数类型不相同时将返回值转换为函数值的类型。例1(P106例4-2).已知a=2,b=3,求a+b的值。#include#includevoidmain(void){intadd(intx,inty);inta=2,b=3,c;clrscr();c=add(a,b);printf("%d+%d=%d",a,b,c);getch();}/*求和*/intadd(intx,
3、inty){intt;printf("x和y的值分别是:%d,%d",x,y);t=x+y;x=2*x;y=2*y;printf("改变后的x和y的值分别是:%d,%d",x,y);returnt;}二.函数嵌套调用在一个子函数中调用另一个函数称为函数嵌套调用例2(P125例4-14).从键盘输入一正整数limit(limit>=6),验证从6到n之间的所有偶数都可以分解为两个奇素数之和。例如98=19+79#include#include#includevoidmain(void){i
4、ntprime(intm);intn,a,b,limit;clrscr();while(1){printf("Input1number(>=6):");scanf("%d",&limit);if(limit>=6)break;}for(n=6;n<=limit;n+=2)for(a=3;a<=n/2;a+=2)if(prime(a)){b=n-a;if(prime(b)){printf("%d=%d+%d",n,a,b);break;}}getch();}/*判断一个数是否为素数*/intprime(intm){inti,k;k=sq
5、rt(m)+1;for(i=2;ivoidmain(void){voidprintd(longn);longn;scanf("%ld",&n);printd(n);}voidprin
6、td(longn){if(n<0){putchar('-');n=-n;}putchar(n%10+'0');if(n/10)printd(n/10);}二.局部变量和全局变量1.在函数内部定义的变量称为局部变量。2.在函数外部定义的变量称为全局变量。说明:(1)局部变量只在函数内部起作用,函数结束时,所占内存空间被释放(2)全局变量在定义它的后面任一个函数中都起作用(3)全局变量与局部变量同名时,使用局部变量。(4)函数的虚参视同局部变量例2(P113例4-7).分析程序运行结果。#includeinty,z;voidmain
7、(void){voidabc(intx);intx;x=10;y=20;z=30;printf("ok1:x=%dy=%dz=%d",x,y,z);abc(x);printf("ok2:x=%dy=%dz=%d",x,y,z);}voidabc(intx){inty;printf("ok3:x=%dy=%dz=%d",x,y,z);x=100;y=200;z=300;printf("ok4:x=%dy=%dz=%d",x,y,z);}例3(P126例4-15).输入100个整型数,寻找其最大值和最小值。#include8、.h>#includeintMax,Min;voidmain(void){voidfind(inta[],intn);