现在的位置: 首页 > 综合 > 正文

德问网的几道验证问题

2012年10月01日 ⁄ 综合 ⁄ 共 635字 ⁄ 字号 评论关闭

虽然很讨厌这种题。。但还是手贱去做了

int i=1,j=10;
do{
    if(i++>–-j)
    continue;
} while(i<5);

A. i = 6, j = 5
B. i = 5, j = 5
C. i = 6, j = 4
D. i = 5, j = 6

答案:D

在这里,i++是先自加后再比较,j是先比较再自减,运行过程是这样:

1>10

2>9

3>8

4>7

5>6//退出循环

void foo()
{
    int i=60;
    int j=50;
    i=i+j;
    j=i-j;
    i=i-j;
    printf("%d",i);
}

答案:50一种交换数值的算法。其实还有种更简单更高效的交换值.用位运算。。嘿嘿。

    i=i^j;
    j=i^j;
    i=i^j;

这是一道Object-c的题目,看不懂它。。。。。。。。。。

#import <Foundation.h>
int main(void)
{
    int map[3][3] = 
    {
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}
    };
    int **pMap = map;
    printf("%d", pMap[4]);
    return 0;
}

德问网的答案是5,但在C\C++里面这绝对是个错误的。。。。。。。。。。坑爹验证题。。。

int add_number(int n) 
{ 
    static int i=100; 
    i+=n; 
    return i; 
}


int main() {
    int k = add_number(100);
    k+=add_number(100);
    printf("%d", k);
    return 0;
}

答案:500
这道题比较简单
第一次
k = 200,
k = k + 300;
k = 500;


【上篇】
【下篇】

抱歉!评论已关闭.