计算机二级C语言填空题疑问

这个答案里k没有初始化可以直接取地址吗?(初始化为零的话判错)

#include  
void  fun( int *px,  int  *py)
{
/**********found**********/
   int  a=0,b=0,k ;
   scanf( "%d", &k );
/**********found**********/
   while (k!=0)
   {  if (k>0 ) a++;
      if(k<0 ) b++;
/**********found**********/
     scanf("%d",&k);
   }
   *px=a;  *py=b;
}
main()
{  int  x,  y;
   fun( &x, &y );
   printf("x=%d  y=%d\n", x,y );
}

这到底哪一段是填的空啊???k没有初始化,但接着就是scanf输入了
怎么会写成k=0就不对呢