实验答案--函数.docVIP

  • 44
  • 0
  • 约7.96千字
  • 约 25页
  • 2019-06-03 发布于安徽
  • 举报
实用标准文档 文案大全 1.编一个带有函数的程序。在main()函数中输入一个字符串(长度20),调用函数fun将该字符串中的所有字符按ASCII码升序排序,然后再输出排序后的字符串。例如,输入edcba,则应输出abcde.。 #include stdio.h #include string.h int main() { void fun(char x[],int y); int i; char c[20]; printf(Please input chars:\n); gets(c); i=strlen(c); fun(c,i); return 0; } void fun(char x[],int y) { int i,j; char c; for(i=0;iy-1;i++) for(j=i+1;jy;j++) if(x[i]x[j]) { c=x[i]; x[i]=x[j]; x[j]=c; } puts(x); } 2. 下面程序的功能是依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;(如:abcd123efg456变为123456)。 修改该程序,要求将红色部分用一个函数来实现。 #include stdio.h main() { char s[15]; int i,j; scanf(%s,s); for (i=0,j=0; s[i]!=\0; i++) if (s[i]=0 s[i]=9) { s[j]=s[i]; j++; } s[j]=\0; printf(\nThe result:); printf(%s,s); } #include stdio.h int main() { void fun(char x[]); char s[15]; printf(Input chars to fill s[15]:\n); scanf(%s,s); fun(s); return 0; } void fun(char x[]) { int i,j; for(i=0,j=0; x[i]!=\0; i++) if(x[i]=0x[i]=9) { x[j]=x[i]; j++; } x[j]=\0; puts(x); } 3.编写带有函数的程序(函数名为:int fun(int s[],int *k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。 例如:输入如下整数876 675 896 101 301 401 980 431 451 777 则输出结果为:6,980。 #include stdio.h void fun(int s[],int *k) { int i,max=s[0]; for(i=1;i10;i++) if(maxs[i]) { max=s[i]; *k=i; } } int main() { int a[10]={876,675,896,101,301,401,980,431,451,777}; int k; fun(a,k); printf(%d,%d\n,k,a[6]); return 0; } 4.在main()函数中,已有一个已排好序的整型数组,今输入一个整数,调用函数fun(),其功能是按原来排序的规律将它插入数组中。 例如:原来数组的元素依次为4、6、8、41、56、77、102。若将42插入数组中,则插入后数组元素依次为4、6、8、41、42、56、77、89、102。 #include stdio.h void fun (int s[],int m) { int i,j; for(i=0;;i++) if(s[i]ms[i+1]m) break; for(j=6;ji;j--) s[j+1]=s[j]; s[i+1]=m; } int main() { int s[8]={4,6,8,41,56,77,102}; int i,m; puts(Please input m:); scanf(%d,m); fun(s,m); for(i=0;i8;i++) printf(%d ,s[i]); putchar(\n); return 0; } 5.下面程序的功能是将字符数组s2中的全部字符拷贝到字符数组s1中。拷贝时,’\0’也拷贝过去,但’\0’后面的字符不拷贝。 修改该程序,要求将红色部分用一个函数来实现。 main() { char s1[80],s2[80]; int i; scanf(%s,s2); for(i=0;s2[i]!=’\0’;i++) s1[i]=s2[i]

文档评论(0)

1亿VIP精品文档

相关文档