我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: 关于“腾讯笔试题目”个人看法。 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

死亡舞者





性别: 帅哥 状态: 该用户目前不在线
等级: 品行端正
家族: Counter-Strike
发贴: 155
威望: 0
浮云: 1113
在线等级:
注册时间: 2006-04-30
最后登陆: 2008-06-29

5come5帮你背单词 [ worry /'wΛri/ n. 担心,忧虑,烦恼,令人烦恼的事或人;v. (使)担心,(使)发愁 ]


关于“腾讯笔试题目”个人看法。

题目大概如下:
函数 int dec(int a[], int n)用递归方式判断数组 a[] 前 n项 是否为 非递增, 如果是, 返

回 1, 如果不是 返回 0

1。int dec(int a[], int n)
2。{
3。 if(n <= 1)
4。 {
5。   return _________; //填空 1
6。 }
7。 if(a[0] < a[1])
8。 {
9。  return 0;
10。 }
11。 else return __________; //填空 2
12。}


先要弄清楚题目的意思:判断a[]是否为“非递增”。也就是说,若递增返回0,非递增为1。
程序思路:要从判断是否为“递增”着手,这就需要所有元素比较一次,若有依次比较不为递增,

    就可以判断为“非递增”。当所有元素都比较一次后(也就是n<=1时),a[]就为“递增

    ”,返回0。所以在 填空1 处应该为 “0”。
      在第2个 if 的时候(个人认为)应该是:
      if(a[0] > a[1])
        {
       return 1;
      }
      这里是每次取数组的前2位元素比较,如果不递增(也就是a[0]>a[1]),就不需要进一

部递归了,直接返回1“非递增”。
      else
  return dec(a+1, n-1);   a+1 是个新的数组,是从传递过来的数组a[]中舍弃第一位元素而

组成的新数组。 a是数组起始元素的地址,a+1是第二个元素,把它传递时候就不要考虑前面的数

据了,所以在下个循环里面中比较a[0],a[1],其实是上个循环的a[1],a[2].
    if(!(a[0]>a[1])) return dec(a+1, n-1);
    即 else       return dec(a+1, n-1); //进行下次判断。
所以整个程序为:
int dec( int a[], int n )
{
   if( n <= 1 )
   {
       return 0;//填空1    
   }    
   
   if( a[0] > a[1] ) //此处为修改的
   {
       return 1;    
   }    
   else
   {
       return dec( a+1, n-1 );    //填空2
   }
}

我想是不是公司故意出错这道题目的呢?
毕竟现在 测试人员比编程人员要求更加高,而且市场需求也非常大。
一个大公司不可能出这样的错误的,也许是他们故意。。。。
    想到这里就为明年担忧了!
本帖最近评分记录:
  • 浮云:15 (by zc1984) | 理由: 积极讨论
  • 顶端 Posted: 2006-11-22 15:37 | [楼 主]
    我来我网·5come5 Forum » 程序员之家

    Total 0.007126(s) query 6, Time now is:11-27 15:39, Gzip enabled
    Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号