1.请下载本页面下面的素材“blank1.c”文件,在该文件的下划线填入正确的内容并把下划线删除,使程序得出正确的结果(不得增行或删行,也不得更改程序的结构!),操作完成后以原文件名上交。
给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),作为函数值返回;并将大于平均值的数放在形参y所指数组中,在主函数中输出。
例如,有10个正数:46 22 39 5 24 29 33 13 17 19,平均值应为:24.7
大于平均值的数为:46 39 29 33
2.请下载本页面下面的素材“modi1.c”文件,该文件中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。
例如:若输入:THIs is a boot,
则输出应该是:1、0、2、2、0。
请改正程序中的错误,使它能得出正确结果,完成后以原文件名上交。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
3.请下载本页面下面的素材“prog1.c”文件,编写其中的fun函数:
学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。例如,输入的分数是60 69,则应当把分数在60到69之间的学生数据进行输出(含60和69)。主函数中将60放在变量low中,把69放在变量heigh中。
请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的语句,完成后以原文件名上交。
modi1.c如下:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
void fun(char *s,int num[5])
{ int k,i=5;
for (k=0;k<i;k++)
/************found************/
num[i]=0;
for (;*s;s++)
{i=-1;
/************found************/
switch(s)
{case 'a':case 'A':{i=0;break;}
case 'e':case 'E':{i=1;break;}
case 'i':case 'I':{i=2;break;}
case 'o':case 'O':{i=3;break;}
case 'u':case 'U':{i=4;break;}
}
if (i>=0)
num[i]++;
}
}
main()
{char s1[81]; int num1[5],i;
system("cls");
printf("\nPlease enter a string:");gets(s1);
fun(s1,num1);
for (i=0;i<5;i++) printf("%d",num1[i]);printf("\n");
}
prog1.c如下:
#include <stdio.h>
#define N 16
typedef struct
{ char num[10];
int s;
} STREC;
int fun( STREC *a,STREC *b,int l, int h )
{
}
main()
{ STREC s[N]={{"GA005",85},{"GA003",76},
{"GA002",69},{"GA004",85},{"GA001",96},
{"GA007",72},{"GA008",64},{"GA006",87},
{"GA015",85},{"GA013",94},{"GA012",64},
{"GA014",91},{"GA011",90},{"GA017",64},
{"GA018",64},{"GA016",72}};
STREC h[N],tt;FILE *out ;
int i,j,n,low,heigh,t;
printf("Enter 2 integer number low & heigh : ");
scanf("%d%d", &low,&heigh);
if ( heigh< low ){ t=heigh;heigh=low;low=t; }
n=fun( s,h,low,heigh );
printf("The student's data between %d--%d :\n",low,heigh);
for(i=0;i<n; i++)
printf("%s %4d\n",h[i].num,h[i].s);
printf("\n");
}
blank1.c如下:
#include <stdio.h>
#include <stdlib.h>
#define N 10
double fun(double x[],double *y)
{ int i,j; double av;
/found/
av=1;
/found/
for(i=0; i<N; i++) av = av + __2__;
for(i=j=0; i<N; i++)
/**********found**********/
if(x[i]>av) y[3]= x[i];
y[j]=-1;
return av;
}
main()
{ int i; double x[N],y[N];
for(i=0; i<N; i++){ x[i]=rand()%50+5; printf("%4.0f ",x[i]);}
printf("\n");
printf("\nThe average is: %f\n",fun(x,y));
for(i=0; y[i]>=0; i++) printf("%5.0f ",y[i]);
printf("\n");
}