Intel面試題

再加一些:
1、你認爲一個好的Project leader應該具備那些特點

2、你認爲自己有哪些自豪的地方適合Intel,技術的或者非技術的

3、PCI總線上的設備發現與資源分配的過程

4、對於Cache的認識,至少有兩個面試官問了這個問題 還有一下想不起來了,大家補充吧

【 在 kongfu (NullPointer) 的大作中提到: 】 :
Intel華工面試題集(02.11.20): : (自己的答案,外加考官的一些提示信息,不對的大家補充) :
1、南北橋各自的作用? :
2、一個鏈表,不知道header指針,只知道其中一個節點指針,要刪除這個節點?
:   h->a->b->c->d->...    不知道h位置,只知道p指向c,要del c,不能破壞鏈其他節 : 點情況! :   前移,del next :
3、MFC中幾個macro作用 : #define (name) do_##name          (x)   do_x : #define (name) #@name             (x)   'x' :

(2) 編譯中的問題:全局變量如int i=5; int*(pf)()=foo; 分別在何時被初始化?
設計時候如何具體的實現。
  (3) OS相關的問題,內存訪問,cache等(包括cache在整個系統中的位置,畫出來
,並解釋)
  (4) 解釋例如mov ax,100H 這樣一條指令的cpu, os, memory等都完成了什麼樣的工4005f8da13?應屆生求職網YingJieSheng.COM?60d149af1f
作。
編譯原理,操作系統和數據結構等基礎知識比較重要,感觸頗深,自己的基礎不夠扎
實,一些問題沒有很好的答出來,或者解釋的不對最後在第四輪被據了。

1。 你覺得C程序中爲什麼會有main(), 有沒有想過 exit,return,或什麼都不做 都能夠讓程序正常終止
:(2) 編譯中的問題:全局變量如int i=5; int*(pf)()=foo; 分別在何時被初始化?設計時候如何具體的實現

1.敘述內存泄漏的原理和常用解決方法
一塊分配的內存失去了所有引用
: 2.UNIX中的Zombie Process是怎麼形成的,爲啥用kill殺不掉,應該怎樣避
: 免
父進程沒有調用wait
kill只是發送一個signal, zombie已經不會獲得cpu時間了, 所以不可能處理
這個signal.
: 3.敘述滑動窗口的原理
根據接收方接收緩衝區的大小來協調發送方的發送速度。記不清了
: 4.實現strcpy代碼
: 5.已經實現了一個TCP,怎麼測試它
將每個狀態都走到?
: 實模式和保護模式的區別
地址翻譯的不同
實模式未啓用內存管理單元, 只能訪問1M的地址空間(seg*16+off)
保護模式啓用內存管理單元, 使用的是虛擬地址

1. 三個float:a,b,c 問值
(a+b)+c==(b+a)+c
(a+b)+c==(a+c)+b
2. 把一個鏈表反向填空
3. 設計一個重採樣系統,說明如何anti-alias
4. y1(n)=x(2n), y2(n)=x(n/2),問:
如果y1爲週期函數,那麼x是否爲週期函數
如果x爲週期函數,那麼y1是否爲週期函數
如果y2爲週期函數,那麼x是否爲週期函數
如果x爲週期函數,那麼y2是否爲週期函數
5. 如果模擬信號的帶寬爲5KHZ,要用8K的採樣率,怎麼辦。
6. 某個程序在一個嵌入式系統(200M的CPU,50M的SDRAM)中已經最化了,換到另一個系統(300M的CPU,50M的SDRAM)中運行,還需要優化嗎?
7. x^4+a*x^3+x^2+c*x+d最少需要作幾次乘法
8. 什麼情況下,sin(x+y)+y ~ ....
9. 下面哪種排序法對12354最快
a quick sort
b.buble sort
c.merge sort
10. 哪種結構,平均來講,獲取一個值最快
a. binary tree
b. hash table
c. stack
發信人: unfair (黑色的眼), 信區: CS
標 題: Re: INTEL面試題
發信站: 飲水思源 (Fri Nov 2 14:54:34 2001) , 轉信

【 在 hfzjz (心神已走) 的大作中提到: 】
:
: 【 在 babycat (2tiger) 的大作中提到: 】
: : 標 題: INTEL面試題
: : 發信站: 飲水思源 (2001年11月02日08:26:57 星期五), 站內信件
: :
: : 1. 三個float:a,b,c
: : 問值
: : (a+b)+c==(b+a)+c
: 1
: : (a+b)+c==(a+c)+b
: 0or1

so easy
: : 2. 把一個鏈表反向填空
: 棧或兩遍掃描(輔助空間若干)
so easy
: : 3. 設計一個重採樣系統,說明如何anti-alias
: ???
anti-alias不懂的說

: : 4. y1(n)=x(2n), y2(n)=x(n/2),問:
: : 如果y1爲週期函數,那麼x是否爲週期函數
: : 如果x爲週期函數,那麼y1是否爲週期函數
: : 如果y2爲週期函數,那麼x是否爲週期函數
: : 如果x爲週期函數,那麼y2是否爲週期函數
: 皆週期
: : 5. 如果模擬信號的帶寬爲5KHZ,要用8K的採樣率,怎麼辦。
: 平滑
: : 4. 某個程序在一個嵌入式系統(200M的CPU,50M的SDRAM)中已經最化了,換到另一個系統
: : (300M的CPU,50M的SDRAM)中運行,還需要優化嗎?
: 需要

也有針對CPU優化的,因爲程序分片運行的時間片數的實際差距變了,所以需要
改變調度 算法可以得到更優的性能
: : 5. x^4+a*x^3+x^2+c*x+d最少需要作幾次乘法
: 3次 (((x+a)*x+1)*x+c)*x+d

right
我也是這麼解的

: : 6. 什麼情況下,sin(x+y)+y ~ ....
: ???
: : 7. 下面哪種排序法對12354最快
: : a quick sort
: : b.buble sort
: : c.merge sort
: b?

錯的吧,因爲冒泡排序的比較次數還是很多的

: : 8. 哪種結構,平均來講,獲取一個值最快
: : a. binary tree
: : b. hash table
: : c. stack
: b

Intel公司 c/++筆試題目
:lancen :2007年3月5日鏈表題:一個鏈表的結點結構
struct Node
{
int data ;
Node *next ;
};
typedef struct Node Node ;


(1)已知鏈表的頭結點head,寫一個函數把這個鏈表逆序 ( Intel)

Node * ReverseList(Node *head) //鏈表逆序
{
if ( head == NULL || head->next == NULL )
return head;
Node *p1 = head ;
Node *p2 = p1->next ;
Node *p3 = p2->next ;
p1->next = NULL ;
while ( p3 != NULL )
{
p2->next = p1 ;
p1 = p2 ;
p2 = p3 ;
p3 = p3->next ;
}
p2->next = p1 ;
head = p2 ;
return head ;
}
(2)已知兩個鏈表head1 和head2 各自有序,請把它們合併成一個鏈表依然有序。(保留所有結點,即便大小相同)
Node * Merge(Node *head1 , Node *head2)
{
if ( head1 == NULL)
return head2 ;
if ( head2 == NULL)
return head1 ;
Node *head = NULL ;
Node *p1 = NULL;
Node *p2 = NULL;
if ( head1->data < head2->data )
{
head = head1 ;
p1 = head1->next;
p2 = head2 ;
}
else
{
head = head2 ;
p2 = head2->next ;
p1 = head1 ;
}
Node *pcurrent = head ;
while ( p1 != NULL && p2 != NULL)
{
if ( p1->data <= p2->data )
{
pcurrent->next = p1 ;
pcurrent = p1 ;
p1 = p1->next ;
}
else
{
pcurrent->next = p2 ;
pcurrent = p2 ;
p2 = p2->next ;
}
}
if ( p1 != NULL )
pcurrent->next = p1 ;
if ( p2 != NULL )
pcurrent->next = p2 ;
return head ;
}
(3)已知兩個鏈表head1 和head2 各自有序,請把它們合併成一個鏈表依然有序,這次要求用遞歸方法進行。
答案:
Node * MergeRecursive(Node *head1 , Node *head2)
{
if ( head1 == NULL )
return head2 ;
if ( head2 == NULL)
return head1 ;
Node *head = NULL ;
if ( head1->data < head2->data )
{
head = head1 ;
head->next = MergeRecursive(head1->next,head2);
}
else
{
head = head2 ;
head->next = MergeRecursive(head1,head2->next);
}
return head ;
}

intel面試經歷
:lancen :2007年3月8日11.14
  接到intel上海的電話,讓15號早上8:30在樓下筆試。hr jj很忙的樣子,說她是int
el的SSG部門,請筆試的時候帶上。。。沒等說完就把電話掛了,靠。
 晚上去聽了intel的宣講會。感覺亂糟糟的,一個部門接着一個部門走馬燈似地介紹
。聽得不耐煩了,於是沒等宣講會結束就離座走人。

11.15
  急急忙忙地在實驗室喫完我的早飯,跑到樓下,發現蒙109門口已經排起了隊。進去後
拿到考卷,發現又有智力題,暈啊。基本上沒找到規律,連蒙帶猜地做完,心想這回要掛
了。

  下午的時候漏接了SSG部門的電話,於是打過去,被告知晚上8:30到金陵飯店面試。暗
喜,居然筆試沒掛!於是電話推遲華爲的座談會時間。晚飯過後,接到在另一個DHG部門的
師兄的電面,問了我項目和一些C/C++,TCP/IP的問題。臨結束的時候責備我說,網申的簡
歷怎麼填得這麼簡單,技能那項就兩句短短的話?我辯解說,我也不想啊,這不是沒法修
改了麼。

  電面完了後和同學一起打車到了金陵。在2116等了一會,看到我宿舍上鋪的同學一面結束
過來。這才明白,今天是連着面三輪啊,暈~緊張起來了,心想今天不知道能走到哪一步了。。。

  坐了一會,hr jj把我發配到了2021房間。偶敲門,禮節性地握手,落座。對面的面試
官問,你是XXX的學生吧?偶一楞,哇塞,碰到學長了!但是接下來的面試過程就沒那麼輕鬆
了,他開始問我TCP/IP,問得非常細節,而且問題一個接着一個,貌似不把TCP協議的所有細節
都問個遍不罷休的樣子。然後就開始問我排隊論的內容,讓我給出一個M/M/1隊列的平均隊列
長度。我坦白已經不知道怎麼算了。於是他開始問我自相似理論,我想,反正今天看來要
死在這裏了,於是很憤慨地說,這玩意兒就是幾個傢伙爲了刨論文而炒作概念,現在看誰還提
自相似理論?沒想到他衝我一笑,表示贊同我的鄙視,真是出乎我的意料!於是面試以一個操作
系統題目結束,用pv寫環形緩衝區的生產者/消費者問題。出來後長嘆一聲,唉,被人家鄙視了。沒想到回到2116,驚喜地發現自己居然還活着。。。

 第二輪面試在2009房間,面試官是個30多歲的人,很和藹。整個過程也非常輕鬆,我花了10
分鐘給他做無線傳感器網絡的科普,再花了10分鐘給他講解我參加的一個863項目的整個框架
流程以及實現細節。其間網易的那個死女人(據說是宣講會上打扮得很風騷的那個。)給我打電話
讓我第二天早上去東大筆試。我氣死了,心想媽的昨天去你們宣講會提前走居然連禮物都給沒收
了,什麼玩意兒啊!沒等她說完就道別把電話掛掉了,接着繼續講。最後面試官就開始跟我
吹他們的小組,呵呵。我開心死了,一個技術問題都不問,好人啊!

 回到2116等第三輪面試,看到整個房間裏除了hr jj,已經沒什麼其它人了。。。等待。
木頭髮來短信,說要把她今天的好運全給我 :)  沒聊幾句,我被安排到503。就是之前電面我的
師兄的老闆的老闆。他告訴我說,他同時代表SSG部門和DHG部門面試我。於是前半階段問開放性
問題,後半階段問技術性問題。面到一半的時候,我回答他一個技術問題時,用了“可能”這個
詞,他追問我是知道答案還是猜的。我毫不猶豫地說我是猜的。他不滿地說,你面試的時候怎麼
可以這麼隨便呢。。。我汗。。。。
 結束的時候他和我一起出門,然後把我送到金陵飯店的大門口。和他握手道別,看着他轉身回
去之後,我看了下時間,快晚上11:00了,早沒地鐵了。深深地吸了口氣,南京的夜晚真是冷啊。沒辦法,只能走着回去了。

11.16
 晚上接到電話,通知我第二天到金陵去參加SSG部門的面試。應該是SSG部門的終面了。木頭給我發過來一些別人寫的intel的hr面的面經,我心裏稍微有了些底,不過想起在趨勢被這種類型的面試問掛掉,還是有點害怕。
 
11.17
 在去金陵的地鐵站接到DHG部門的電話,要求電面我。我把時間推遲,然後和同學一起到了金陵。整個大廳裏入耳的都是嘰裏呱啦的鳥語。我按要求到1108房間,md等了好久才輪到我。因爲之前
Siemens的面試就是全英文的,我纔不懼她呢。大致講了下自己的項目,然後聊我的學習,生活,團隊,接着就是對加班的看法什麼的,然後宣告結束,填了張Application Form,走人。

 下午再次接到DHG部門的電面,從項目到技術盤問了一遍。讓我在幾種進程間通信方式中選擇一種最好的機制實現快速的小數據量的交換。我編程的時候可從沒考慮過這種誰好誰壞的問題,於是說我不知道該怎麼選擇。對方無奈,於是開始問我內核編程,讓我解釋自旋鎖的工作原理,還很鄙夷地說,你們的平臺不是SMP的,用什麼自旋鎖啊。我抗議說,這不是顯得兼容性更好嘛!
 他們換了個人繼續問我C/C++問題,然後電面結束。

11.18
 晚上去把中興的offer給拒掉了。想想自己爲了拿到中興的這個offer實在是非常的不容易。覺得對不起人家(他們不招南大的,我和另外一個同學是特批的,並且我屬於霸王面),所以很坦誠地告訴他們我目前找工作的狀態。hr很和氣地和我握手道別,祝我好運。
 
 回來後接到DHG部門經理的電話,告訴我給我DHG部門的offer了,並說我很有可能拿到SSG部門的offer,要求我拒掉那個offer。答應他了。讓我等下週的正式offer。長出一口氣,終於可以休息一下了。

intel面試題目的總結
:lancen :2007年3月9日從第一次參加的intel的宣講會開始到現在只能忙着寫論文,
找工作基本上算是告了一個段落
當初定下的目標不多,不管結果成功或失敗,都是可以總結出一些經驗來的
這個公司最終沒有去成的原因自己想過,就不在這說了
把我前面每次面試後做的一些小記錄做個總結,主要把印象中的題目做個羅列,
或許直接意義不大,但希望能給大家一個參考(我申請的是硬件的職位)
有些信息模糊或給你帶來困擾的地方請見諒
1.接到電話,是前一天宣講會投的簡歷,又投了email,網申很麻煩
問了我的情況,大概說了一下工作學習方面的經歷,問我關於electromagnetism的知識
,約一個時間面試
2.E1部門前後兩個人面試,英文面試
microstrip and stripline哪一種傳輸速度比較快,哪種特徵阻抗更大
一般的特徵阻抗有多大
why reflection happens
why overshoot and undershoot happens?
what''s differencial signal and why use such signal?
what is the key point in layout between northbridge and cpu
what is northbridge and southbridge
what is pci express and what is its feature
時鐘上升沿的“毛刺”會有什麼影響?
阻抗匹配的問題
what is my weakness
讓我問問題
第二位比較年輕的一位工程師
主要針對我的簡歷問一些問題,
畫一下X86架構的框圖,
hyperlink的總線寬度,usb的速度,pci的速度,pciexpress應該連接在nb還是sb
dram,sram,sdram,ddrram,ddrramII各自的原理和區別
dsp與arm的區別差異,各自的結構
AD卡中,adc的位寬,採樣的問題,分辨率,有效位,如何驗證這個有效位
strongarm與普通cpu區別
verilog的一個小問題
3.第三天C部門面試
第一位女士給我的面試,
首先先用英語大概介紹一下自己
然後問我一些技術問題,
負載開路情況下驅動端A點輸出一個階越波,負載端B的波形
用cmos設計一個反相器,CMOS的內部結構
sram和sdram的區別,內部結構
解釋一下什麼是Virtual memory?
和我說了一些這個部門的情況
第二位面試官是一個男士,
他的問題基本屬於比較寬泛,
主要問了我一些以前做過的項目經歷和工作時候的經歷
還問我如果錄用我瞭如何選擇這個部門還是前一天的部門
他也透露了一些這個部門的信息
這個部門的工作情況,對英文的要求,口語的要求
第三位面試官,
他的問題主要是和技術相關
說前端總線的作用是什麼,
vtt是什麼作用,用2/3 VTT來作爲基準比較,確定高低電平。
解釋pci的作用是什麼,地址線和數據線複用,通過什麼信號來選擇,
ddrram的工作原理,頻率是多少,同步時鐘如何工作
主板各種頻率如何同步,
硬件設計的總體流程
4.C部門第二次,4個人,部分英文面
第一個人是這個部門的經理英文面試
他給了我兩個大問題,用英文,現在想想印象非常的模糊
好像是硬件開發的流程
還有一個好像是遇到困難如何溝通?
第二個
拿了張試卷做了一下,很簡單的幾個小題目,還犯了些小錯誤,被他指正了
主要是數字邏輯的題目
第三個
主要談了一下個人經歷,
項目經驗
skew,jitter等等概念
t_co,t_flight,t_hold ,t_skew, t_CLK,t_setup等等關係
第四個也是比較隨意的談了談,也是兩個一般性的英文問題
做了幾個題目,373是什麼如何工作、I2C的原理,現有的數字電視傳輸標準是什麼等等
5.E2電話面試,全英文
首先介紹一下自己
問我對什麼樣的工作感興趣
然後她問了些我項目上的描述
項目上的分工,如何展開計劃,遇到過什麼困難
主板的結構
sram和dram的區別
risetime,falltime
遇到困難或問題如何解決
後來她介紹一下E2的主要工作
6.某天接到電話下午hr面試
多數英文面
問的問題多數是一般性問題,基本上很多人都會問到
介紹項目經歷
興趣愛好,長處,短處
如何和客戶或同事打交道,如何和同事交流,是否會遇到一些難題,如何解決
涉及到一些具體例子
免費考研網www.freekaoyan.com


Intel上海交大筆試題目zz
:lancen :2007年3月9日1。 pipeline
2。 程序流程圖題目
3。 哲學家進餐
4。 32bit,64bit,兩個平臺上complier,linker,os kernel,library,debuger的性質
5。 const char * vs char const * (?)
6。 GDT and LDT
7。 1 1<<1
8。 Stack性質
9。 ???
10。正方體中壓力什麼的。。。
大題
1。f[40,400],log10變換
2。ACPI
3。讀程序
4。頻譜,採樣分析


Intel一道筆試面試題目,各位有空看一下.
:lancen :2007年3月9日Intel一道筆試面試題目,各位有空看一下.

TOTAL個人圍一圈,從1開始數到N,誰數到N出圈,下一個人繼續從1開始數,返回最後一個出局的人。
  #define TOTAL 15;
   int xxxx(int N)
  {
   int ring[TOTAL] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} //全是1
   int nextstart = 0, counter=0;
   for (i =1; i   counter = 0;
   while(counter    if (_______________)
   ( ______________ ; )
   else
   (____________; )
   }
   ring[nextstart]=0
   }
   return nextstart +1;
  }

[ 本帖最後由 dominic99 於 2005-10-30 21:48 編輯 ]

Springup 2005-10-30 00:08

Intel一道筆試面試題目,各位有空看一下.

#include ;
#include ;

int main(void)
{
char players[20][10];
int isOuted[20];/*人是否已出圈*/
int m;/*出圈數字*/
int s;/*起始位置*/
int i, j = 1;/*循環計數器變量*/
int n;/*參加遊戲的人數*/

puts("請輸入參加出圈遊戲的人員名單");
for(i = 0; i < 20; ++i)
{
printf("第%d位:", i + 1);
scanf("\n%9[^\n]", players);
if( players[i][0] == '!' )
break;
}
n = i;/*獲得參加遊戲的人數*/
printf("請輸入出圈數字:");
scanf("%d", &m);
printf("請輸入起始位置:");
scanf("%d", &s);
printf("共有%d人蔘加遊戲,出圈數字是%d,起始位置%d(%s)"
"\n\n開始遊戲...\n", n, m, s, players[s - 1]);

for(i = 0; i < 20; ++i)
isOuted[i] = 0;/* 0表示沒有出圈*/

for(i = 1; i <= n; ++i)
{
for(; j < m; ++j)
{
s %= n;
++s;
if(isOuted[s - 1])
--j;
}
isOuted[s - 1] = 1;/* 1表示出圈*/
printf("%s出圈!\n", players[s - 1]);
j = 0;
}
return 0;
}

er 2005-10-30 00:53

Intel一道筆試面試題目,各位有空看一下.

這是課本的題目,錢能的

dominic99 2005-10-30 06:50

那個三個空要怎麼填呢?

Yarco 2005-10-30 08:39

不對.搞錯...
再想想..

8想了...說明還沒到去intel的時間...:)

個位積蓄...

越想越胡塗... 個位看者辦.
if (ring[startnext++] && (startnext!=TOTAL))
count++;
else
startnext = (startnext==TOTAL) ? 0 : startnext;
快出標準答案.

[[i] 本帖最後由 Yarco 於 2005-10-30 21:12 編輯 ]

angelanpan 2005-10-30 11:36

確定這個程序是這個樣子的嗎?

因爲for循環的最後一輪裏面的while循環淘汰的是第Total-1輪的一個人,也就是說在完成for循環以後,nextstart指向的應該是(TOTAL-1)輪淘汰的人,這樣接下來應該就是找到最後一個人啊,爲什麼這裏直接返回(nextstart+1)(因爲數組下標從1開始,所以nextstart對應的就是第nextstart+1個人)啊?

比如說TOTAL=3,N=2時候,第一次刪除第2個人(數組下標爲1),第二次刪除第1個人(數組下標爲0),這樣做了2次循環後,nextstart=0;退出循環後,nextstart=0,這樣返回的就是nextstart+1,也就是說最後的那個人是第一個人,但是很明顯,最後的勝利者應該是第3個人啊?

我不知道這樣的理解有問題沒有?希望大家指正

中國管理員 2005-10-30 12:03

1111

1111

[ 本帖最後由 中國管理員 於 2005-10-30 20:21 編輯 ]

erduo100 2005-10-30 13:40

題真的有錯

int ring[TOTAL] = {1} //全是1
第一個數爲1,其他爲0


樓主題目要給正確

bleem1998 2005-10-30 13:53


標題也要給正確
究竟是筆試還是面試?

dominic99 2005-10-30 13:55

回erduo100 . 不好意思,已改過來了.

題目是偶然在網上看到的,想了一下午還想不出一個確切的答案.
找不到答案.

各位有空再看看吧..擔擱各位時間了..

soul_of_moon 2005-10-30 23:56

回覆 10樓 dominic99 的帖子

二樓不是給你答案了嗎?用數組或鏈表都可以.

soul_of_moon 2005-10-31 00:01


原帖由 soul_of_moon 於 2005-10-31 07:56 發表
二樓不是給你答案了嗎?用數組或鏈表都可以.

不過用鏈表應該更容易吧.

chqg21 2005-10-31 00:51

華爲筆試有一道很類似的題

我去華爲筆試的時候也碰到了,說是N個人圍一圈,排號1-N,從第一個人開始報數,報到3的離開,一直報下去,問最後留下的一個人原來排號幾。當時我也暈了半天,後來是用數組解決的,也沒檢查對不對。

mq110 2005-10-31 00:52

我們學校的定製班考試 就有這道題.
用循環鏈表做 我想應該是最好的.

soul_of_moon 2005-10-31 01:05


原帖由 mq110 於 2005-10-31 08:52 發表
我們學校的定製班考試 就有這道題.
用循環鏈表做 我想應該是最好的.

錢能書上有。當時沒好好看,不過現在想想也不是很難,用鏈表的話還蠻簡單的。

openX 2005-10-31 01:25

ding

dongpy 2005-10-31 01:58

樓主,你題目出的有問題吧。

for (i =1; i
dongpy 2005-10-31 02:03

可以這樣:

int xxxx(int N)
{
int ring[TOTAL]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}; //全是1
int nextstart = 0,counter=0;
for(int i=0;i {
counter = 0;
while(counter if ( ring[nextstart] == 1 && ++counter == N )
{
break;
}
else
nextstart = (nextstart+1)%TOTAL;
}
ring[nextstart] = 0;
}
return nextstart +1;
}

dongpy 2005-10-31 02:08

空白處可以填:

ring[nextstart] == 1 && ++counter == N

break

nextstart = (nextstart+1)%TOTAL

angelanpan 2005-10-31 02:30

恩,如果for循環是從0開始,而不是像樓主從1開始,這個答案是可以的

 

原帖由 dongpy 於 2005-10-31 10:08 發表
空白處可以填:

ring[nextstart] == 1 && ++counter == N

break

nextstart = (nextstart+1)%TOTAL


週五去intel筆試
:lancen :2007年3月9日字符串逆置
void (char *s)
{
char tmp;
int len=strlen(s);
int start=0,end=len-1;
while(start {
tmp=s[start];s[start]=s[end];s[end]=tmp;
}
return ;
}

 

詳解C++/C中的數據在內存中的存取

本文介紹了指針的一個使用技巧,可以通過此方法將單片機中的變量按字節保存到EEPROM中,也可以從EEPROM中還原一個多字節的整型數或者浮點數。

在內存中變量對整數類型,包括
char, unsigned char, int, unsigned int, long, unsigned long
多於一個字節的按低字節在前,高字節在後的順序存儲的,比如
int iv = 0x1234,則在內存中的存儲順序,從地址由低到高的順序排列,其值分別爲: 34 12
long lv = 0x11223344則在內存中的順序爲: 44 33 22 11
如果想修改一個整型數的某個字節,則可以運用指針直接進行操作如下所示:
unsigned char *puc;
int i;
long lv = 0x11223344;
unsigned char temp[4]={0,0,0,0};

*puc = (unsigned char*)(&lv);
for(i=0; i{
temp = *(puc+i);
}
運行後temp中的值則爲temp[]={0x44, 0x33,0x22,0x11};
如果要修改一個數的值也可以直接用以上方法把賦值前後的操作數對調一下即可
*(puc+i) = temp;
即可通過*puc將temp中的單字節數轉換爲一個長整型數賦給 lv
這種操作方法對數據的存儲很有用,可以通過指針將長整型的數分別一個字節一個字節地寫到文件中,讀的時候按照同樣的順序再從文件中讀到內存。當然在PC上也可以直接將長整型的數寫到文件中,而在單片機中則只能一個字節一個字節地將數據寫入到EEPROM中,通過這種指針操作就可以寫到EEPROM中,或者讀出整型或者浮點型數。以下爲在ICCAVR中將數據寫入到EEPROM和讀出的程序。

void EEPROMWriteLong( int addr, // address in EEPROM
long dsrc) // source data
{
unsigned char *puc;

puc = (unsigned char*)(&dsrc);
EEPROMWriteBytes(addr, (void*)puc, sizeof(long));
}


long EEPROMReadLong( int addr)
{
long res;
unsigned char *puc = (unsigned char*)(&res);
EEPROMReadBytes(addr, (void*)puc, sizeof(long));
return res;
}
Tags: Intel  筆試 


筆試題目

1.設計一個重採樣系統,說明如何anti-alias。

2.y1(n)=x(2n),y2(n)=x(n/2),問:

如果y1爲週期函數,那麼x是否爲週期函數?

如果x爲週期函數,那麼y1是否爲週期函數?

如果y2爲週期函數,那麼x是否爲週期函數?

如果x爲週期函數,那麼y2是否爲週期函數?

3.如果模擬信號的帶寬爲5kHz,要用8k的採樣率,怎麼辦。

4.某個程序在一個嵌入式系統(200M的CPU,50M的SDRAM)中已經最優化了,換到另一個系統(300M的CPU,50M的SDRAM)中運行,還需要優化嗎?

5.x^4+a*x^3+x^2+c*x+d最少需要做幾次乘法。

6.三個float:a,b,c

問值:

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

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

7.把一個鏈表反向填空。

8.下面哪種排序法對12354最快?

A. quick sort

B. buble sort

C. merge sort

9.哪種結構平均來講獲取一個值最快?

A. binary tree
B. hash table
C. stack

10.

#include
“stdafx.h”
#include
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 <return 0;
}

Output:?

11.

挑bug,在linux下運行:
#include
char
*reverse(char* str)
{
int len=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++;
pstr--;
i++;
}
*ptemp=*pstr;
ptemp++;
*ptemp=‘\0’;
return pd;
}
main()
{
char string[40]= “Hello World!”;
char *pstr=string;
printf(“%s”, pstr);
printf(“%s”, reverse(pstr));
}

實驗室筆試題
1.寫出下列信號的奈虧斯特頻率

(1)f(t)=1+cos(2000pait)+sin(4000pait)
(2)f(t)=sin(4000pait)/pait
(3)f(t)=(sin(4000pait)的平方)/pait

2.有兩個線程

void producer()
{
while(1)
{
GeneratePacket();
PutPacketIntoBuffer();
Signal(customer);
}
}
void customer()
{
while(1)
{
WaitForSignal();
if(PacketInBuffer>10)
{
ReadAllPackets();
ProcessPackets();
}
}
}

(1)有沒有其他方法可以提高程序的性能

(2)可不可以不使用信號之類的機制來實現上述的功能

3.優化下面的程序

(0)sum=0
(1)I=1
(2)T1=4*I
(3)T2=address(A)-4
(4)T3=T2[T1]
(5)T4=address(B)-4
(6)T5=4*I
(7)T6=T4[T5]
(8)T7=T3*T5
(9)sum=sum+T6
(10)I=I+1
(11)IF I<20 GOTO (2)
Tags: Intel  筆試  面試 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章