“火柴棍式”程序员面试题 | 酷壳

酷壳  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  
e&&s.heightt&&s.width=w&&t<=b+w}function S(){var e=document.createElement("audio");e.setAttribute("class",l);e.src=i;e.loop=false;e.addEventListener("canplay",function(){setTimeout(function(){x(k)},500);setTimeout(function(){N();p();for(var e=0;eIf you are reading this, it is because your browser does not support the audio element. We recommend that you get a new browser.

";document.body.appendChild(e);e.play()}function x(e){e.className+=" "+s+" "+o}function T(e){e.className+=" "+s+" "+u[Math.floor(Math.random()*u.length)]}function N(){var e=document.getElementsByClassName(s);var t=new RegExp("\\b"+s+"\\b");for(var n=0;nHigh一下!

酷壳 – CoolShell.cn

享受编程和技术所带来的快乐 – http://coolshell.cn
  • 首页
  • 推荐文章
  • 本站插件
  • 留言小本
  • 关于酷壳
  • 关于陈皓
首页 > C/C++语言, 趣味问题 > “火柴棍式”程序员面试题

“火柴棍式”程序员面试题

2011年3月21日 陈皓 发表评论 阅读评论 43,320 人阅读    

有时候,有些面试题是很是无厘头,这不,又有一个,还记得小时候玩的的“火柴棍游戏”吗,就是移动一根火柴棍改变一个图或字的游戏。程序面试居然也可以这么玩,看看下面这个火柴棍式的程序面试题吧。

下面是一个C程序,其想要输出20个减号,不过,粗心的程序员把代码写错了,你需要把下面的代码修改正确,不过,你只能增加或是修改其中的一个字符,请你给出三种答案。

int n = 20;

for(int i = 0; i < n; i--){
    printf("-");
}

不要以为这题不是很难,我相信你并不那么容易能找到3种方法。我觉得,如果你能在10分钟内找出这三种方法,说明你真的很聪明,而且反应很快。当然,15分钟内也不赖。不过,你要是30分钟内找不到三种方法,当然,不说明你笨了,最多就是你的反应还不够快。嘿嘿。就当是玩玩吧。

下面是我的答案:

//第一种解法:在for循环中给n加一个负号
for(int i = 0; i < -n; i--)

//第二种解法:把 n 初始化成 -20
int n = -20;

//第三种解法:把for循环中的 i 初始化成40
for(int i = 40; i < n; i--)

不过,我要告诉你,以上这些答案都不对(我就知道你会偷看答案的),不过,顺着这些思路走很接近了。呵呵。

下面是正确答案——

//第一种解法:在for循环中给 i 加一个负号
for(int i = 0; -i < n; i--)

//第二种解法:在for循环中把 i-- 变成 n--
for(int i = 0; i < n; n--)

//第三种解法:把for循环中的 < 变成 +
for(int i = 0; i + n; i--)

其它相关的变种题如下:

  • 通过修改、增加一个字符,让其输出21个减号
  • 通过修改、增加一个字符,让其只输出1个减号
  • 通过修改、增加一个字符,让其不输出减号

(全文完)

(转载本站文章请注明作者和出处 酷壳 – CoolShell.cn ,请勿用于任何商业用途)

——=== 访问 酷壳404页面 以支持公益事业 ===——
分类: C/C++语言, 趣味问题 标签: C++, Puzzle, 面试
好烂啊有点差凑合看看还不错很精彩 (35 人打了分,平均分: 4.83 )
Loading ... Loading ...

相关文章

  • 2012年08月01日 -- 一个fork的面试题
  • 2012年11月22日 -- 为什么不能用微信或米聊这类的软件
  • 2011年02月28日 -- 打印质数的各种算法
  • 2011年01月07日 -- 输出从1到1000的数
  • 2011年04月02日 -- 又一个有趣的面试题
  • 2010年06月23日 -- 面试题:布尔变量
  • 2012年08月06日 -- C++的坑真的多吗?
  • 2012年09月20日 -- C/C++语言中闭包的探究及比较
Zemanta
评论 (2693) Trackbacks (12) 发表评论 Trackback
  1. tjhgit_it
    2011年10月10日13:36 | #1
    回复 | 引用

    dddd

  2. 123
    2011年10月11日07:39 | #2
    回复 | 引用

    n–

  3. 丹丹tu
    2011年10月11日09:50 | #3
    回复 | 引用

    求解啊!

  4. 御剑逍遥
    2011年10月11日15:57 | #4
    回复 | 引用

    找到三种方法了,-, +, n

  5. 733
    2011年10月11日16:36 | #5
    回复 | 引用

    强;了

  6. 我的天涯
    2011年10月11日16:57 | #6
    回复 | 引用

    是什么呢?

  7. uohzoaix
    2011年10月11日17:50 | #7
    回复 | 引用

    看看哦

  8. Barbapapa
    2011年10月11日19:15 | #8
    回复 | 引用

    -i–

  9. jonny
    2011年10月12日11:52 | #9
    回复 | 引用

    囧了,反应不够快……

  10. onlookeryy
    2011年10月12日13:34 | #10
    回复 | 引用

    求解~~~

  11. sorfans
    2011年10月12日13:41 | #11
    回复 | 引用

    不顶不行了,我笨

  12. kaedelin
    2011年10月12日16:31 | #12
    回复 | 引用

    求解~~~

  13. Penna
    2011年10月13日11:51 | #13
    回复 | 引用

    just to see the answer

  14. dx2880
    2011年10月13日13:05 | #14
    回复 | 引用

    看答案啊看答案

  15. iw_deity
    2011年10月13日15:00 | #15
    回复 | 引用

    想出两种来

  16. linhui568
    2011年10月29日10:25 | #16
    回复 | 引用

    想出一种就看答案了!

  17. ytwei
    2011年11月16日18:31 | #17
    回复 | 引用

    变种题是博主自己解题过程中产生的,我觉得不好。编程功底还需要再修炼啊。

  18. lixinqi
    2011年11月21日18:55 | #18
    回复 | 引用

    我一直觉得这么些trick不应该是程序员要追求的, 我们应该把更多的心思放在更好的设计上.

  19. gostarter
    2011年12月29日19:23 | #19
    回复 | 引用

    想出一个就看答案了,还是反应不够快啊!

  20. WOLFKING
    2011年12月30日15:02 | #20
    回复 | 引用

    7分钟想出前两种 最后一种不太容易发现!

  21. 逍遥潘达
    2012年1月17日11:15 | #21
    回复 | 引用

    没看答案情况下不到十分钟想出了1、3两种,第二种没有意识到,想到了一个错的,中招..!!

  22. krime
    2012年1月17日13:48 | #22
    回复 | 引用

    1.~ 2.& 3.

  23. leemax
    2012年1月18日10:10 | #23
    回复 | 引用

    一不小心就给都想出来了。。。

  24. playmud
    2012年3月28日14:11 | #24
    回复 | 引用

    第一个想法就是把20改成21,这。。。。

  25. h007
    2012年4月17日14:27 | #25
    回复 | 引用

    我也找到了,但是花了30 多分钟,反应果然比较慢。。。。

  26. 吃核桃不吐核桃皮
    2012年4月18日14:36 | #26
    回复 | 引用

    第三种方法,条件不是必须要布尔型的嘛?难道别的也可以

  27. John
    2012年4月27日16:40 | #27
    回复 | 引用

    吃核桃不吐核桃皮 :
    第三种方法,条件不是必须要布尔型的嘛?难道别的也可以

    第三种一开始真没看明白,猜想可能 0为false,非0为true吧

  28. Tidus
    2012年4月27日17:52 | #28
    回复 | 引用

    本来看过这个了的,也没啥印象了,今天又想了一下,竟然乱打乱碰弄出一个新答案。
    for(int i = 0; ~i < n; n–)

  29. buddy
    2012年5月10日06:01 | #29
    回复 | 引用

    +号的 没想出来。

  30. Archer
    2012年6月13日11:16 | #30
    回复 | 引用

    想出来2、3,第一种先想的i<-n,真心觉得知道思路还是要仔细验证,失之毫厘谬以千里,要努力客服自己想当然的缺点。。唉~

  31. hao
    2012年7月18日15:50 | #31
    回复 | 引用

    哈哈,只想出第一种和第二种,真够考验智商的。

  32. sam
    2012年7月28日04:50 | #32
    回复 | 引用

    这个blog真的不错

  33. bob
    2012年8月21日12:44 | #33
    回复 | 引用

    个人认为第2种最靠谱,因为不管i是有符号数还是无符号数,都对

  34. 大湿
    2012年10月5日18:58 | #34
    回复 | 引用

    只找到了三种

  35. 小九
    2012年10月8日19:45 | #35
    回复 | 引用

    擦 我i只找到了2种,第3种,没有想到,当i=-20时,i+n==0厉害~~

  36. Silverbullettt
    2012年10月23日21:14 | #36
    回复 | 引用

    把 i < n 改成 ~i < n,可以输出21个减号。

  37. Martin Wood
    2012年12月11日11:16 | #37
    回复 | 引用

    @吃核桃不吐核桃皮
    在有些语言里面 整型0 1 同效 布尔型false true,不过有一些语言就不行。。所以像楼主说的,just joy

  38. wsmsyc
    2013年1月8日17:37 | #38
    回复 | 引用

    @lixinqi
    支持。但是这种trick权当开阔思维。

  39. lili
    2013年1月8日18:07 | #39
    回复 | 引用

    ding

  40. lili
    2013年1月27日10:35 | #40
    回复 | 引用

    这道题目前有四种答案

  41. 王老虎
    2013年4月22日14:13 | #41
    回复 | 引用

    我以为正确的试试才知道错了,为啥呢

  42. angkorpeach
    2013年6月19日16:10 | #42
    回复 | 引用

    我看到这个题目的第一反应是c语言的for的括号里不能定义int i = 0,根本就没注意到后面的i–……

评论分页
« 上一页 1 52 53 54 3961
  1. 2011年3月22日01:14 | #1
    火柴棍与邪恶的惯性思维 | 忙碌の驿站 manglu.net
  2. 2011年3月23日00:16 | #2
    klion26 » 你的C语言很牛吗?来试试这个
  3. 2011年4月1日11:23 | #3
    XiFage's Blog » “火柴棍式”程序员面试题
  4. 2011年4月2日11:22 | #4
    有一个有趣的面试题 | 酷壳 – CoolShell.cn
  5. 2011年4月20日08:36 | #5
    再谈“我是怎么招聘程序员的”(下) | 酷壳 – CoolShell.cn
  6. 2011年4月20日14:33 | #6
    再谈“我是怎么招聘程序员的” | laura's site
  7. 2011年4月27日17:14 | #7
    再谈“我是怎么招聘程序员的”(上) | Xeno Joshua
  8. 2011年4月27日17:14 | #8
    再谈“我是怎么招聘程序员的”(下) | Xeno Joshua
  9. 2011年12月20日14:37 | #9
    如何学好C++语言 | 搜索引擎技术博客
  10. 2012年7月13日10:34 | #10
    [转]再谈“我是怎么招聘程序员的” » 浪迹他乡 | 王伟的主页 | 浪迹他乡 | 王伟的主页
  11. 2012年7月15日00:17 | #11
    “火柴棍式”程序员面试题 | 互联网纪事
  12. 2013年5月5日21:11 | #12
    再谈“我是怎么招聘程序员的”(上) | 酷壳 – CoolShell.cn
订阅评论

程序员那些悲催的事儿 可视化的排序过程
订阅
  • Google
  • 有道
  • 鲜果
  • 抓虾
  • My Yahoo!
  • newsgator
  • Bloglines
  • 哪吒
  • QQ Mail
  • Douban
  • Rojo
  • Pageflakes
Twitter

本站公告

访问 酷壳404页面 支持公益!

酷壳建议大家多使用RSS访问阅读(本站已经是全文输出,推荐使用Google Reader)。有相关事宜欢迎电邮:haoel(at)hotmail.com。最后,感谢大家对酷壳的支持和体谅!

感谢 42qu.com 为本站提供 VPS

最新文章

  • Javascript 装载和执行
  • 无锁HashMap的原理与实现
  • 浏览器的渲染原理简介
  • 疫苗:Java HashMap的死循环
  • “C++的数组不支持多态”?
  • Unix考古记:一个“遗失”的shell
  • PFIF网上寻人协议
  • “作环保的程序员,从不用百度开始”
  • 《Rework》摘录及感想
  • 实例分析Java Class的文件结构
  • 并发框架Disruptor译文
  • sed 简明教程
  • AWK 简明教程
  • Linus:利用二级指针删除单向链表
  • 从面向对象的设计模式看软件设计
  • 应该知道的Linux技巧
  • 程序算法与人生选择
  • Web工程师的工具箱
  • 如此理解面向对象编程
  • 程序员疫苗:代码注入
  • 你可能不知道的Shell
  • 为什么不能用微信或米聊这类的软件
  • 如何测试洗牌程序
  • Go 语言简介(下)— 特性
  • Go 语言简介(上)— 语法
  • TF-IDF模型的概率解释
  • xkcd 神图“Click and Drag”
  • Bret Victor – Learnable Programming
  • C/C++语言中闭包的探究及比较
  • 对九个超级程序员的采访

全站热门

  • 程序员技术练级攻略
  • 简明 Vim 练级攻略
  • 如何学好C语言
  • 6个变态的C语言Hello World程序
  • 由12306.cn谈谈网站性能技术
  • Android将允许纯C/C++开发应用
  • “21天教你学会C++”
  • 我是怎么招聘程序员的
  • 应该知道的Linux技巧
  • 做个环保主义的程序员
  • “作环保的程序员,从不用百度开始”
  • 28个Unix/Linux的命令行神器
  • 编程真难啊
  • Web开发中需要了解的东西
  • C++ 程序员自信心曲线图
  • SteveY对Amazon和Google平台的吐槽
  • 20本最好的Linux免费书籍
  • 如何写出无法维护的代码
  • 各种流行的编程风格
  • 程序算法与人生选择
  • 深入理解C语言
  • 如何学好C++语言
  • Windows编程革命简史
  • 面试题:火车运煤问题
  • 三个事和三个问题
  • 别的程序员是怎么读你的简历的
  • 老手是这样教新手编程的
  • 偷了世界的程序员
  • C语言的谜题
  • 再谈“我是怎么招聘程序员的”(上)

新浪微博

标签

agile AJAX Algorithm Android Bash C++ Coding CSS Database Design design pattern ebook Flash Game Go Google HTML IE Java Javascript jQuery Linux MySQL OOP password Performance PHP Programmer programming language Puzzle Python Ruby SQL TDD UI Unix vim Web Windows XML 口令 安全 程序员 算法 面试

分类目录

  • .NET编程 (2)
  • Ajax开发 (9)
  • C/C++语言 (50)
  • Erlang (1)
  • Java语言 (29)
  • PHP脚本 (11)
  • Python (20)
  • Ruby (4)
  • Unix/Linux (63)
  • Web开发 (99)
  • Windows (12)
  • 业界新闻 (25)
  • 企业应用 (2)
  • 技术新闻 (32)
  • 技术管理 (7)
  • 技术读物 (115)
  • 操作系统 (43)
  • 数据库 (10)
  • 杂项资源 (246)
  • 流程方法 (43)
  • 程序设计 (67)
  • 系统架构 (5)
  • 编程工具 (61)
  • 编程语言 (157)
  • 网络安全 (21)
  • 职场生涯 (32)
  • 趣味问题 (13)
  • 轶事趣闻 (145)

归档

  • 2013 年六月 (1)
  • 2013 年五月 (3)
  • 2013 年四月 (3)
  • 2013 年三月 (3)
  • 2013 年二月 (5)
  • 2013 年一月 (1)
  • 2012 年十二月 (4)
  • 2012 年十一月 (5)
  • 2012 年十月 (3)
  • 2012 年九月 (4)
  • 2012 年八月 (8)
  • 2012 年七月 (4)
  • 2012 年六月 (7)
  • 2012 年五月 (6)
  • 2012 年四月 (6)
  • 2012 年三月 (6)
  • 2012 年二月 (3)
  • 2012 年一月 (6)
  • 2011 年十二月 (5)
  • 2011 年十一月 (9)
  • 2011 年十月 (6)
  • 2011 年九月 (5)
  • 2011 年八月 (14)
  • 2011 年七月 (6)
  • 2011 年六月 (12)
  • 2011 年五月 (5)
  • 2011 年四月 (18)
  • 2011 年三月 (16)
  • 2011 年二月 (16)
  • 2011 年一月 (18)
  • 2010 年十二月 (11)
  • 2010 年十一月 (11)
  • 2010 年十月 (19)
  • 2010 年九月 (15)
  • 2010 年八月 (10)
  • 2010 年七月 (20)
  • 2010 年六月 (9)
  • 2010 年五月 (13)
  • 2010 年四月 (12)
  • 2010 年三月 (11)
  • 2010 年二月 (7)
  • 2010 年一月 (9)
  • 2009 年十二月 (22)
  • 2009 年十一月 (27)
  • 2009 年十月 (17)
  • 2009 年九月 (15)
  • 2009 年八月 (21)
  • 2009 年七月 (18)
  • 2009 年六月 (19)
  • 2009 年五月 (27)
  • 2009 年四月 (53)
  • 2009 年三月 (43)

最新评论

  • angkorpeach: 我看到这个题目的第一反应是c语言的for的括号里不能定义in t i = 0,根本就没注意到后面的i–……
  • iterzebra: 请教如上问题~
  • iterzebra: public class Link { private long src; private short srcPort; private long dst; private short dstPort;...
  • lastspring: 没说反吧。hash表的建立就是基于key的,如果key值不一 样的话那就是非常棒的hash表,但是如果hash的键值冲突的 话,就需要别的处理方法,这里应该是书上所说的链接法。然...
  • 科品仪器: 要是来个国言的语言就好了,让菜鸟们也能当当大侠
  • 问一个问题: 您那么推崇国外邮箱,甚至说自己从来不用国内邮箱。棱镜项目安全 么?这就是你的安全,专业?科学是有国际的,洋帮办
  • XXXX: 能否建议一下 把页面的字体改为courier New或者微软雅黑的字体?
  • bennet2009: 链接都无法打开
  • cary: 建议存活阶段在添加一个 :q! 强制退出不保存, 以及 :u 撤销 Ctrl + r 取消撤销.
  • sqaernrsqvzt: sqocfbijwauk
  • danameli: I am often blogging and i really appreciate your content. The article has really peaked my interest.
  • ameblo: The subsequent moment I learn your weblog, I hope it doesnt fail me when a great deal as this. I imply, I can...
  • 李春亮: $ awk ‘NR!=1{print > $6}’ netstat.txt 这句应该是$ awk ‘NR!=1{print $6}’ netstat.txt这样吧。 谢谢
  • E7: @stevenxu 别这么二可以吗?看官们的智商都被你拉低了
  • ancharn: L=AW L: queue length A: arrival rate W: wait time, W=Q+S, Q: queue time, S: service time, S=Tsys+Tuser

友情链接

  • 陈皓的博客
  • 并发编程
  • 四火的唠叨
  • devtext 开发者社区
  • Claymore's blog
  • Dutor.net
  • bones7456
  • Keengle's Blog
  • 简明现代魔法
  • 罗素工作室
  • 代码回音
  • HelloGcc Working Group
  • 吕毅的Blog
  • Todd Wei的Blog
  • C++爱好者博客
  • HTML5研究小组
  • 12Free
  • 朱文昊Albert Zhu
  • C瓜哥的博客
  • 开源吧
  • 靖难|魔都小码农
  • ACMer
  • 陈鹏个人博客
  • OneCoder
  • 狂Shell – Happy Hacking
  • TekTea's Blog
  • 夕水溪下

功能

  • 注册
  • 登录
  • 文章 RSS
  • 评论 RSS
  • WordPress.org
回到顶部 WordPress
版权所有 © 2009-2013 酷壳 – CoolShell.cn
主题由 NeoEase 提供, 通过 XHTML 1.1 和 CSS 3 验证.

随意打赏

提交建议
微信扫一扫,分享给好友吧。