数据结构笔试题汇总
第一篇 笔试题目
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边和相等,有多少种填法?