1、1.编一个带有函数的程序。在main()函数中输入一个字符串(长度20),调用函数fun将该字符串中的所有字符按ASCII码升序排序,然后再输出排序后的字符串。例如,输入edcba,则应输出abcde.。#include #include int main()void fun(char x,int y);int i;char c20;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;jx
2、j) c=xi; xi=xj; xj=c; puts(x);2. 下面程序的功能是依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串;(如:abcd123efg456变为123456)。修改该程序,要求将红色部分用一个函数来实现。#include stdio.hmain() char s15; int i,j; scanf(%s,s); for (i=0,j=0; si!=0; i+) if (si=0 & si=9) sj=si; j+; sj=0; printf(nThe result:); printf(%s,s); #include int main()void fun(ch
3、ar x);char s15;printf(Input chars to fill s15:n);scanf(%s,s);fun(s);return 0;void fun(char x)int i,j;for(i=0,j=0; xi!=0; i+) if(xi=0&xi=9) xj=xi; j+; xj=0;puts(x);3.编写带有函数的程序(函数名为:int fun(int s,int *k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。例如:输入如下整数876 675 896 101 301 401 980 431 451 777则输出结果为:6,980。#in
4、clude void fun(int s,int *k)int i,max=s0;for(i=1;i10;i+) if(maxsi) max=si; *k=i; int main() int a10=876,675,896,101,301,401,980,431,451,777; int k;fun(a,&k);printf(%d,%dn,k,a6);return 0;4.在main()函数中,已有一个已排好序的整型数组,今输入一个整数,调用函数fun(),其功能是按原来排序的规律将它插入数组中。例如:原来数组的元素依次为4、6、8、41、56、77、102。若将42插入数组中,则插入后数组元
5、素依次为4、6、8、41、42、56、77、89、102。#include void fun (int s,int m)int i,j;for(i=0;i+) if(sim) break;for(j=6;ji;j-) sj+1=sj;si+1=m;int main()int s8=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 ,si);putchar(n);return 0;5.下面程序的功能是将字符数组s2中的全部字符拷贝到字符数组s1中。拷贝时,0
6、也拷贝过去,但0后面的字符不拷贝。修改该程序,要求将红色部分用一个函数来实现。main() char s180,s280; int i; scanf(%s,s2); for(i=0;s2i!=0;i+) s1i=s2i; s1i=0; printf(s1:%sn,s1);#include void xp(char s1,char s2)int i;for(i=0;s2i!=0;i+) s1i=s2i;s1i=0;int main()char s180,s280;puts(Input chars of s2:);gets(s2);xp(s1,s2);printf(s1:%sn,s1);retur
7、n 0;6.编写带有函数的程序(函数名为:fun()),功能是将ss所指字符串中下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换,注意下标是从0开始的)。例如:输入abbcc45ghNj,则应输出aBbCc45GhNj。#include void fun(char x)int i;for(i=1;xi!=0;i=i+2)if(xia&xiz)xi=xi-32;int main()char ss80;puts(Input chars to fill ss:);gets(ss);fun(ss);puts(ss);return 0;7.在main()函数中,先从键盘上输入一个3行3列整
8、型数组的各个元素的值,然后调用函数fun(),其功能是计算并返回主对角线元素之和。#include int fun(int a3)int i,j,s=0;for(i=0;i3;i+)for(j=0;j3;j+)if(i=j) s=s+aij;return s;int main()int i,j,k,a33;puts(Input 9 numbers to fill a33:);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);k=fun(a);printf(主对角线之和=%d,k);return 0;8.下面程序的功能是用冒泡法对10个整数按降序进行排序。修改
9、该程序,要求将红色部分用一个函数来实现。main() int a11,i,j,t; printf(Input 10 numbers:n); for(i=1;i11;i+) scanf(%d,&ai); printf(n); for(j=1;j=9;j+) for(i=1;i=10-j;i+) if(aiai+1) t=ai; ai=ai+1; ai+1=t; printf(The sorted numbers:n); for(i=1;i11;i+)printf(%d ,ai);#include void fun(int a)int i,j,t;for(j=1;j=9;j+) for(i=1;i
10、=10-j;i+) if(aiai+1) t=ai; ai=ai+1; ai+1=t; int main()int a11,i;printf(Input 10 numbers:n);for(i=1;i11;i+) scanf(%d,&ai); printf(n);fun(a);printf(The sorted numbers:n);for(i=1;i11;i+) printf(%d ,ai);putchar(n);return 0;9. 编写带有函数的程序(函数名为:int fun()),功能是从整数1到55之间,选出能被3整除、且有一位上的数是5的那些数,并把这些数放在b所指的数组中,这些
11、数的个数作为函数值返回。结果应该是:15 45 51 54#include int fun(int b)int i,j=0;for(i=1;i=55;i+)if(i%3=0) if(i/10=5|i%10=5) bj=i; j+; return j;int main()int a100,k,m;m=fun(a);printf(The result is:n);for(k=0;km;k+) printf(%4d,ak);printf(n);return 0;10. 下面程序的功能是将两个字符串连接起来,不要用strcat函数。修改该程序,要求将红色部分用一个函数来实现。main() char s
12、180,s280; int i=0,j; scanf(%s,s1); scanf(“%s”,s2); while(s1i!=0) i+; for(j=0; s2j!=0;) s1i+=s2j+; s1i=0;printf(s1:%sn,s1);#include void xp(char s1,char s2)int i=0,j;while(s1i!=0) i+;for(j=0; s2j!=0;) s1i+=s2j+;s1i=0;int main()char s180,s280;puts(Input chars to fill s1:);gets(s1);puts(Input chars to
13、fill s2:);gets(s2);xp(s1,s2);puts(s1);return 0;11. 编写带有函数的程序(函数名为fun),功能是求出ss所指字符串中指定字符的个数,并返回此值。例如:输入123412132,再输入字符1则应输出3。#include int fun(char a,char ch)int i,x=0;for(i=0;ai!=0;i+)if(ai=ch) x+;return x;int main()char a20,ch;printf(Please enter a string:n);gets(a);printf(Please enter a char:n);ch=
14、getchar();printf(The char %c has appeared %d times!n,ch,fun(a,ch);return 0;12. 调用函数fun(),其功能是从字符串中删除指定的字符。同一字母的大小写按不同字符处理。例如:输入字符串为: turbo c and Borland c+输入字符n,则输出为turbo c ad Borlad c+。#include void fun(char c,char x)int i,j=0;for(i=0;ci!=0;i+)if(ci!=x) cj=ci; j+; cj=0;int main()char x,c80;puts(Inp
15、ut chars to fill c:);gets(c);puts(Input the char x:);scanf(%c,&x);fun(c,x);puts(c);return 0;13.在main函数中,先从键盘上输入一个3行3列数组的各个元素的值,调用函数fun(),其功能是按主对角线进行转置,然后再在main函数中输出转置后的数组。 例如:原数组为: 转置后为:1 2 3 1 4 74 5 6 2 5 87 8 9 3 6 9 #include void fun(int a3)int i,j,t;for(i=0;i3;i+)for(j=0;j3;j+)if(ij) t=aij; aij
16、=aji; aji=t; int main()int i,j,a33;puts(Input 9 words to fill a33:);for(i=0;i3;i+)for(j=0;j3;j+)scanf(%d,&aij);fun(a);puts(a33 turns to:);for(i=0;i3;i+)for(j=0;j3;j+)printf(%d ,aij);putchar(n);return 0;14.利用函数方法编程序:函数fun功能是,找出100至1000之间三位数字相等的所有整数(如:111、222、333、),把这些整数放在s所指数组中,个数作为函数值返回。#include int
17、 fun(int a)int i,j=0;for(i=100;i=1000;i+)if(i%10=i%100/10&i%10=i/100) aj=i; j+; return j;int main()int a50,num=0,i;num=fun(a);printf(The result:n);for(i=0;i=a&stri=z?stri-32:stri; printf(n); puts(str);#includevoid xp(char c)int i,k;if(c0=a&c0=a&ci=z?ci-32:ci; printf(n); int main() char c80;puts(Inpu
18、t chars to fill c:);gets(c);xp(c);puts(c);return 0;16.编写带有函数的程序(函数名为:int fun(int *s,int t,int *k)),功能是求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。#include int fun(int *s,int t,int *k)int i,max;for(i=0;it;i+)if(maxsi)max=si;*k=i;return *k;int main()int s10=1,7,2,3,5,9,6,8,4,0;int k;fun(s,10,&k);printf(k=%dn,k);ret
19、urn 0;17.编写带有函数的程序,函数fun功能是求出能整除x且不是偶数的各个整数,顺序存放在数组pp中,这些除数的个数通过形参返回。例如:若x值为30,则有4个数符合要求,是1,3,5,15。#include void fun(int x,int pp,int *n)int i,j=0;for(i=1;i=x;i+)if(x%i=0&i%2!=0)ppj=i;j+;*n=j;int main()int x,aa100,n,i;printf(Please enter a number:n);scanf(%d,&x);fun(x,aa,&n);for(i=0;in;i+) printf(%-3d,aai);printf(n);return 0;