数据结构笔试题

第一篇 笔试题目

数据结构笔试题

Intel今年笔试题

●第一道是一个编译器优化的题目。条件大致说在ZF为0或者不为0的情况下,分别有两条移位指令可以移

进去。然后出了两个小题,要你优化。

●第二道是N个人围成一圈报数,报到某一个数的就出局,问你最后剩下来的那个人的号码。编程题。

●第三道大致如下:

以下礁龀绦蚰母龅膒erformance高,并解释为什么。

a)

extern int foo(void);

int main()

{

int i;

for(i=0;i<10000;i++) foo();

return i;

}

b)

extern int foo(void);

int i;

int main()

{

for(i=0;i<10000;i++) foo();

return i;

}

●智力题

将如下图形(边长相等,即突出的都是正方形)割成几块,再拼成一个正方形,要求最少最少。

---

| |

--- ---

| |

--- ---

| |

---

● ee试卷考的是电磁场波导,拉式变化,电容器等内容

●下面的程序是否正确,如正确,给出结果,否则,说明理由。

#include

struct A{

int i;

char j;

char * ptr;

long Array[100];

char b[2];

char * c;

};

#define PRINT_ME (char *)&(((struct A *)0)->c)

void main()

{

printf("%d ", PRINT_ME);

}

● Intel EE的IQ测试

有10堆苹果,每一堆10个

其中一堆每个240g

其它每堆都是250g/个

有一把称

请你只称一次把那一堆240的苹果找出来

● Intel 的虚拟函数指针那道题

#include

class CBase

{

public:

virtual void foo()

{ cout<<"foo in base"<

}

virtual void bar()

{

cout<<"bar in base"<

}

};

class CChild : public CBase

{

public:

virtual void foo()

{ cout<<"foo in child"<

}

virtual void bar()

{

cout<<"bar in child"<

}

};

int * get(void);

void main()

{ int c;

void (CBase::* pVirtualPointer)(void);

CBase base;

CChild child;

pVirtualPointer = CBase::foo;

(base.*pVirtualPointer)();

(child.*pVirtualPointer)();

pVirtualPointer = CBase::bar;

(base.*pVirtualPointer)();

(child.*pVirtualPointer)();

cin>>c;

}

●补充一下

1、何时调用拷贝构造函数 (根据一个object创建另一个object,clone)

2、构造函数是否有返回类型

3、一个4word(word=4bytes)的`cache,问以下程序段cache命中率

(a)for( int i=0; i

for(int j=0; j< N; j++)

sum+= a[i][j];

(b)for( int i=0; i

for(int j=0; j< N; j++)

sum+= a[j][i];

4、以下结构是否正确,why?

u8应该是无符号8位的意思吧

struct{

u8 a;

u16 b;

u8 c;

u8 d;

u16 e;

u8 f;

};

5、一个4×4矩阵,已知每列的和(缺第一列)和每行的和,问第一列的和。

6、用伪汇编代码说明Switch语句的jump table的原理。

7、STDCALL的含义。(sigh,记反了,应该是从右到左调用)

● Intel今年在电子科技大学的笔试题

试题分CS和EE两套,做EE题的同学必须做CS题(但其中关于编译的题不用做)

EE的题目

1、电路设计时,什么情况下需要进行信号完整性分析?

2、用一个欧姆表怎么判断出三极管的e、b、c极?

3、简述Nyquist带通采样定理

4、你能想到的最大的影子是什么?

5、24个人要求排成6排,每排5人,如何排?

6、将1~9填入下图所示的圆圈中,使3边和相等,有多少种填法?