一道考试题,求解,在线讨论
这是一道考试题,ITAT的,一道多选题,想不明白,答案是选的ABD,看了半天不明白它为什么。。。求个说法,在线等。。。。。。(2)要求函数的功能是在一维数组a中查找x值。若找到,则返回所在的下标值;否则,返回0。设数据放在数组元素的a[1]到a[n]中。在以下给出的函数中,不能正确执行此功能的有( )。
A、funa(int *a, int n, int x)
{
*a = x;
while(a[n] != x) n--;
return n;
}
B、funb(int *a, int n, int x)
{
int k;
for(k = 1; k <= n; k++)
if(a[k] == x) return k;
return 0;
}
C、func(int a[], int n, int x)
{
int *k;
a[0] = x; k = a+n;
while(*k != x) k--;
return k - n;
}
D、fund(int a[], int n, int x)
{
int k = 0;
do
{k++;
}while((k < n+1)&&(a[k]!=x));
if((k < n+1)&&a[k] == x)) return k;
else return 0;
}