数据结构笔试题目总汇

第一篇 笔试题目
Intel今年笔试题
●第一道是一个编译器优化的题目。条件大致说在ZF为0或者不为0的情况下,分别有两条移位指令可以移进去。然后出了两个小题,要你优化。
●第二道是N个人围成一圈报数,报到某一个数的就出局,问你最后剩下来的那个人的号码。编程题。
●第三道大致如下:
以下两个程序哪个的performance高,并解释为什么。
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 <stdio.h>
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/n", PRINT_ME);
}
● Intel EE的IQ测试题   
有10堆苹果,每一堆10个
其中一堆每个240g
其它每堆都是250g/个
有一把称
请你只称一次把那一堆240的苹果找出来
● Intel 的虚拟函数指针那道题
#include <iostream.h>
class CBase
{
public:
     virtual void foo()
    {           cout<<"foo in base"<<endl;
    }
    virtual void bar()
    {
        cout<<"bar in base"<<endl;
    }
};
class CChild : public CBase
{
public:
    virtual void foo()
    {         cout<<"foo in child"<<endl;
    }
    virtual void bar()
   {
        cout<<"bar in child"<<endl;
   }
};
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<M; i++)
for(int j=0; j< N; j++)
sum+= a[j];
(b)for( int i=0; i<M; i++)
for(int j=0; j< N; j++)
sum+= a[j];
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边和相等,有多少种填法?
阐述你的思路,并用伪代码实现
   o
o o
o     o
o o o o
7、简述TCP三次握手过程,并说明为什么要3次握手
8、局域网被网桥或路由器分割成子网有什么好处?
CS的题目
1、一个有符号数与无符号数的转换问题
2、有数组a[M][N],问下面那种算法效率高
(a)for(int i=0;i<M;i++)
        for(int j=0;j<N;j++)
                xxx=a[j].........
(b)for(int i=0;i<N;i++)
        for(int j=0;j<M;j++)
                xxx=a[j].........
3、关于递归调用的一个题:
   int foo(int i)
   {
     if(i==0)
       return 0;
     reurn foo(i/2)+1
   }
   问foo(4)=?
4、一个结构体定义的问题
5、一个编译的问题,关于什么跳转表的(我是EE的,这个题不用作)
6、构造函数都不定义返回类型,对吗?
7、拷贝构造函数在什么情况下被调用?
8、说明带参数的宏和内联函数的区别
● intel在北京考的题目
面试问题:
: 你到现在为止,认为自己最大的成功和失败是什么?
: 举例说明   
#include "stdafx.h"
: : #include <iostream.h>
: : struct bit
: : {        int a:3;
: :          int b:2;
: :          int c:3;
: : };
: : int main(int argc, char* argv[])
: : {        bit s;
: :          char *c = (char*)&s;
: :          *c = 0x99;
: :          cout << s.a <<endl <<s.b<<endl<<s.c<<endl;
: :          return 0;
: : }
: : Output:

●intel的宏定义的题目
struct S{
   int field_1;
   int field_2;
}
void main()
{
    printf("%d:%d",offset(field_1,struct S),offset(field_2,struct S));
}
让你把offset的宏定义写出来
威盛笔试硬件前端
1.一个模拟和数字的混合电路,问布线错误的地方
2.设计一个FIFO的满空信号,读写时钟频率相同,相位不同
3.用Verilog或VHDL写同步和异步复位的DFF
4.2002的16进制
5.画出PCI系统框图
6.写一个什么测试向量
7.两种有限状态机,并画电路
8.写一个英文信
还有3个忘记了

东信笔试题目
笔试:30分钟。
1 压控振荡器的英文缩写
2 动态随机存储器的英文缩写
3 选择电阻时要考虑什么
4 单片机上电后没有运转,首先要检查什么
5 计算机的基本组成部分及其各自的作用
6 用D触发器、与或非门组成二分频电路
专业英语题:1、一篇关于Hacker的文章阅读理解,选择题
              (另外的卷子是讲mobile的辐射的)
            2、智能网业务的中译英
还有一道问答题:通信行业是否与其他行业大不相同?是否需要特殊的管理方式?
威盛软件面试题目
1. char * str1="hello";
   char * str2="hello";
   *str1='p';
   cout<<str2<<str1<<endl;
问执行结果
2. char * str="hello, world!"
    strcpy(str,"hi");
大概是这样,问执行结果
3. RET和RETI两个汇编返回的区别
4. VC中程序编译成汇编后,开头结尾都有固定的两个语句 ,问是什么。

威盛的logic考试
1.用英文写你最近完成了什么样的问题?
3.Z=S?A:B,用cmos电路搭建
4.两位的全加法器的真值表和逻辑电路设计。
5.Verilog的非阻塞赋值问题。
   clk,a=4h'0,b=4h'8,
always@(posedge clk) a=b+1;
always@(posedge clk) a=b+1;
画出a,b得时序图
6.自动售货机。只卖0.35美元的东东,可投0.25, 0.1, 0.05美元,
自设变量,画出状态机图。
还有一些名词解释,一道智力题。
威盛的考题(转自水木)
Software的题
第一题
把x86的数据流图画出来,包括cpu,mem,chipset(south bridge and north..)
io sub-system, AGP, io bus, etc
第二题
(1)说明write back/ write through 的区别,这个好像是关于cache的两种策略吧
我只有关于os的延迟写回等概念,所以这个我不知道
(2)内存读取时间1000ns、cache读取时间100ns,读命中的概率0.9
对cache修改的可能性20%,只读的可能性80%,大致是这么个意思
要你求平均的读时间
第三题
c语言的题
最关键的地方是这样一句话
sprintf(s, "%%.%is/n", 5);
printf(s, "hello, world!");
我不知道%i是不是和%d用法一样
如果是的话,%.5s在字符串里面不知道表示什么意思,有%2.3f之类的,没有听说过%.5
s
第四题
汇编的题
需要掌握的就是x86下面的各个寄存器做什么用处的
题目要求吧这个汇编转成c语言描述
中间有个call语句,之前push,之后pop,此外用到mul运算
第五题
第六题
都是arm的题
第五是选择题,说arm有哪些特点
中间的题,我都没有仔细看了
应该还有两到三道
最后一道题
是说明什么是奈奎斯特定理。
由于是英语的题,而且我对信号处理不熟悉
感觉是奈奎斯特,不知道错没有错,如果没有错的话,别的书上翻译做香农定理吧
开始我选的是logic,看了两眼后,发现有一半不会
就想还是做software吧,毕竟是搞算法的,做的程序也不少了
于是就换了software的题,结果更惨,就会2、3道题
题如下:
最后一道题是逻辑判断,有点gre的味道
中间有个题是设计个全加器,要求用与或非等门,要求写出全过程
我旁边的一个哥们偷偷的问我,卡诺图怎么弄来着,我郁闷的说大概是00, 01, 11, 10
这么个顺序吧
对了,还有个verilog的题,语言很简单,像我这样只会vhdl的也能看懂 : -)
东信笔试题目
笔试:30分钟。
1 压控振荡器的英文缩写
2 动态随机存储器的英文缩写
3 选择电阻时要考虑什么
4 单片机上电后没有运转,首先要检查什么
5 计算机的基本组成部分及其各自的作用
6 用D触发器、与或非门组成二分频电路
专业英语题:1、一篇关于Hacker的文章阅读理解,选择题
              (另外的卷子是讲mobile的辐射的)
            2、智能网业务的中译英
还有一道问答题:通信行业是否与其他行业大不相同?是否需要特殊的管理方式?
我的是中文回答,还有别的卷子是英文回答。
记得的就这些了。大家补充。反正我是歇菜了。
1、自我介绍
2、你做过什么,遇到什么问题,怎么解决    
3、你的工作兴趣是什么
4、你对东信有什么看法,有什么需要了解的?
5、如果没问题,你可以走了。
via 的8道题
1, 三组程序,找出错误,如果有的话.
    1> a.c    long    temp[255];
         b.c     extern *temp;
    2>a.c     long    temp[255];
         b.c    extern    temp[256];
    3>a.c     long    temp[255];
         b.c    extern    temp[];
2, 在第一个声明处编译出了奇怪的错误,为什么?
    #include <stdio.h>
    #include "myfun1.h"
    #include "myfun2.h"
    int myInt1;
int myInt2;
3, printf("0x%x", (&0)[-1]); 请问打印了什么?
4, #define offset(s,c) 同intel的题.
5, 汇编,用ax,bx,cx,dx, 求1000*1000/30(四舍五入), 结果放在ax中.
6, 编最优化Bubble(int *pIntArray,int L),要求:交换元素不能用临时变量,如果有序,需
要最优.
7,      1,2,3,4,5,6,7,8,9从栈里出来的可能性. (略)
8,     求一个struct的sizeof.(略)
这两题没太大难度.
招聘考题(一)
TC2.0 环境下的如下程序, 执行结果为
please input: scanf : floating point formats not linked
Abnormal program termination
试解决!
#include "stdio.h"
#include "stdlib.h"
main()
{
float *a;
a = (float *)malloc(10*sizeof(float));
printf("
Please input: ");
scanf("%f", &a[0]); /* &a[0] 也不行 */
printf("
What you have input is %f
", *a);
getch();
free(a);
}

re:招聘考题一道           
tc2.0中用scanf输入数组的值不能使用浮点型。
只要一用就会出现题目中的错误。
据说这是一个没有解决的BUG。
要解决这个问题可以使用一个变量充当“中间人”传送数据。
其实方法很多的。

微软试题
微软,软件业的巨人,是每个的特别是年轻软件开发人的梦想之地,微软的面试是非常严格的,录取比例大约是60有中选一人,相信可爱的梦想家们肯定急切的想知道怎么样才能幸运的成为1/60!
  微软面试试题可分为(1)迷语,(2)算法,(3)应用程序,(4)智力等等,
本文为迷语篇
  现取部分试题内容:
  1.为什么下水道的盖子是圆的?
  2.美国有多少辆汽车?
  3.你让工人为你工作七天,回报是一根金条。这个金一平分成相连的7段,你必须在每天结束的时候给他们一段金条如果只许你两次把金条弄断,你如果给你的工人付费?
  4.有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和两辆火车现时启动,比洛杉叽出发,碰到另辆车后返回,依次在两辆火车来回的飞行,只到两面辆火车相遇,请问,这只小鸟习行了多长距离?
  5.你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到红球的准确几率是多少?
  6.想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒上下?
  7.你有四人装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?
  8.如果你有无穷多的水,一个3夸脱的和一个5夸脱的提桶,你如何准确称出4夸脱的水?
  9.你有一桶果冻,其中有黄色,绿色,红色三种,,闭上眼睛选出同样颜色的两个,抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?
  10.将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?
11.如果要你能去掉50个州的任何一个,那你去掉哪一个,为什么?
Riddles
* Why is a manhole cover round?
* How many cars are there in the USA?

1. 把一个链表反向,递归,非递归都写一遍。 1.试编写3个函数实现   (1)建立一个双向链表   (2)插入一个节点   (3)删除一个节点 2.自己定义数据结构,写出程序:二叉树的前序遍历。 3.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 4.下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort 5.哪种结构,平均来讲,获取一个值最快 a. binary tree b. hash table c. stack 6.一个二叉树的三种遍历方法的输出结果 7.链表按升序打印每打印完一个节点就将该节点从链表中删除 8.选择一种算法来整理出一个链接表。你为什么要选择这种方法?现在用o(n)时间来做。 9. 用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。    10.给两个变量,如何找出一个带环单链表中是什么地方出现环的? 11.哈希表和数组的定义,区别,优缺点。 12.链接表和数组之间的区别是什么? 任选一门语言,当场定义二叉排序树数据结构,写出两个函数:初始化,删除一个节点,20分钟 13. 递归的折半查找算法[不限语言] 14. 解释一下什么是B+树,如何实现B+树的查找和插入.(用图示) 15.实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数。 13.排序方法比较 (intel) 排序方法 平均时间 最坏时间 辅助存储 直接插入排序 O(N2) O(N2) O(1) 起泡排序 O(N2) O(N2) O(1) 快速排序 O(Nlog2N) O(N2) O(Nlog2N) 简单选择排序 O(N2) O(N2) O(1) 堆排序 O(Nlog2N) O(Nlog2N) O(1) 归并排序 O(Nlog2N) O(Nlog2N) O(n) 基数排序 O(d(n+radix)) O(d(n+radix)) O(radix) 17.一个链表的操作,注意代码的健壮和安全性。要求: (1)增加一个元素; (2)获得头元素; (3)弹出头元素(获得值并删除)。 18.内排序算法 19.折半查找的复杂度,证明 20.sizeof()和strlen()的使用. 21.顺序存储结构的优点,散列法的思想是什么? 22.汉罗塔算法,不能递归... 23.一个链表的结点结构 struct Node { int data ; Node *next ; }; typedef struct Node Node ; (1)已知链表的头结点head,写一个函数把这个链表逆序 ( Intel) (2)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表 依然有序。 (3)已知两个链表head1 和head2 各自有序,请把它们合并成一个链表 依然有序,这次要求用递归方法进行。 ( Autodesk) 24.编最优化Bubble(int *pIntArray,int L),要求:交换元素不能用临时变量,如果有序需要最优。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值