1. 编写函数long fun(long x),它的功能是:将长整型参数x中每一位上为偶数的数依次取出,构成一个新数返回。高位仍在高位,低位仍在低位。例如:下面程序运行时输入:124578902,程序输出:24802. #include
for(n=1;n return sum; } void main() { long a,b; printf(\ scanf(\ b=fun(a); printf(\} 2. 编写函数void fun(int k,int *p),功能是:将参数k(2≤k≤32767)所有的不相同质因子升序写入p所指的一维数组中,以-1作为所有质因子的结束标志。例如:下面程序运行时若输入200,输出:2 5;若输入27720,输出:2 3 5 7 11;若输入101,输出101。 #include void main() { int x,a[17]={0},i; do{ printf(\ scanf(\ }while(x<2); fun(x,a); for(i=0;a[i]!=-1;i++) printf(\ printf(\} 3. 编写函数void fun(int *x,int n),功能是:求出长度为n的数组x中的最大数与次最大数,并把最大数和a[0]对调,次最大数与a[1]对调,其余的数保持不变。下面程序运行时若输入:2 4 6 1 3 9 7 0 5 8,则输出:9 8 6 1 3 2 7 0 5 4。 #include void fun(int *x,int n) { int i,j,k,t; for(i=0;i<2;i++) { k=i; for(j=i+1;j t=x[k]; x[k]=x[i]; x[i]=t; } } void main() { int a[N],i; for(i=0;i 采用打擂台法,找到最大数的下标。 4. 数组x中保存有n个整数, 编写函数int fun(int *x,int n,float *w),对数组x进行如下操作:从第0个元素起对每5个元素求一个平均埴,并将这些均值依次存放在w所指的数组中。函数返回平均值的个数。例如:若输入n为14,14个数据为:11 21 35 24 55 16 27 58 18 0 11 12 13 14,则只为前10个求均值,输出结果为:29.20 23.80 #include int fun(int *x,int n,float *w) { int num=n/5; 注意每个数的类型, int temp=0; int i; for(i=0;i void main() { int a[30],i,n,m; float b[6]; printf(\ scanf(\ for(i=0;i m=fun(a,n,b); for(i=0;i printf(\} 5. 编写函数int fun(int x,long int y),功能:计算满足表达式x0+x1+x2+...+xn for(i=0;sum return i-2; } void main() { int x;long y; scanf(\ printf(\} 6. 编写函数int fun(char (*ss)[N],int m,char *s),功能是:形参ss指向一个m行N列的二维字符数组,每行存放一个字符串。求出最长的字符串,复制到s所指的字符数组中,然后返回此最长字符串的长度。 #include int fun(char (*ss)[N],int m,char *s) { int i,j,t=0,x; for(j=0;j return(t); } void main() { char a[8][N],b[N]; int i,len; for(i=0;i<8;i++) gets(a[i]); len=fun(a,8,b); printf(\