请编写一个函数 void fun(int tt[m][n],int pp[n]),tt 指向一
个 m 行 n 列的二维函数组,求出二维函数组每列中最小元素,并依次放入 pp 所
指定一维数组中。二维数组中的数已在主函数中赋予。
答案:
void fun(int tt[M][N], int pp[N])
{
int I,j,min;
for(j=0;j<N;j++)
{
min=tt[0][j];
for(i=0;i<M;i++)
{
if (tt[i][j]<min)
min=tt[i][j];
}
pp[j]=min;
}
}
请别写函数 fun,函数的功能使求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。
答案:
int fun(int a[M][N])
{
int I,j,s=0;
for(j=0;j<N;j++)
{
s+=a[0][j];
s+=a[M-1][j];
}
for(i=1;i<=M-2;i++)
{
s+=a[i][0];
s+=a[i][N-1];
}
return s;
}
请编写一个函数 float fun(double h),函数的功能使对变量 h 中的值保留 2 位小树,并对第三位进行四舍五入(规定 h 中的值位正数)。
答案:
float fun(float h)
{
long t;
float s;
h=h*1000;
t=(h+5)/10;
s=(float)t/100.0;
return s;
}
请编写一个函数 fun(char *s),该函数的功能使把字符串中的内
容拟置。
答案:
void fun(char *s)
{
char ch;
int I,m,n;
i=0;
m=n=strlen(s)-1;
while(i<(n+1)/2)
{
ch=s[i];
s[i]=s[m];
s[m]=ch;
i++;
m–;
}
}
编写程序,实现矩阵(3 行 3 列)的转置(即行列互换)。
答案:
void fun(int array[3][3])
{
int I,j,temp;
for(i=0;i<3;i++)
for(j=0;j<I,j++) {
temp=array[i][j];
array[i][j]=array[j][i];
array[j][i]=temp;
}
}
编写函数 fun,该函数的功能是:从字符中删除指定的字符,同一
字母的大、小写按不同字符处理。
答案:
void fun(char s[],int c)
{
int i=0;
char *p;
p=s;
while(*p)
{
if(*p!=c)
{
s[i]=*p;
i++;
}
p++;
}
s[i]=‘\0’;
}
编写函数 int fun(int lim,int aa[max]),该函数的功能是求出小
于或等于 lim 的所有素数并放在 aa 数组中,该函数返回所求的素数的个数。
答案:
int fun(int lim, int aa[MAX])
{
int k=0,I,j;
for(i=lim;i>1;i–)
{
for(j=2;j<i;j++)
if(i%j==0)
break;
else continue;
if(j>=i)
{
aa[k]=i;
k++;
}
}
return k++;
}
n 名学生的成绩已在主函数中放入一个带头节点的链表结构中,h
指向链表的头节点。请编写函数 fun,它的功能是:找出学生的最高分,由函数
值返回。
答案:
double fun(STREC *h)
{
double max;
STREC *q=h;
max=h->s;
do
{
if(q->s>max) max=q->s;
q=q->next;
}
while(q!=0);
return max;
}
请编写一个函数 fun,它的功能是:将一个字符串转换为一个整数
(不得调用 c 语言提供的将字符串转换为整数的函数)。
答案:
long fun (char p)
{
long s=0,t;
int i=0,j,n=strlen§,k,s1;
if(p[0]==‘-’)
i++; for(j=I;j<=n-1;j++)
{
t=p[j]-‘0’;
s1=10;
for(k=j;k<n-1;k++)
t=s1;
s+=t;
}
if(p[0]==‘-’)
return –s;
else
return s;
}
请编写一个函数 fun,它的功能是:求除 1 到 m 之内(含 m)能北 7
或 11 整除的所有整数放在数组 a 中,通过 n 返回这些数的个数。
答案:
void fun(int m, int *a, int *n)
{
int I,j=0; *n=0;
for(i=1;i<=m;i++)
if (i%7==0 || i%11 ==0)
{
a[j]=I;
j++;
}
*n=j;
}
请编写一个函数 fun,它的功能是:将 ss 所指字符串中所有下标
为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。
答案:
void fun(char *ss)
{
int I,n;
n=strlen(ss);
for(i=1;i<n;i+=2)
if(ss[i]>=‘a’&& ss[i]<=‘z’)
ss[i]=ss[i]-32;
}
请编写一个函数 fun,它的功能是:求除一个 2×m 整型二维数组
中最大元素的值,并将此值返回调用函数。
答案:
int fun(int a[][M])
{
int I,j,max;
max=a[0][0];
for(i=0;i<2;i++)
for(j=0;j<M;j++)
if(a[i][j]>max)
max=a[i][j]; return max;
}
请编写一个函数,用来删除字符串中的所有空格。
答案:
void fun(char *str)
{
int i=0;
char *p=str;
while (*p)
{
if(*p!=‘’)
{
str[i]=*p;
i++;
}
p++;
}
str[i]=‘\0’;
}
假定输入的字符串中只包含字母和号。请编写函数 fun,它的功
能是:将字符串中的前导号全部移到字符串的尾部。
答案:
void fun(char *a)
{
int i=0,n=0;
char *p;
p=a;
while (p==‘’)
{ n++;
p++;
}
while (*p)
{
a[i]=p;
i++;
p++;
}
while(n!=0)
{
a[i]=‘’;
i++;
n–;
}
a[i]=‘\0’;
}
请编写函数 fun,它的功能是:求出 ss 所指字符串中指定字符的
个数,并返回此值。
答案:
int fun(char *ss, char c)
{
int n=0;
while (*ss) {
if(*ss==c)
n++;
ss++;
}
return n;
}
请编写函数 fun,该函数的功能是移动字符串中内容,移动的规则
如下:把第 1 到第 m 个字符,平移到字符串的最后,把第 m+1 到最后的字符移
到字符串的前部。
答案:
void fun(char *w,int m)
{
char b[N];
int I,j=0;
for(i=0;i<m;i++)
{
b[j]=w[i];
j++; }
for (i=0;i<strlen(w)-m;i++)
w[i]=w[i+m];
for(j=0;j<m;j++)
{
w[i]=b[j];
i++;
}
w[i]=‘\0’;
}
假定输入的字符串中只包含字母和号,请编写函数 fun,它的功
能是:除了字符串前导和尾部的号之外,将串中其他*号全部删除。形参 h 已
指向字符串第一个字符,形参 p 已指向字符串中最后一个字母。在编写程序时,
不得使用 c 语言提供的字符串函数。
答案:
void fun(char *a,char *h,char *p)
{int i=0;
char *q=a;
while(q<h)
{a=*q;
q++;
i++;}
while(q<p)
{if(q!=‘’)
{a=*q;
i++;}
q++;}
while(*q)
{a=*q;
i++;
q++;}
a=‘\0’;}
请编写一个函数 fun,其功能是:将两个两位数的正整数 ab 合并
形成一个整数放在 c 中。合并方式是:将 a 数的十位和个位数依次放在 c 数的
个位和百位上,b 数的十位和个位数依次放在 c 数的十位和千位上。
答案:void fun(int a,int b,long *c)
{*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;}
请编写函数 fun,其功能是:将 s 所指字符串中 ascii 值为偶数的
字符删除,串中剩余字符形成一个新串放在 t 所指的数组中。
答案:
void fun(char *s,char t[])
{int i,j=0,n=strlen(s);
for(i=0;i<n;i++)
if (s%2!=0)
{t[j]=s;
j++;}
t[j]=‘\0’;}
请编写一个函数 fun,它的功能使:计算 n 门课程的平均分,计算
结果作为函数值返回。
答案:
float fun(float *a,int n)
{float ave=0.0;
int i;
for(i=0;i<n;i++)
ave+=a;
ave/=n;
return ave;}
假定输入的字符串中只包含字母和号。请编写函数 fun,它的功
能使:将字符串尾部的号全部删除,前面和中间的*号不删除。
答案:
void fun(char *a)
{int i=0;
char *p,*q;
p=q=a;
while(*p)
p++;
p–;
while(p==‘’)
p–;
while(q<=p)
{a=*q;
i++;
q++;}
a=‘\0’;}
请编写函数 fun,计算并输出给定 10 个数的方差。
答案:
double fun(double x[10])
{int i,j;
double s=0.0,s1=0.0;
for(i=0;i<10;i++)
s1+=x;
s1/=10;
for(j=0;j<10;j++)
s+=(x[j]-s1)*(x[j]-s1);
s/=10;
s=pow(s,0.5);
return s;}
请编写函数 fun,其功能是:计算并输出下列多项式
值:sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n).
答案:
sn=(1-1/2)+(1/3-1/4)+…+(1/(2n-1)1/2n).
double fun(int n)
{int i;
double sn=0.0;
for(i=1;i<=n;i++)
sn+=(1.0/(2i-1)-1.0/(2i));
return sn;}