函数练习题(参数为数组类型) Part 1 Step 1: 运行以下程序,分析程序功能。冒泡法 #include#define N 10 void sort(int x[],int n) { int i,j,temp; for (i=0; i x[j+1]) { temp=x[j]; x[j]=x[j+1]; x[j+1]=temp; } return ; } int main() { int a[N]={5,3,8,7,9,2,1,6,4,0}; int i; printf("before sorted:"); for (i=0; i #include #include #define N 100 int main() { int a[N]; int i; srand(time(0));//设置当前时间为种子 for(i=0;i x[j+1]) { temp=x[j]; x[j]=x[j+1]; x[j+1]=temp; } } if(flag==0) { for (i=0;i a[j]) t=a[i];a[i]=a[j];a[j]=t; } return 0; } 主函数修改如下: int main() { void sort_d(int x[],int n); int a[N],int b[N]; for(i=0;i #define N 50 int main() { char data[N] ; int length; scanf("%s",data); length=strlen(data); printf("length=%dn",length); return 0; } (*大家注意紫色代码,这个输入语句中,%s表示什么意思,data之前为什么没有加&符号)%s取的是字符串的首地址,不需要加地址符 %s对应的是输入一个字符串,需要提供一个字符数组来存储,数组名是一个地址,不用加&取地址的。 Step 2: 以上程序的功能是调用标准函数strlen,求出一个字符串的实际长度。请自己写一个函数,实现相同的功能,并且在主函数中调用。函数首部如下: 1.int slengthf(char x[]) { int i,length=0;//i是循环计数器,len记录长度. for (i=0;i #define N 50 int main() { char data[N] ; int length; scanf("%s",data); length=strlen(data); printf("length=%dn",length); return 0; } int slengthf(char x[]) { int i,length=0;//i是循环计数器,len记录长度. for (i=0;i #define N 50 int main() { char x[N],y[N] ; scanf("%s",x); strcpy(y,x); printf("x=%sny=%sn",x,y); return 0; } Step 4: 以上程序的功能是调用标准函数strcpy,实现字符串的复制,请注意两个参数的含义,是将第二个参数对应字符串的内容复制到第一个参数对应的字符串中。请大家自己写一个函数,实现字符串复制的功能。从以下四个方面分析:函数名,返回值,参数,函数体。并且写一个主函数,调用该函数。 1.char strcpy(char a[],char b[]) //定义复制的字符串 { int i; //计数 for(i=0;b[i]!='';i++) //复制a[i]='';表示字符串结束,也可以用a[i]=0; a[i] = b[i]; a[i]=''; } 2.char *strcpy(char *dest,char *src) { char*temp; temp=dest; while(*dest++=*src++); return temp; } Step 5: 了解标准函数strcat的功能,在此基础上,自己写一个函数实现相同的功能。 #include #define N 50 int main() { void fun (char pA[],char pB[]); char x[N],y[N] ; scanf("%s %s",x,y); fun(x,y); printf("%sn",x); return 0; } void fun (char pA[],char pB[]) { int i,j; for (i=0;pA [i]!=''; i++); for (j=0;pB [j]!=''; j++) pA [i++]=pB [j]; pA[i]=''; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)