数据结构面试题.docx

上传人:b****7 文档编号:11218839 上传时间:2023-02-25 格式:DOCX 页数:47 大小:35.90KB
下载 相关 举报
数据结构面试题.docx_第1页
第1页 / 共47页
数据结构面试题.docx_第2页
第2页 / 共47页
数据结构面试题.docx_第3页
第3页 / 共47页
数据结构面试题.docx_第4页
第4页 / 共47页
数据结构面试题.docx_第5页
第5页 / 共47页
点击查看更多>>
下载资源
资源描述

数据结构面试题.docx

《数据结构面试题.docx》由会员分享,可在线阅读,更多相关《数据结构面试题.docx(47页珍藏版)》请在冰豆网上搜索。

数据结构面试题.docx

数据结构面试题

数据结构笔试题目总汇

作者:

高校人才网来源:

网络日期:

2010-04-1916:

26点击:

261次

第一篇笔试题目

Intel今年笔试题

●第一道是一个编译器优化的题目。

条件大致说在ZF为0或者不为0的情况下,分别有两条移位指令可以移进去。

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

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

编程题。

●第三道大致如下:

以下两个程序哪个的performance高,并解释为什么。

a)

externintfoo(void);

intmain()

{

inti;

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

returni;

}

b)

externintfoo(void);

inti;

intmain()

{

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

returni;

}

●智力题

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

---

||

------

||

------

||

---

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

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

#include

structA{

inti;

charj;

char*ptr;

longArray[100];

charb[2];

char*c;

};

#definePRINT_ME(char*)&(((structA*)0)->c)

voidmain()

{

printf("%d\n",PRINT_ME);

}

●IntelEE的IQ测试题

有10堆苹果,每一堆10个

其中一堆每个240g

其它每堆都是250g/个

有一把称

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

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

#include

classCBase

{

public:

virtualvoidfoo()

{cout<<"fooinbase"<

}

virtualvoidbar()

{

cout<<"barinbase"<

}

};

classCChild:

publicCBase

{

public:

virtualvoidfoo()

{cout<<"fooinchild"<

}

virtualvoidbar()

{

cout<<"barinchild"<

}

};

int*get(void);

voidmain()

{intc;

void(CBase:

:

*pVirtualPointer)(void);

CBasebase;

CChildchild;

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(inti=0;i

for(intj=0;j

sum+=a[i][j];

(b)for(inti=0;i

for(intj=0;j

sum+=a[j][i];

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

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

struct{

u8a;

u16b;

u8c;

u8d;

u16e;

u8f;

};

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

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

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

oo

oo

oooo

7、简述TCP三次握手过程,并说明为什么要3次握手

8、局域网被网桥或路由器分割成子网有什么好处?

CS的题目

1、一个有符号数与无符号数的转换问题

2、有数组a[M][N],问下面那种算法效率高

(a)for(inti=0;i

for(intj=0;j

xxx=a[i][j].........

(b)for(inti=0;i

for(intj=0;j

xxx=a[j][i].........

3、关于递归调用的一个题:

intfoo(inti)

{

if(i==0)

return0;

reurnfoo(i/2)+1

}

问foo(4)=?

4、一个结构体定义的问题

5、一个编译的问题,关于什么跳转表的(我是EE的,这个题不用作)

6、构造函数都不定义返回类型,对吗?

7、拷贝构造函数在什么情况下被调用?

8、说明带参数的宏和内联函数的区别

●intel在北京考的题目

面试问题:

:

你到现在为止,认为自己最大的成功和失败是什么?

:

举例说明

#include"stdafx.h"

:

:

#include

:

:

structbit

:

:

{inta:

3;

:

:

intb:

2;

:

:

intc:

3;

:

:

};

:

:

intmain(intargc,char*argv[])

:

:

{bits;

:

:

char*c=(char*)&s;

:

:

*c=0x99;

:

:

cout<

:

:

return0;

:

:

}

:

:

Output:

●intel的宏定义的题目

structS{

intfield_1;

intfield_2;

}

voidmain()

{

printf("%d:

%d",offset(field_1,structS),offset(field_2,structS));

}

让你把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<

问执行结果

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@(posedgeclk)a=b+1;

always@(posedgeclk)a=b+1;

画出a,b得时序图

6.自动售货机。

只卖0.35美元的东东,可投0.25,0.1,0.05美元,

自设变量,画出状态机图。

还有一些名词解释,一道智力题。

威盛的考题(转自水木)

Software的题

第一题

把x86的数据流图画出来,包括cpu,mem,chipset(southbridgeandnorth..)

iosub-system,AGP,iobus,etc

第二题

(1)说明writeback/writethrough的区别,这个好像是关于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.clongtemp[255];

b.cextern*temp;

2>a.clongtemp[255];

b.cexterntemp[256];

3>a.clongtemp[255];

b.cexterntemp[];

2,在第一个声明处编译出了奇怪的错误,为什么?

#include

#include"myfun1.h"

#include"myfun2.h"

intmyInt1;

intmyInt2;

3,printf("0x%x",(&0)[-1]);请问打印了什么?

4,#defineoffset(s,c)同intel的题.

5,汇编,用ax,bx,cx,dx,求1000*1000/30(四舍五入),结果放在ax中.

6,编最优化Bubble(int*pIntArray,intL),要求:

交换元素不能用临时变量,如果有序,需

要最优.

7,1,2,3,4,5,6,7,8,9从栈里出来的可能性.(略)

8,求一个struct的sizeof.(略)

这两题没太大难度.

招聘考题

(一)

TC2.0环境下的如下程序,执行结果为

pleaseinput:

scanf:

floatingpointformatsnotlinked

Abnormalprogramtermination

试解决!

#include"stdio.h"

#include"stdlib.h"

main()

{

float*a;

a=(float*)malloc(10*sizeof(float));

printf("

Pleaseinput:

");

scanf("%f",&a[0]);/*&a[0]也不行*/

printf("

Whatyouhaveinputis%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

*Whyisamanholecoverround?

*HowmanycarsarethereintheUSA?

参考链接:

数据结构C/C++笔试题整理

笔试经验积累2008-10-2311:

31:

07阅读825评论0  字号:

大中小 订阅

嗯,这是我从学校bbs精华区整理的c/c++及数据结构的笔试以及部分面试题集锦,觉得只要搞懂了这些题目,大部分的笔试都不惧了。

希望能给需要的人带来帮助。

顺便攒rp^_^

不过大部分题目没有答案,欢迎补充哦~~~~

一:

已知类String的原型为:

classString

{

public:

String(constchar*str=NULL);//普通构造函数

String(constString);//拷贝构造函数

~String(void);//析构函数

String&operator=(constString);//赋值构造函数

private:

char*m_data;//用于保存字符串

};

请编写String的上述4个函数。

答案:

版本1

//String的析构函数

String:

:

~String(void)//3分

{

delete[]m_data;

//由于m_data是内部数据类型,也可以写成deletem_data;

}

String:

:

String(constchar*str)

{

if(str==NULL)

{

m_data=newchar[1];//若能加NULL判断则更好

*m_data=‘{post.content}’;

}

else

{

intlength=strlen(str);

m_data=newchar[length+1];//若能加NULL判断则更好

strcpy(m_data,str);

}

}

//拷贝构造函数

String:

:

String(constString&other)

{

intlength=strlen(other.m_data);

m_data=newchar[length+1];//若能加NULL判断则更好

strcpy(m_data,other.m_data);

}

//赋值函数

String&String:

operate=(constString&other)

{

//

(1)检查自赋值

if(this==&other)

return*this;

//

(2)释放原有的内存资源

delete[]m_data;

//(3)分配新的内存资源,并复制内容

intlength=strlen(other.m_data);

m_data=newchar[length+1];//若能加NULL判断则更好

strcpy(m_data,other.m_data);

//(4)返回本对象的引用

return*this;

}

版本2

String:

:

String(constchar*str)

{

if(str){

memset(m_data,0,strlen(m_data));

strcpy(m_data,str);

}

else*m_data=0;

}

String:

:

String(constString)

{

strcpy(m_data,copy.m_data);

}

String&String:

operator=(constString)

{

if(this==)retrun*this;

strcpy(m_data,copy.m_data);

return*this;

}

版本3

String:

:

String(constchar*str)

{

if(m_data)

delete[]m_data;

if(str){

m_data=newchar[strlen(str)];

memset(m_data,0,strlen(m_data));

strcpy(m_data,str);

}

else*m_data=0;

}

String:

:

String(constString)

{

if(m_data)

delete[]m_data;

m_data=newchar[strlen(copy.m_data+1)]

strcpy(m_data,copy.m_data);

}

String&String:

operator=(constString)

{

if(this==)retrun*this;

if(m_data)

delete[]m_data;

m_data=newchar[strlen(copy.m_data+1)]

strcpy(m_data,copy.m_data);

return*this;

}

~String:

:

String(void)

{

if(m_data)

delete[]m_data;

}

二:

改错题,只能在原来的基础上增加代码,不能删除代码

#include

#include

voidfoo(intage,char*b)

{

b=(char*)malloc(64);

sprintf(b,"YourAgeis%d",age);

}

intmain()

{

char*f;

foo(23,f);

printf("%s\n",f);

}

答案

版本1

#include

#include

voidfoo(intage,char**b)

{

*b=(char*)malloc(64);

sprintf(*b,"YourAgeis%d",ag

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1