- 論壇徽章:
- 0
|
本帖最后由 magicboatrocket 于 2010-11-08 11:14 編輯
某公司的筆試題,不太明白,記下來,在這里請教了
第一題
加語句使下面if判斷總是真的- if( (*foo = 0) || ((void *)foo == (void *) &foo) ) {
- printf("we have to go through this line");
- }
- 修改
- 加:add missing code, 不改變if語句
-
復(fù)制代碼 第二題,程序填空
(___為需要填空的地方), 愚笨,不知道下段程序到底是要干什么- struct TreeNode {
- struct TreeNode *left;
- struct TreeNode *right;
- int val;
- };
- struct Stack {
- struct TreeNode *node;
- int flags;
- };
- #define MAX_STACK 100
- void Process(struct TreeNode *Root)
- {
- struct Stack Stack[MAX_STACK];
- struct TreeNode *Cur = Root;
- int top = 0;
- while(cur || top > 0) {
- if(cur) {
- Stack[top].node = cur;
- Stack[top++].flags = 0;
- cur = cur->left;
- } else if( ___ ){
- cur = Stack[--top].node;
- PrintNode(cur);
- ____
- } else {
- cur = Stack[top - 1].node;
- Stack[top - 1].flags = 1;
- ____
- }
- }
- }
復(fù)制代碼 |
|