预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共72页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

本章要讨论相关函数以下一些问题:函数定义函数定义普通形式、函数参数和函数返回值。函数调用函数调用方式、函数间参数传递、函数嵌套调用、函数递归调用等。变量存放特征函数内说明变量及函数外说明变量使用问题。本章学习难点:函数间参数传递,函数递归调用。例:输入两个整数数组,先将两个数组分别按从大到小排序后,再将两个数组元素按从大到小合并排序,在合并后数组中相同数字只出现一次。main(){变量定义;输入数组a;输入数组b;数组a排序;数组b排序;数组a和数组b合并排序到数组c;输出数组c;}变量定义;输入数组a;输入数组b;数组a排序;数组b排序;将重复部分,编写为一个函数,将合并排序也编写为一个函数。main(){inti,j,k=0,m,n,a[20],b[20],c[40];input(a,m);input(b,n);sort(a,m);sort(b,n);combine(a,b,c);output(a);output(b);}sort(d,h)intd[],h;for(i=0;i<h-1;i++)for(j=0;j<h-i-1;j++)if(d[j]>d[j+1]){temp=d[j];d[j]=d[j+1];d[j+1]=temp;}合并排序思绪;假如数组a和数组b都没有结束{比较a[i]和b[j]大小假如a[i]小,则将a[i]赋给c[k],i++,k++;不然则将b[j]赋给c[k],j++,k++;}假如数组a没有结束,将数组a余下元素赋给数组c;假如数组b没有结束,将数组b余下元素赋给数组c;删除数组c中重复元素;合并程序:for(i=0,j=0;i<m&&j<n;)if(a[i]<b[j])c[k++]=a[i++];elsec[k++]=b[j++];combine(inta[],b[],c[],m,n){inti,j,k=0;for(i=0,j=0;i<m&&j<n;)c[k++]=a[i]<b[j]?a[i++]:b[j++];while(i<m)c[k++]=a[i++];while(j<n)c[k++]=b[j++];i=1;while(i<k){if(c[i]==c[i-1]){for(j=i+1;j<k;j++)c[j-1]=c[j];k--;}elsei++;}}模块化是结构化程序设计基础。采取模块化设计有很多优越性:控制程序设计复杂性,提升软件可靠性,提升软件开发效率,提升软件可维护性,提升程序重用性。函数是C程序最小单元。C程序是由一个主函数以及若干个函数组成。主函数能够调用其它函数,其它函数能够相互调用。比如:main(){printf(“ThisisCprogram\n”);}就是main函数调用了printf函数。为了完成一个特定任务,在程序开发中普通要定义若干函数。例:求最大值main(){inta,b,c;printf(“Entera,b\n”);scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“Max=%d”,c);}intmax(x,y)intx,y;{intz;z=x>y?x:y;return(z);}一、函数定义普通形式形式参数表是用逗号分开一组变量,用来接收调用时传入数据。例中:intmax(x,y)形式参数类型在‘{}’外面对形式参数类型进行说明。例中:intx,y;无参函数函数能够没有形式参数。函数数据类型就是函数返回值类型,称为函数类型。返回值靠return(表示式)语句,将表示式值返回给调用它函数。返回语句格式:return(表示式);或:return表示式;函数能够没有返回值,即void型函数。void型函数没有return语句。假如return语句中表示式值类型和函数类型不一致,则表示式值类型被自动转换成函数类型,然后在返回。1.表示式方式函数调用出现在表示式中,函数返回值参加表示式运算。2.函数语句例:main(){inta;scanf("%d",&a);disp(a);}voiddisp(intx){if(x>0)printf("Thisispositive.\n");elseif(x==0)printf("Thisiszero.\n");elseprintf(“Thisisnegative.\n”);}3.作为函数参数main(){inta,b;printf("Entera,b:\n");scanf("%d,%d",&a,&b);printf("Max=%d",max(a,b));}依据C语言标识符必须先说明后使用要求,函数调用时:在主调函数中,要说明被调函数类型。在主调函数中所说明被调函数类型,必须和被调函数实际类型一致。重新考查例C8_301得到结论1.在同一个源程序文件中被调函数定义在前,主调函数定义在后,则在主调函数中无