网站建设管理专员,国内翻国外加速器,网络推广平台中心,昆明模板建站定制网站第57套#xff1a;
函数fun的功能是#xff1a;把形参a所指数组中的最小值放在元素a[0]中#xff0c;接着把 形参a所指数组中的最大值放在a[1]元素中#xff1b;再把a所指数组元素中的次小值放 在a[2]中#xff0c;把a所指数组元素中的次大值放在a[3]#xff1b;其余以此…第57套
函数fun的功能是把形参a所指数组中的最小值放在元素a[0]中接着把 形参a所指数组中的最大值放在a[1]元素中再把a所指数组元素中的次小值放 在a[2]中把a所指数组元素中的次大值放在a[3]其余以此类推。例如若a 所指数组中的数据最初排列为9、1、4、2、3、6、5、8、7则按规则移动 后数据排列为1、9、2、8、3、7、4、6、5。形参n中存放a所指数组中数 据的个数。 注意规定fun函数中的max存放当前所找的最大值px存放当前所找最大 值的下标。 请在程序的下划线处填入正确的内容并把下划线删除使程序得出正确的结果。 注意源程序存放在考生文件夹下的BLANK1.C中。 不得增行或删行也不得更改程序的结构 给定源程序
include stdio.h
#define N 9
void fun(int a[], int n)
{ int i,j, max, min, px, pn, t;
for (i0; in-1; i2)
{
max min ___1___;
px pn i;
for (ji1; jn; j) {
if (max___2___)
{ max a[j]; px j; }
if (min___3___)
{ min a[j]; pn j; }
}
if (pn ! i)
{ t a[i]; a[i] min; a[pn] t;
if (px i) px pn;
}
if (px ! i1)
{ t a[i1]; a[i1] max; a[px] t; }
}
}
main()
{ int b[N]{9,1,4,2,3,6,5,8,7}, i;
printf(\nThe original data :\n);
for (i0; iN; i) printf(%4d , b[i]);
printf(\n);
fun(b, N);
printf(\nThe data after moving :\n);
for (i0; iN; i) printf(%4d , b[i]);
printf(\n);
} 解题思路 第一处外循环每循环一次均把数组a当前位置的值分别赋值给max和min变量所以应填 a[i]。 第二处判断max是否小于a[j]若小于则把a[j]赋值给max所以应填a[j]。 第三处判断min是否大于a[j]若大于则把a[j]赋值给min所以应填a[j]。 给定程序MODI1.C中函数fun的功能是用递归算法计算斐波拉契数列中第n 项的值。从第1项起斐波拉契数列为1、1、2、3、5、8、13、21、…… 例如若给n输入7该项的斐波拉契数值为13。 请改正程序中的错误使它能得出正确结果。 注意不要改动main函数不得增行或删行也不得更改程序的结构。 给定源程序
#include stdio.h
long fun(int g)
{
switch(g);
{ case 0: return 0;
case 1 ;case 2 : return 1 ;
}
return( fun(g-1)fun(g-2) );
}
main()
{ long fib; int n;
printf(Input n: ); scanf(%d,n); printf(n %d\n,n);
fibfun(n);
printf(fib %d\n\n,fib);
} 解题思路 第一处switch后有多余的分号。 第二处case 1后没有返回语句也应该为return 1;。所以应改为case 1: return 1; case 2:return 1;。 某学生的记录由学号、8门课程成绩和平均分组成学号和8门课程的成绩已 在主函数中给出。请编写函数fun,它的功能是求出该学生的平均分放在记录的ave成员中。 例如学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,他的平均分应当 是78.875。 注意: 部分源程序在文件PROG1.C中。 请勿改动主函数main和其它函数中的任何内容仅在函数fun部位中填入你编写的若干语句。 给定源程序
#include stdio.h
#define N 8
typedef struct
{ char num[10];
double s[N];
double ave;
} STREC;
void fun(STREC *a)
{
}
main()
{ STREC s{GA005,85.5,76,69.5,85,91,72,64.5,87.5};
int i;
fun( s );
printf(The %ss student data:\n, s.num);
for(i0;iN; i)
printf(%4.1f\n,s.s[i]);
printf(\nave%7.3f\n,s.ave);
NONO();
} 解题思路 本题是求记录结构中学生课程成绩的平均值其结果仍放在该记录结构中。 参考答案
void fun(STREC *a)
{
int i ;
for(i 0 ; i N ; i)
a-ave a-ave a-s[i] ;
a-ave / N ;
}