答案如下,解析可能考完试会写一下吧,我也不太确定,感觉事情有点多。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9b299c92f4b46aa316dc7ff69ec63434.png)
1.以下程序的功能是:首先在main函数中输入一个数,然后在被调函数rev中求出这个数的倒数,最后在主函数中输出结果。要求写出函数rev。
void rev(double *p)
{
double q;
q=1/(*p);
*p=q;
}
以下程序的功能是:首先在main函数中输入两个整数,然后在被调函数sort中将这两个整数按升序排序,最后在main函数中输出排序结果。要求写出函数sort。
void sort(int *p,int *q)
{
int t;
if(*p>*q)
{
t=*p;
*p=*q;
*q=t;
}
}
3.以下程序的功能是:首先在main函数中输入10个数,然后在被调函数ave中求出这10个数的平均值,最后在main函数中输出结果。要求写出函数ave。
double ave(double a[],int n)
{
int i;
double sum=0,ave;
for(i=0;i<10;i++)
sum+=a[i];
ave=sum/n;
return ave;
}
4.以下程序的功能是:首先在main函数中输入10个整数,然后在被调函数max_min中求出这批数中的最大数及最小数,最后在main函数中输出结果。要求写出函数max_min。
int max_min(int a[],int n,int *pmin)
{
int i,t,max;
for(i=0;i<n-1;i++)
if(a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for(i=n-1;i>=1;i--)
if(a[i]<a[i-1])
{
t=a[i];
a[i]=a[i-1];
a[i-1]=t;
}
*pmin=a[0];
max=a[n-1];
return max;
}
5.以下程序的功能是:首先在main函数中输入一个字符串,然后在被调函数slen中求出其长度,最后在main函数中输出结果。要求写出函数slen,限定不能调用库函数strlen。
int slen(char s[])
{
int i,count=0;
for(i=0;s[i]!='\0';i++)
count++;
return count;
}
6.以下程序的功能是:首先在main函数中输入10个整数,然后在被调函数sort中对这些整数按降序排序,最后在main函数中输出结果。要求写出函数sort。
void sort(int a[],int n)
{
int i,j,t;
for(i=n;i>=2;i--)
for(j=0;j<=i-2;j++)
if(a[j]<a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
return;
}
7.以下程序的功能是:首先在main函数中输入一个字符串(长度不超过254个字符),然后在被调函数scopy中将其复制到目标数组中,最后在main函数中输出结果。要求写出函数scopy,限定不能调用库函数strcpy。
void scopy(char t[],char s[])
{
int i;
char c;
for(i=0;s[i]!='\0';i++)
{
t[i]=s[i];
}
return;
}
8.以下程序的功能是:首先在main函数中输入一个字符串(长度不超过254个字符),然后在被调函数reverse中将其前后倒置,最后在main函数中输出结果。要求写出函数reverse。
void reverse(char a[])
{
int i,j,n;
char c;
n=strlen(a);
for(i=0,j=n-1;i<j;i++,j--)
{
c=a[i];
a[i]=a[j];
a[j]=c;
}
}