问题 填空题

在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun()的功能是计算数组元素中值为负数的平均值(不包括0)。
例如:数组中元素的值依次为43,47,-21,53,-8,12, 0,则程序的运行结果为-25.333333。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include <conio.h>
#include <stdio.h>
double fun(int x[])

double sum=0.0;
int c=0,i=0;
/*************found*************/
while(x[i]==0)

if(x[i]<0)

sum=sum+x[i];
c++;

i++;

/************found***********/
sum=sum\c;
return sum;
main()

int x[1000];
int i=0;
clrscr();
printf("\nPlease enter some data(end with
0) :”);
do

scanf("%d",&x[i]);
while(x[i++]!=0);
printf("%f\n",fun(x));

答案

参考答案:(1) 错误:while(x[i]==0) 正确:while(x[i]!=0)
(2) 错误:sum=sum\c; 正确:sum=sum/c;

解析:错误1:此处考查的是对循环条件的理解,当被判断的数组元素为0时,说明这是数组的最后一个元素,此时要跳出循环。错误2:C语言中的除法运算符是“/”,而不是“\”。

单项选择题
问答题