| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 852 人关注过本帖
标题:一道考试题,求解,在线讨论
只看楼主 加入收藏
FMaster
Rank: 2
等 级:论坛游民
帖 子:63
专家分:62
注 册:2010-9-1
结帖率:88.89%
收藏
已结贴  问题点数:10 回复次数:6 
一道考试题,求解,在线讨论
这是一道考试题,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;
    }
搜索更多相关主题的帖子: return 考试题 在线 元素 
2011-09-24 14:06
竹叶
Rank: 2
等 级:论坛游民
帖 子:12
专家分:16
注 册:2011-9-12
收藏
得分:3 
我新人的遇见
A、B 是由于给都是a这个数组的头元素的指针  数组中的元素不好使用
D    是if语句应该在do--while循环体内  
不知道 对不对
2011-09-24 15:00
拾忆
Rank: 2
等 级:论坛游民
帖 子:23
专家分:63
注 册:2011-9-23
收藏
得分:3 
C 项应该返回 n-k,如果返回k-n,那不成负数吗?
2011-09-24 15:16
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:3 
你是要返回元素的下标 而不是指针 C选项显而易见返回的是元素的地址

D是在不想看了 一个低效率复杂度为n的查找没必要写这么复杂吧 最好的查找办法

是先快速排序然后折半查找 总共用时nlogn(快拍)+logn(折半查找)

                                         
===========深入<----------------->浅出============
2011-09-24 15:23
FMaster
Rank: 2
等 级:论坛游民
帖 子:63
专家分:62
注 册:2010-9-1
收藏
得分:0 
这个,A,B给的是指针,都是可以用的,指针是地址,而数组的头元素依然代表的是地址,
而D,IF确实是应该放在外边,因为循环中K可能会越界,if是用来判断这个的。
2011-09-24 15:27
FMaster
Rank: 2
等 级:论坛游民
帖 子:63
专家分:62
注 册:2010-9-1
收藏
得分:0 
回复 3楼 拾忆
C返回n-a,要的是下标
2011-09-24 15:28
杜撰
Rank: 2
来 自:北京
等 级:论坛游民
帖 子:53
专家分:69
注 册:2011-5-14
收藏
得分:0 
A.

  1.我们知道对于一维数组 *a==a[0],*a=x,即a[0]=x,那么通过for 循环岂不是永远都可找到x.
  2.如果第一条理解错了,那么假设a[n]——a[1],全没找到,n--,程序如何确保只在a[1]——a[n]中查找,a[0]如果也找不到,岂不是要返回-1.

这是我关于A选项的一些理解,还请路过的多多指教。

我的青春我做主,奋斗!
2011-09-24 17:28
快速回复:一道考试题,求解,在线讨论
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020952 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved