2011,____年上机题100 题库
第 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 题 请编写函数 fun,它的功能是:求出 1 到 100 之内能北 7 或者 11
整除,但不能同时北 7 和 11 整除的所有证书,并将他们放在 a 所指的数组中,通过 n 返回这些数的个数。
1/ 70
答案:
void fun(int *a, int *n)
{
int i,j=0;
for(i=2;i <1000;i++)
if ((i%7==0 || i%11==0) && 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++;
}
2/ 70
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‘pp[0]++;break;’:
case‘ b’ : pp[1]++;break;
3/ 70
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’[20]++;break;:pp
case‘ v’ : pp[21]++;break;
case‘ w’ : pp[22]++;break;
4/ 70
case‘ x’ : pp[23]++;break;
case‘ y’ : pp[24]++;break;
case‘ z’ : pp[25]++;break;
}
tt++;
}
}
第 5 题 请编写一个函数 void fun(int m,int k,int xx[]), 该函数的功能是:将大于整数 m 且紧靠 m 的 k 各素数存入 xx 所指的数组中。
答案:
void fun(int m, int k, int xx[])
{
int g=0,I,j,flag=1;
for(i=m+1;i<m*m;i++)
{
for(j=0;j <I;j++)
{
if(i%j!=0)
flag=1;
else
{
flag=0;
5/ 70
break;
}
}
if (flag