更多"下列给定程序中,函数fun( )的功能是:给定n个实数,输出平均值,并"的相关试题:
[填空题]在给定程序中,函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数),将所有数据中小于平均值的数据移至数组的前部,大于等于平均值的数据移至X所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。
例如,有10个正数:46 30 32 40 6 17 45 15 48 26,平均值为30.500000;移动后的输出为:30 6 17 15 26 46 32 40 45 48。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构。
文件BLANK1.C内容如下:
#include<stdio.h>
#include<stdlib.h>
#define N 10
double fun(double* x)
int i,j;
double s,av,y[N];
s=0;
for(i=0;i<N;i++)s=s+x[i];
/**********found**********/
av= (1) ;
for(i=j=0;i<N;i++)
if(x[i]<av)
/**********found**********/
y[ (2) ]=x[i];
x[i]=-1;
for(i=0;i<N;i++)
/**********found**********/
if(x[i]!= (3) )y[j++]=x[i];
for(i=0;i<N;i++)x[i]=y[i];
return av;
void main( )
int i;
double x[N]=46,30,32,40,6,17,45,15,48,26;
for(i=0;i<N;i++)printf("%5.0f",x[i]);
printf("/n");
printf("/nThe average is:%f/n",
[简答题]已知在文件IN42.DAT中存有N个实数(N<200),函数ReadDat( )读取这N个实数并存入数组xx中。请编制程序CalValue( ),其功能要求:
(1)求出这N个实数的平均值aver。
(2)分别求出这N个实数的整数部分值之和sumint及其小数部分之和sumdec,最后调用函数 WriteDat( )把所求的结果输出到文件OUT42.DAT中。
注意:部分源程序已给出。
请勿改动主函数main( )、读函数ReadDat( )和写函数WriteDat( )的内容。
试题程序:
#include<stdio.h>
#include<conio.h>
#define MAXNUM 200
float xx[MAXNUM];
int N=0;
double aver=0.0;
double sumint=0.0;
double sumdec=0.0;
int ReadDat( );
void WriteDat( );
void CalValue( )
void main( )
clrscr( );
if(ReadDat( )
printf ("数据文件IN42.DAT不能打开!/007/n"
return;
CalValue ( );
printf ("文件 IN42. DAT中共有实数%d个/n" ,N);
printf ("平均值=%. 21f/n", aver);
printf ("整数部分之和=%. 21f/n", sumint);
printf ("小数部分之和=%.21f/n", sumdec);
WriteDat( );
int ReadDat ( )
FILE *fp;
int j;
if((fp=fopen("in42.dat","r"))==NULL)
return 1;
[填空题]下列给定程序中,函数fun( )的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:
80.5 60 72 90.5 98 51.5 88 64
则低于平均分的学生人数为4(平均分为75.5625)。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <stdio.h>
#include <conio.h>
#define N 20
int fun(float *s, iht n,float *aver)
{ float ave ,t=0.0;
int count=0,k,i;
for(k=0;k<n;k++)
/*************found**************/
t=s[k];
ave=t/n;
for(i=0;i<n;i++)
if(s[i]<ave) count++;
/*************found**************/
*aver=&ave;
return count;
}
main( )
{ float s[30],aver;
int m,i;
clrscr( );
printf("/nPlease enter m: "); scanf
("%d",&m);
printf("/nPlease enter %d mark :/n",m);
for(i=0;i printf("/nThe number of students :
%d/n",fun(s,m,&aver));
printf("Ave=%f/n",aver);
}
[填空题]下列给定程序中fun( )函数的功能是:将n个无序整数从小到大排序。
请改正程序中的错误,使它能得出正确的结果。
注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
fun(int n, int *a)
{ int i,j,p,t;
for (j=0;j<n-1;j++)
{ P=j;
/***************found*******************/
for(i=j+l;i<n-1;i++)
if (a[p]>a[i])
/***************found*******************/
t=i;
if (p!=j)
{t=a[j];a[j]=a[p];a[p]=t;}
}
}
putarr( iht n,int *z)
{int i;
for (i=l;i<=n;i++,z++)
{ printf("%4d",*z);
if (!(i%10)) printf("/n");
} printf ("/n");
}
main ( )
{int aa[20]={9,3,0,4,1,2,5,6,8,10,7},n=11;
clrscr( );
printf("/n/nBefore sorting %d numbers:/n",n); putarr(n,aa);
fun(n,aa);
printf("/nAfter sorting %d numbers:/n",n);putarr(n,aa);
}
[填空题]下列给定程序中fun( )函数的功能是:将n个无序整数从小到大排序。
请改正程序中的错误,使它能得出正确的结果。
注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
fun(int n, int *a)
int i,j,p,t;
for (j=0;j<n-1;j++)
P=j;
/***************found*******************/
for(i=j+l;i<n-1;i++)
if (a[p]>a[i])
/***************found*******************/
t=i;
if (p!=j)
t=a[j];a[j]=a[p];a[p]=t;
putarr( iht n,int *z)
int i;
for (i=l;i<=n;i++,z++)
printf("%4d",*z);
if (!(i%10)) printf("/n");
printf ("/n");
main ( )
int aa[20]=9,3,0,4,1,2,5,6,8,10,7,n=11;
clrscr( );
printf("/n/nBefore sorting %d numbers:/n",n); putarr(n,aa);
fun(n,aa);
printf("/nAfter sorting %d numbers:/n",n);putarr(n,aa);
[简答题]给定程序MODI1.C中fun( )函数的功能是:将n个无序整数从小到大排序。
请改正程序中的错误,使它能得出正确的结果。
#include<stdio.h>
#include<stdlib.h>
fun(int n,int *a)
int i,j,p,t;
for(j=0;j<n-1;j++)
p=j;
/**********found**********/
for(i=j+1;i<n-1;i++)
if(a[p]>a[i])
/**********found**********/
t=i;
if(p!=j)
t=a[j];a[j]=a[p];a[p]=t;)
putarr(int n,int *z)
int i;
for(i=1;i<= n;i++,z++)
printf("%4d",*z);
if(!(i%10))printf("/n");
printf("/n");
main( )
int aa[20]=(9,3,0,4,1,2,5,6,8,
10,7,n=11;
printf("/n/nBefore sorting %d numbers:/q",n);putarr(n,aa);
fun(n,aa);
printf("/nAfter sorting %d numbers:/n",n);putarr(n,aa);
[填空题]下列给定程序中,函数fun( )的功能是:从N个字符串中找出最长的那个中,并将其地址作为函数值返回。各字符串在主函数中输入,并放入一个字符串数组中。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <string.h>
#include <stdio.h>
#define N 5
#define M 81
/*************found**************/
fun(char (*sq) [N])
{int i; char *sp;
sp=sq[0];
for{i=0;i<N;i++)
if(strlen(sp)<strlen(sq[i]))
sp=sq[i];
/*************found**************/
return sq;
}
main ( )
{char str[N][M], *longest; int i;
printf("Enter %d lines:/n ",N);
for(i=0;i<N;i++) gets(str[i]);
printf("/nThe %d string :/n ",N);
for(i=0;i<N;i++) puts(str[i]);
longest=fun(str);
printf("/nThe longest string :/n ");
puts(longest);
}
[填空题]请补充函数fun( ),该函数的功能是求一维数组x[N]的平均值,并对所得结果进行四舍五入(保留两位小数)。
例如:当x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0},结果为:avg=15.030000。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仪在函数fun的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<conio.h>
double fun(double x[10])
{
int i;
long t;
double avg=0.0;
double sum=0.0;
for(i=0;i<l0;i++)
【1】 ;
avg=sum/10;
avg= 【2】 ;
t= 【3】 ;
avg=(double)t/100;
return avg;
}
main( )
{
double avg,x[10]={15.6,19.9,16.7,15.2,18.3,12.1,15.5,11.0,10.0,16.0};
int i;
clrscr( );
printf("/nThe original data is:/n");
for(i=0;i<l0;i++)
printf("%6.lf",x[i]);
printf("/n/n");
avg=fun(x);
printf("average=%f/n/n",avg);
}
[简答题]由N个有序整数组成的数列已放在一维数组中,下列给定程序中,函数fun的功能是:利用折半查找法查找整数m在数组中的位置。若找到,返回其下标值;否则,返回-1。
折半查找的基本算法是:每次查找前先确定数组中待查的范围low和high(low(high),然后用m与中间位置(mid)上元素的值进行比较。如果m的值大于中间位置元素的值,则下一次的查找范围落在中间位置之后的元素中;反之,下一次的查找范围落在中间位置之前的元素中。直到low>hjgh,查找结束。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 10
/********found********/
void fun(int all,int m)
int low=0,high=N-1,mid;
while(low<=high)
mid=(low+high)/2;
if(m<a[mid])
high=mid-1;
/********found********/
else If(m>a[mid])
low=mid+1;
else return(mid);
return(-1);
main( )
int i,a[N]=(-3,4,7,9,13,45,67,89,100,180],k,m;
printf("a数组中的数据如下:");
for(i=0;i<N;i++)
printf("%d",a[i]);
printf("Enter m:");
scanf("%d",&m);
k=fun(a,m);
if(k>=0)
printf("m=%d,index=%d/n",m,k);
else printf("Not be found!/n");
[多项选择]改错题
下列给定程序中,函数fun( )的功能是:从n个学生的成绩中统计出高于平均分的学生人数,人数由函数值返回,平均分存放在形参aver所指的存储单元中。例如输入8名学生的成绩:
85 65.5 69 95.5 87 55 62.5 75
则高于平均分的学生人数为4(平均分为74.312500)。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
#define N 20
int fun(float *s, int n,float *aver)
{
/**********************found***********************/
int ave ,t=0;
int count=0,k,i;
for(k=0;k