第5章函数§数组作为函数参数§局部变量和全局变量数组作为函数参数⒈数组元素作函数实参数组元素作函数实参,与用变量作实参一样,是“单向的值传递”。例有两个数组a、b,各有5个元素,将它们对应地逐个相比(即a[0]与b[0]比,a[1]与b[1]比……)。如果a数组中的元素大于b数组中的相应元素的数目多余b数组中元素大于a数组中相应元素的数目(例如,a[i]>b[i]3次,b[i]>a[i]1次,其中每次为不同的值),则认为a数组大于b数组,并分别统计出两个数组相应元素大于、等于、小于的次数。#include<>intlarge(intx,inty);intmain(void){inta[5]={1,3,5,7,9},b[5]={5,3,8,9,-1},i,n=0,m=0,k=0;for(i=0;i<5;i++){if(large(a[i],b[i])==1) { n=n+1; }elseif(large(a[i],b[i])==0) { m=m+1; }else { k=k+1; }}printf(“a[i]>b[i]%dtimes\na[i]=b[i]%dtimes\n a[i]<b[i]%dtimes\n”,n,m,k); if(n>k) { printf(“arrayaislargerthanarrayb\n”); } elseif(n<k) { printf(“arrayaissmallerthanarrayb\n”); } else { printf(“arrayaisequaltoarrayb\n”); } return0;}intlarge(intx,inty){ intflag; if(x>y) { flag=1; } elseif(x<y) { flag=-1; } else { flag=0; } return(flag);}⒉数组名可作函数参数数组名作参数,此时实参与形参都应用数组名。例用选择法对数组中5个整数按由小到大排序。所谓选择法就是先将5个数中最小的数与a[0]对换;再将a[1]到a[4]中最小的数与a[1]对换……每比较一轮,找出一个未经排序的数中最小的一个。共比较4轮。思路:a[0]a[1]a[2]a[3]a[4]36194未排序时的情况16394第一轮13694第二轮13496第三轮13469第四轮#include<>voidsort(intb[],intn);intmain(void){inta[5]={3,6,1,9,4};inti;sort(a,5);printf(“thesortedarray:\n”);for(i=0;i<5;i++){ printf(“%d”,a[i]);}return0;}361943619436194a[0]a[1]a[2]a[3]a[4]b[0]b[1]b[2]b[3]b[4]voidsort(intb[],intn){inti,j,k,t;for(i=0;i<=n-2;i++){k=i;for(j=i+1;j<=n-1;j++){if(b[j]<b[k]){k=j;}}if(k!=i){ t=b[k]; b[k]=b[i]; b[i]=t;}}}:#include<>#include<>voidinverse(charstr[]){chart;inti,j;for(i=0,j=strlen(str);i<strlen(str)/2;i++,j--){t=str[i];str[i]=str[j-1];str[j-1]=t;}}intmain(void){charstr[100];scanf(“%s”,str);inverse(str);printf(“%s\n”,str);return0;}如果输入ananple,该程序的输出结果是()。A)ananple B)elpnana C)an D)()。#include<>f(intb[],intn){inti,r;r=1;for(i=0;i<=n;i++){r=r*b[i];}return(r);}intmain(void){intx,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf(“%d\n”,x);return0;}A)720 B)120 C)24 D)6
第5章 函数(数组作参数、变量的作用域和存储类别)ppt课件 来自淘豆网www.taodocs.com转载请标明出处.