peterfeng

  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  22 随笔 :: 1 文章 :: 46 评论 :: 0 Trackbacks
今天找资料,无意发现了一个csdn bloger发布了几道MOTO的笔试题目,都是关于C语言的,看起来都很基础,但确实涵盖了C的一些精髓。现摘抄一道题目与大家分享,同时也是对自己C语言学习的一个检测吧,其中的一道题目是这样的 :
void fun(int x)
{
if(x/2>0)fun(x/2);
printf("%d",x);
}
求fun(10)的输出结果。
乍一看,还真没什么,可是这小小的题目确包含了C语言里最神奇的算法--递归。为了验证自己的想法,在VC下运行了一下,测试代码如下:
#include<stdio.h>
int main()
{
  void fun(int x);
 fun(10);
}
void fun(int x)
{
 if(x/2>0)fun(x/2);
printf("%d/n",x);
}

结果如下:1、2、5、10
开始还以为是10、5、2、1呢,最后细想了一下的确应该是1、2、5、10。呵呵,和我犯一样错误的朋友们,可以慢慢揣摩下递归的原理。
posted on 2006-05-12 19:23 peterfeng 阅读(817) 评论(0)  编辑 收藏 引用 所属分类: program
只有注册用户登录后才能发表评论。