找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 38|回复: 0

C语言二级试题:X和Y数组作为函数的参数

[复制链接]

14

主题

8

回帖

92

积分

注册会员

积分
92
发表于 2026-2-27 17:04:21 | 显示全部楼层 |阅读模式
题目:
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。在此程序中, 函数fun的功能是:计算形参x所指数组中N个数的平均值(规定所有数均为正数), 作为函数值返回, 并将大于平均值的数放在形参y所指数组中, 在主函数中输出。
例如, 有10个正数:46、30、32、40、6、17、45、15、48、26, 其平均值为30.500000。
主函数中输出:46 32 40 45 48。
请在程序的下画线处填入正确的内容并把下画线删除, 使程序得出正确的结果。
注意:部分源程序在文件blank1.c中。
不得增行或删行, 也不得更改程序的结构 !

考点:数据类型及其运算

blank1.c代码

  1. #include <stdlib.h>

  2. #include <stdio.h>

  3. #define   N   10

  4. double fun(double  x[],double  *y)

  5. { int  i,j;    double  av;

  6. /**********found**********/

  7.   av=__1__;

  8. /**********found**********/

  9.   for(i=0; i<N; i++)  

  10.           av=av+__2__;

  11.   for(i=j=0; i<N; i++)

  12. /**********found**********/

  13.     if(x[i]>av)  y[__3__]= x[i];

  14.   y[j]=-1;

  15.   return  av;

  16. }

  17. void main()

  18. { int  i;    double  x[N],y[N];

  19.   for(i=0; i<N; i++)

  20. {

  21. x[i]=rand()%50; printf("%4.0f ",x[i]);}

  22.   printf("\n");

  23.   printf("\nThe average is: %f\n",fun(x,y));

  24.   for(i=0; y[i]>=0; i++)  printf("%5.1f ",y[i]);

  25.   printf("\n");

  26. }
复制代码


试题解读:
填空1:通过读上面的程序可以看出此空考的是给变量赋初值, av代表的是平均值, 因此av的初值应该是0.0。
填空2:通过for循环可知, 此空代表求平均值, 因此应该填写x / N。
填空3:先把大于平均值的数放在形参y所指数组中, 然后使下标值加1, 因此此空应该填j++。

参考答案:
(1) 0.0
(2) x / N

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|郎哥嵌入式编程社区 ( 鲁ICP备15001146号-5 )

GMT+8, 2026-3-10 18:41 , Processed in 0.013621 second(s), 19 queries .

快速回复 返回顶部 返回列表