请补充函数fun(),该函数的功能是把数组aa中的偶数元素按原来的先后顺序放在原数组后面。
例如,输入“33,67,42,58,25,76,85,16,41,56”,输出结果“33,67,25,85,41,42,58,76,16,56”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
define N 10
void fun (int aa [] )
{
int i, j=0,k=0;
int bb [N];
for (i=0;i<N; i++)
{
if (【 】)
bb [k++] =aa [i];
else
aa [ j ++ ] =aa [i];
}
for(i=0;【 】;i++,j++)
aa[j] =bb [i];
}
main ()
{
int i;
int aa[N]={33, 67,42,58,25, 76, 85, 16,
41,56};
clrscr ();
printf("\n*** original list ***\n");
for (i=0;i<N; i++)
printf ("%4d", aa [i] );
fun (aa);
printf("\n*** new list ***\n ");
for (i=0; i<N; i++)
printf ("%4d", aa [i] );
}
第1题
函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
include <stdio.h>
define N 12
typede f struct
{ char num[10];
double s;
} STREC;
double fun (STREC *a,STREC *b, int *n)
{
}
main ( )
STREC s IN] = { { "GA05", 85 }, { "GA03", 76 },
{"GA02", 69}, {"GA04", 85}, {"GA01", 91},
{"GA07", 72}, {"GA08", 64}, {"GA06", 87},
{"GA09", 60}, { "GAll", 79 }, { "GA12", 73},
{"GA10", 90 } };
STREC h[N],t;
FILE *out;
int i ,j,n;
double ave;
ave=fun (s, h, &n);
printf("The %d student data which is
higher than %7.3f: In", n, ave);
for(i=0; i<n; i++)
printf ("%s %4.1f\n",h[i] .num, h[i] .s);
printf ("\n");
out=fopen ("out90.dat", "w");
fprintf(out, "%dkn %7.3f\n",n,ave);
for(i=0; i<n-1; i++)
for (j=i+l; j<n; j ++)
if (h[i] .s<h[j ] .s)
{t=h Ii] ;h[i]=h[j] ;h[j]=t; }
/*分数从高到低排列*/
for(i=0; i<n; i++)
fprintf(out, "%4.1f\n",h[i] .s);
fclose (out);
}
第2题
有以下程序
int fa(int x){return x*x;}
int fb(int x){return x*x*x;}
int f(int(*fl)(),int(*f2)(),int x}
{return f2(x)-f1(x);}
main()
{int i;i=f(fa,fb,2);printf("%d\n",i);}
程序运行后,输出结果是【 】。
第3题
请补充main函数,该函数的功能是:计算每个学生成绩的平均分,并把结果保存在数组bb中。
例如,当scorer[N][M]={{83.5,82,86,65,67),{80,91.5,84, 99,95){90.5,95,86,95,97}}时,三个学生的平均分为76.7 89.9 92.7。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若千表达式或语句。
试题程序:
include<stdio.h>
define N 3
define M 5
main()
{
int i,j;
static float score[N][M]={{83.5,82,86,
65,67},{80,91.5,84,99,95},{90.5,95,
86,95,97}};
float bb[N];
clrscr();
for(i=0;i<N;i++)
【 】;
for(i=0;i<N;i++)
{
for (j=0; j<M; j++)
【 】;
bb [i]/=M;
}
for (i=0; i<N; i++)
print f (" knstudent %d\t average
=%5.1f",i+l,bb[i]);
}
第5题
以下程序的输出结果是【 】。
include <stdio.h>
define N 5
int fun(int *s,int a,int n)
{ int j;
*s=a j=n;
while(a!=s[j]) j-;
return j;
main()
{ int s[N+1]; int k:
for(k=1 ;k<=N;k++) s[k]=k+1:
print f("%d\n",fun(s,4,N));
}
第6题
有以下程序
include<stdio.h>
typedef struct
{int num;double s;}REC;
void funl(REC x){x.nllm=23;x.s=88.5;}
main( )
{REC a={16,90.0);
funl(A);
prinff(“%d\n”,a.num);
}
程序运行后的输出结果是【 】。
第7题
有以下程序
include<stdio.h>
int a=5;
void fun(intB)
{int a=10;
a+=b;pfinff(“%d”,A);
}
main( )
{int e=20;
fun(C);a+=e;printf(“%d\n”,A);
}
程序运行后的输出结果是【 】。
第8题
求任意一个数(用16位二进制码表示)的补码。
main( )
{ unsigned int a;
【 】 ;
scanf("%O",& a);
printf("%o\n",getbits(a));
}
unsigned int getbits(value)
unsigned int value;
{unstgned int z;
z=【 】 ;
if(z==0100000)
【 】 ;
else
z=value;
return(z);
}
第9题
"%f\n",C); }
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!