1:第1题 m个人的成绩存放在score数组中,请编写函数fun,它的功能是 :将低于平均分的人做为函数值返回,将低于平均分的分数放在below所指定的函数中.
答案:
int fun(int score[],int m,int below[])
{
int i,k=0,aver=0;
for(i=0;i<m;i++)
aver+=score[i];
aver=m;
for(i=0;i<m;i++)
if(score[i]<aver)
{
below[k]=score[i];
k++;
}
return k;
}
2:第2题 请编写函数fun,它的功能是 :求出1到1000之内能北7或许11整除,但不能同时北7和11整除的全部整数,同时将他们放在a所指的数组中,通过n返回这些数的个数.
答案:
void fun(int *a,int *n)
{
int i,j=0;
for(i=2;i<1000;i++)
if ((i%70 || i%110) && i%77!=0)
a[j++]=i;
*n=j;
}
3:第3题 请编写函数void fun(int x,int pp[],int *n),它的功能是 :求出能整除x且不是 偶数的各整数,同时按从小到大的次序放在pp所指的数组中,这些除数的个数通过形参n返回.
答案:
void fun(int x,int pp[ ],int *n)
{
int i=1,j=0;k=0,*t=pp;
for(i=0;i<=x;i++)
if(i%2!=0)
{
t[j]=I;
j++;
}
for(i=0;i<j;i++)
if(x%t[i]==0)
{
pp[k]=t[i];
k++;
}
*n=k;
}
4:第4题 请编写一个函数void fun(char *tt,int pp[]),统计在tt字符中"a"到"z"26各字母各自展示的次数,同时依次放在pp所指的数组中.
答案:
void fun(char *tt,int pp[])
{
int i;
for (i=0;i<26;i++)
pp[i]=0;
while (*tt)
{
switch (*tt)
{
case ‘a’:pp[0]++;break;
case ‘b’:pp[1]++;break;
case ‘c’:pp[2]++;break;
case ‘d’:pp[3]++;break;
case ‘e’:pp[4]++;break;
case ‘f’:pp[5]++;break;
case ‘g’:pp[6]++;break;
case ‘h’:pp[7]++;break;
case ‘i’:pp[8]++;break;
case ‘j’:pp[9]++;break;
case ‘k’:pp[10]++;break;
case ‘l’:pp[11]++;break;
case ‘m’:pp[12]++;break;
case ‘n’:pp[12]++;break;
case ‘o’:pp[14]++;break;
case ‘p’:pp[15]++;break;
case ‘q’:pp[16]++;break;
case ‘r’:pp[17]++;break;
case ‘s’:pp[18]++;break;
case ‘t’:pp[19]++;break;
case ‘u’:pp[20]++;break;
case ‘v’:pp[21]++;break;
case ‘w’:pp[22]++;break;
case ‘x’:pp[23]++;break;
case ‘y’:pp[24]++;break;
case ‘z’:pp[25]++;break;
}
tt++;
}
}