資料結構筆試題目總彙

才智咖 人氣:1.6W

第一篇 筆試題目
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("%dn", 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[i][j];
(b)for( int i=0; i<M; 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邊和相等,有多少種填法?
闡述你的思路,並用虛擬碼實現
   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[i][j].........
(b)for(int i=0;i<N;i++)
        for(int j=0;j<M;j++)
                xxx=a[j][i].........
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.兩位的全加法器的真值表和邏輯電路設計。
log的非阻塞賦值問題。
   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, "%%.%isn", 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?

資料結構筆試題目總彙