给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数 中已置0)。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANKl.C

admin2013-03-29  26

问题 给定程序中,函数fun的功能是:调用随机函数产生20个互不相同的整数放在形参a所指数组中(此数组在主函数
中已置0)。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANKl.C中。
    不得增行或删行,也不得更改程序的结构!
#include  
#include  
#define N 20
void fun(int*a)
{ int i,x,n=0;
  x=rand()%20;
/***********found************/
  while(n<【1】 )
  {  for(i=0;i/***********found************/
    if(x==a)  【2】;
/***********found************/
    if(i== 【3】){  a[n]=x;n++;
    x=rand()%20;
  }
}
main()
{  int x[N]={0},i;
  fun(x);
  printf("The result:\n");
  for(i=0,i  (printf("%4d",x);
    if((i+1)%5==0)printf("\n");
  }
  printlf("\n\n");
}

选项

答案(1)N (2)break (3)n

解析 第一空:fun的功能是调用随机函数产生20个互不相同的整数放在形参a所指数组中,故第一空处的循环条件是n    第二空:“if(x==a)【2】;"如果if语句成立说明新生成的随机数x已经存在与a嘲中了,后面的元素就不用查找了,直接跳出for循环然后再次生成随机数,故第二空处应为“break"。
    第三空:“if(i==【3】){a[n]=x;n++;}"可知是将随机数保存在a所指的数组中,只有当x在数组中不存在相同值的时候,x才可以保存到a所指的数组当中。在第二空处的循环是寻找是否有和x值相同的元素a,如果没有找到循环退出时i变成n,如果找到由于执行break提前跳出循环则i小于n,利用这点可以判断x是否和a数组中的元素存在相同值,故第三空处应为“n"。
转载请注明原文地址:https://jikaoti.com/ti/KBn0FFFM
0

最新回复(0)