免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4112 | 回复: 11
打印 上一主题 下一主题

某难度公司的2011的笔试题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-07 20:54 |只看该作者 |倒序浏览
本帖最后由 magicboatrocket 于 2010-11-08 11:14 编辑

某公司的笔试题,不太明白,记下来,在这里请教了

第一题
加语句使下面if判断总是真的
  1. if( (*foo = 0) ||  ((void *)foo == (void *) &foo) ) {
  2.         printf("we have to go through this line");
  3.     }

  4. 修改
  5. 加:add missing code, 不改变if语句

  6.    
复制代码
第二题,程序填空
(___为需要填空的地方), 愚笨,不知道下段程序到底是要干什么
  1. struct TreeNode {
  2.     struct TreeNode *left;
  3.     struct TreeNode *right;
  4.     int val;
  5. };

  6. struct Stack {
  7.     struct TreeNode *node;
  8.     int flags;
  9. };

  10. #define MAX_STACK 100
  11. void Process(struct TreeNode *Root)
  12. {
  13.     struct Stack Stack[MAX_STACK];
  14.     struct TreeNode *Cur = Root;
  15.     int top = 0;

  16.     while(cur || top > 0) {
  17.         if(cur) {
  18.             Stack[top].node = cur;
  19.             Stack[top++].flags = 0;
  20.             cur = cur->left;
  21.         } else if( ___   ){
  22.             cur = Stack[--top].node;
  23.             PrintNode(cur);
  24.             ____

  25.         } else {
  26.             cur = Stack[top - 1].node;
  27.             Stack[top - 1].flags = 1;
  28.             ____

  29.         }
  30.     }
  31. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2010-11-07 21:21 |只看该作者
求解答..
有啥陷阱么?

像第一个..随便定义一个非const的foo数组不就可以了么?.....

比如 int foo[] ....

论坛徽章:
1
申猴
日期:2014-04-18 16:29:14
3 [报告]
发表于 2010-11-07 21:37 |只看该作者
竟然能记住,佩服!
1题的(*foo = 0)赋值总为真的吗?
2题是树后序遍历?

论坛徽章:
0
4 [报告]
发表于 2010-11-07 21:55 |只看该作者
能问下你面试的是什么职业吗?

论坛徽章:
0
5 [报告]
发表于 2010-11-07 22:25 |只看该作者
本帖最后由 magicboatrocket 于 2010-11-07 22:27 编辑

这是笔试题,EMC的


( *foo =  0) 这个表达式的值是0吧


题目1我也不晓得它要考什么东西,题目就那样了,没有别的信息了

论坛徽章:
0
6 [报告]
发表于 2010-11-07 22:48 |只看该作者
第一题 声明个数组  像 int foo[1];

论坛徽章:
0
7 [报告]
发表于 2010-11-07 22:54 |只看该作者
第二题 题目全么LZ

论坛徽章:
0
8 [报告]
发表于 2010-11-07 23:09 |只看该作者
第二个题目是遍历一颗二叉树,打印出所有的叶子节点信息

填空:
1.Stack[top - 1].flags == 1
2.cur = Stack[top - 1].node->right;
3.cur = cur->right;

论坛徽章:
0
9 [报告]
发表于 2010-11-07 23:21 |只看该作者
第一题
考察表达式运算顺序,在前面加一个恒等式就OK了。

if( 1 || (*foo = 0) ||  ((void *)foo == (void *) &foo) ) {
        printf("we have to go through this line");
    }

论坛徽章:
0
10 [报告]
发表于 2010-11-08 00:28 |只看该作者
本帖最后由 magicboatrocket 于 2010-11-08 00:42 编辑

第一题,我忘了加个条件,不改变if语言,sorry...
原题是add missing code...我想起来了

有人说声明个数组,如
int foo[1]


但是我知道我些编译器是不支持对数组名取地址操作的 &foo

把foo定义成函数指针应该就可以了,明天试下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP