英特尔笔试题试题参考Word文档格式.docx

上传人:b****3 文档编号:18285097 上传时间:2022-12-15 格式:DOCX 页数:16 大小:25.08KB
下载 相关 举报
英特尔笔试题试题参考Word文档格式.docx_第1页
第1页 / 共16页
英特尔笔试题试题参考Word文档格式.docx_第2页
第2页 / 共16页
英特尔笔试题试题参考Word文档格式.docx_第3页
第3页 / 共16页
英特尔笔试题试题参考Word文档格式.docx_第4页
第4页 / 共16页
英特尔笔试题试题参考Word文档格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

英特尔笔试题试题参考Word文档格式.docx

《英特尔笔试题试题参考Word文档格式.docx》由会员分享,可在线阅读,更多相关《英特尔笔试题试题参考Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。

英特尔笔试题试题参考Word文档格式.docx

S/N为10,其信噪比为10dB。

  对于通过有噪声信道传输数字数据而言,信噪比非常重要,因为它设定了有噪声信道一个可达的数据传输速率上限,即对于带宽为W赫兹,信噪比为S/N的信道,其最大数据传输速率(信道容量)为:

C=W×

log2(1+S/N)(bps)

  例如,对于一个带宽为3KHz,信噪比为30dB(S/N就是1000)的话音信道,无论其使用多少个电平信号发送二进制数据,其数据传输速率不可能超过30Kbps。

值得注意的是,香农定理仅仅给出了一个理论极限,实际应用中能够达到的速率要低得多。

其中一个原因是香农定理只考虑了热噪声(白噪声),而没有考虑脉冲噪声等因素。

4、以下代码运行结果是什么 

intmain() 

inta,b,c,abc=0;

a=b=c=40;

if(c) 

intabc;

abc=a*b+c;

printf("

%d,%d"

abc,c);

return0;

//040

5、给出了从纽约出发和到达洛杉矶的各种航班信息,写出找到一条从纽约到洛杉矶的最短距离的航班组合的代码。

单源最短路:

Dijkstra迪杰斯特拉n^2

BellmanFordve

SPFAO(ke),其中k为所有顶点进队的平均次数,可以证明k一般小于等于2

各点最短路:

Floyd-Warshall弗洛伊德n^3

最小生成树

Prim普里姆n^2

Kruskal克鲁斯卡尔eloge

代码如下

/*==================================================*\

|Dijkstra数组实现O(N^2)

|Dijkstra---数组实现(在此基础上可直接改为STL的Queue实现)

|lowcost[]---beg到其他点的最近距离

|path[]--beg为根展开的树,记录父亲结点

\*==================================================*/

#defineINF0x03F3F3F3F

constintN;

intpath[N],vis[N];

voidDijkstra(intcost[][N],intlowcost[N],intn,intbeg){

inti,j,min;

memset(vis,0,sizeof(vis));

vis[beg]=1;

for(i=0;

i<

n;

i++){

lowcost[i]=cost[beg][i];

path[i]=beg;

}

lowcost[beg]=0;

path[beg]=-1;

//树根的标记

intpre=beg;

for(i=1;

min=INF;

for(j=0;

j<

j++)

//下面的加法可能导致溢出,INF不能取太大

if(vis[j]==0&

&

lowcost[pre]+cost[pre][j]<

lowcost[j]){

lowcost[j]=lowcost[pre]+cost[pre][j];

path[j]=pre;

}

for(j=0;

if(vis[j]==0&

lowcost[j]<

min){

min=lowcost[j];

pre=j;

}

vis[pre]=1;

}

|BellmanFord单源最短路O(VE)

|能在一般情况下,包括存在负权边的情况下,解决单源最短路径问题

|INIT:

edge[E][3]为边表

|CALL:

bellman(src);

有负环返回0;

dist[i]为src到i的最短距

|可以解决差分约束系统:

需要首先构造约束图,构造不等式时>

=表示求最小值,作为最长路,<

=表示求最大值,作为最短路(v-u<

=c:

a[u][v]=c)

#definetypecint//typeofcost

consttypecinf=0x3f3f3f3f;

//maxofcost

intn,m,pre[V],edge[E][3];

typecdist[V];

intrelax(intu,intv,typecc){

if(dist[v]>

dist[u]+c){

dist[v]=dist[u]+c;

pre[v]=u;

return1;

return0;

intbellman(intsrc){

inti,j;

++i){

dist[i]=inf;

pre[i]=-1;

dist[src]=0;

boolflag;

++i){

flag=false;

//优化

m;

++j){

if(1==relax(edge[j][0],edge[j][1],edge[j][2]))flag=true;

}

if(!

flag)break;

for(j=0;

if(1==relax(edge[j][0],edge[j][1],edge[j][2]))

return0;

//有负圈

|SPFA(ShortestPathFasterAlgorithm)

Bellman-Ford算法的一种队列实现,减少了不必要的冗余计算。

它可以在O(kE)的时间复杂度内求出源点到其他所有点的最短路径,可以处理负边。

原理:

只有那些在前一遍松弛中改变了距离估计值的点,才可能引起他们的邻接点的距离估计值的改变。

判断负权回路:

记录每个结点进队次数,超过|V|次表示有负权。

//POJ3159Candies

constintINF=0x3F3F3F3F;

constintV=30001;

constintE=150001;

intpnt[E],cost[E],nxt[E];

inte,head[V];

intdist[V];

boolvis[V];

intmain(void){

intn,m;

while(scanf("

%d%d"

&

n,&

m)!

=EOF){

inti,a,b,c;

e=0;

memset(head,-1,sizeof(head));

for(i=0;

i<

m;

++i)

{//b-a<

=c,有向边(a,b):

c,边的方向!

scanf("

%d%d%d"

a,&

b,&

c);

addedge(a,b,c);

printf("

%d\n"

SPFA(1,n));

intrelax(intu,intv,intc){

if(dist[v]>

dist[u]+c){

inlinevoidaddedge(intu,intv,intc){

pnt[e]=v;

cost[e]=c;

nxt[e]=head[u];

head[u]=e++;

intSPFA(intsrc,intn)

{//此处用堆栈实现,有些时候比队列要快

inti;

for(i=1;

=n;

++i){//顶点1...n

vis[i]=0;

dist[i]=INF;

intQ[E],top=1;

Q[0]=src;

vis[src]=true;

while(top){

intu,v;

u=Q[--top];

vis[u]=false;

for(i=head[u];

i!

=-1;

i=nxt[i]){

v=pnt[i];

if(1==relax(u,v,cost[i])&

!

vis[v]){

Q[top++]=v;

vis[v]=true;

returndist[n];

语法:

Floyd_Washall(GraphG,intn,GraphD,GraphP);

参数:

G:

图,用邻接矩阵表示

n:

图的顶点个数

D:

D[i,j]表示从i到j的最短距离

P:

P[i,j]表示从i到j的最短路径上j的父节点

自定义:

MaxN;

返回值:

null

注意:

此算法允许图中带有负权的弧,但不允许有路径长度为负值的回路.

源程序:

voidFloyd(intG[][MaxN],intn,intD[][MaxN],intP[][MaxN])

{

inti,j,k;

i<

i++)

j<

j++)

{D[i][j]=G[i][j];

P[i][j]=i;

i++){D[i][i]=0;

P[i][i]=0;

for(k=0;

k<

k++)

for(i=0;

if(D[i][j]>

D[i][k]+D[k][j])

{D[i][j]=D[i][k]+D[k][j];

P[i][j]=P[k][j];

voidFloyd(intn,intD[][MaxN])//G不用再输出的情况下.

|Prim求MST

cost[][]耗费矩阵(inf为无穷大);

prim(cost,n);

返回-1代表原图不连通;

consttypecinf=0x3f3f3f3f;

intvis[V];

typeclowc[V];

typecprim(typeccost[][V],intn)//vertex:

0~n-1

inti,j,p;

typecminc,res=0;

vis[0]=1;

i++)lowc[i]=cost[0][i];

i++){

minc=inf;

p=-1;

if(0==vis[j]&

minc>

lowc[j]){

minc=lowc[j];

p=j;

if(inf==minc)return-1;

//原图不连通

res+=minc;

vis[p]=1;

if(0==vis[j]&

lowc[j]>

cost[p][j])

lowc[j]=cost[p][j];

returnres;

Kruskal算法

#include<

stdlib.h>

stdio.h>

queue>

algorithm>

string.h>

iostream>

math.h>

usingnamespacestd;

#defineMaxn1010

structEdge{

intu,v;

intw;

/*booloperator<

(constEdge&

E){

returnw>

E.w;

}*/

}edge[1000010];

boolcmp(EdgeE1,EdgeE2)

returnE1.w>

E2.w;

intn,m;

intrank[Maxn],p[Maxn];

voidmakeset(intn)

for(inti=0;

=n;

{

rank[i]=0;

p[i]=i;

intfindset(intx)

if(x!

=p[x])

p[x]=findset(p[x]);

returnp[x];

voidunionset(intx,inty)

x=findset(x);

y=findset(y);

if(rank[x]>

rank[y])

p[y]=x;

else

p[x]=y;

if(rank[x]==rank[y])

rank[y]++;

/*

*

*/

intmain(intargc,char**argv){

intt;

intT=0;

scanf("

%d"

&

t);

while(t--)

{

T++;

n,&

m);

makeset(n);

edge[i].u,&

edge[i].v,&

edge[i].w);

sort(edge,edge+m,cmp);

intans;

if(findset(edge[i].u)!

=findset(edge[i].v))

unionset(edge[i].u,edge[i].v);

if(edge[i].w<

ans)ans=edge[i].w;

if(findset

(1)==findset(n)){ans=edge[i].w;

break;

printf("

Scenario#%d:

\n"

T);

%d\n\n"

ans);

return(EXIT_SUCCESS);

6、从计算机图形上截取某个物体边缘的若干个坐标,求这个物体面积,并跟判断是方形还是圆形,为啥。

7、离散卷机与DFT的区别与关系。

快速求不满足2^N长度的离散傅立叶变换的方法有哪些?

如何用fft求N*M点的离散卷机?

8、给出fir和iir的优缺点。

9、如何计算线性标量量化器的量化噪声?

需要那些假设?

10、设计一个重采样系统,说明如何anti-alias。

11、y1(n)=x(2n),y2(n)=x(n/2),问:

如果y1为周期函数,那么x是否为周期函数?

如果x为周期函数,那么y1是否为周期函数?

如果y2为周期函数,那么x是否为周期函数?

如果x为周期函数,那么y2是否为周期函数?

12、如果模拟信号的带宽为5kHz,要用8k的采样率,怎么办。

13、某个程序在一个嵌入式系统(200M的CPU,50M的SDRAM)中已经最优化了,换到另一个系统(300M的CPU,50M的SDRAM)中运行,还需要优化吗?

14、x^4+a*x^3+x^2+c*x+d最少需要做几次乘法。

15、三个float:

a,b,c问值:

(a+b)+c==(b+a)+c 

(a+b)+c==(a+c)+b 

16、把一个链表反向填空。

17、下面哪种排序法对12354最快?

A.quicksort 

B.bublesort 

C.mergesort 

(,要求其它信息尽量按输入的顺序排列时很重要.这也是它比快速排序优势的地方.)

18、哪种结构平均来讲获取一个值最快?

A.binarytree 

B.hashtable 

C.stack 

19、 

structbit

{

inta:

3;

intb:

2;

intc:

};

intmain(intargc,char*argv[])

bits;

char*c=(char*)&

s;

*c=0x99;

for(inti=7;

i>

=0;

i--)

*c&

(1<

<

i)?

1:

0);

);

%d%d%d\n"

s.a,s.b,s.c);

0x99==10011001x86是小端所以,s.a==001,s.b==11,s.c==100

b和c最高位是1,都是负数。

负数在计算机里用补码表示。

补码->

-1,等到反码->

然后得到原码。

11-1==10->

10取反,得原码01,所以其数值为“-1”。

100-1==011->

011取反,得原码100,所以其数值为“-4”。

统一用这种方法求补码,或求补码的真值!

以前那种很容易错!

求-15的补码

  第一步:

+15:

00001111

  第二步:

逐位取反(1变成0,0变成1),然后在末尾加1。

  11110001

  再举一个例子验证下:

求-64的补码

  +64:

01000000

11000000

逆:

二进制值:

10111111(-65的补码)

  各位取反:

  加1:

01000001(+65的补码)

20、挑bug,在linux下运行:

#includechar 

*reverse(char*str)

intlen=0,i=0;

char*pstr=str,*ptemp,*pd;

while(*++pstr) 

len++;

pstr--;

//ptemp=(char*)malloc(len+1);

ptemp=(char*)malloc(len+1);

pd=ptemp;

while(len--){ 

*ptemp=*pstr;

ptemp++;

i++;

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

当前位置:首页 > 经管营销 > 金融投资

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

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