问答题
给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数中已置0)。
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#define N 20
void fun( int *a)
{ int i, x, n=0;
x=rand() ;
/**********found**********/
while (n<__1__)
{ for(i=0; i
/**********found**********/
if( x==a[i] ) __2__;
/**********found**********/
if( i==__3__){ a[n]=x; n++; }
x=rand() ;
}
}
main()
{ int x[N]={0} ,i;
fun( x );
printf("The result : /n");
for( i=0; i
{ printf("M",x[i]);
if((i+1)%5==0)printf("/n");
}
printf("/n/n");
}
【正确答案】第一处:一共产生20个随机数,所以应填:N。
第二处:要求产生不同的20个整数,所以采用for循环对已产生的随机数进行比较,是否有相同数,如果有相同,则退出循环体,所以应填:break。
第三处:当退出循环体还是进行判断,i和n的值是否相等,如果相等,则表示该随机整数不重复,可以存放到指定的数组中,所以应填:n。
【答案解析】