问答题 给定程序中,函数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。
【答案解析】