2011,____年上机题 100 题库
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 到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 [],int *n),它的功能是:求出能整除
x 且不是偶数的各整数,并按从小到大的顺序放在 所指的数组中,这些除数
的个数通过形参n 返回。
答案:
void fun(int x, int [ ], int *n)
{
int i=1,j=0;k=0,*t= ;
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 ‘a’: 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’: p