騎著機車來到群聯的竹南聚點,一樓一進大廳,其實外觀並沒有很光鮮亮麗,不像華碩那樣有亮麗裝潢和明亮的光線。很快就被人資請到
一間小房間寫一個小時的c考題。
第一題:
給你一個sort好的陣列a[20],然後請你印出0~500的數字,如果數字在a[20]裡面,則不要印出,請你用最少的cpu和memory
第二題:
類似上題,function給一個數字b=0,1,2,3,4時,分別印出0~99,100~199,200~299,300~399,400~499之中,不在a[20]裡面的數字,也是用最少的CPU跟memory。(我認為不需要用到switch case)
第三題:
這題我記得不是很清楚,主要是考用Array來做;inked list,題目會給ㄧ個struct
struct node{
unsigned int Data_H,
unsigned int Data_L,
unsigned int next
}
有一個陣列A[500],裡面都是存node的struct,假設第一個開頭index叫做listhead,那我們要access這個list的第一個struct node就是A[listhead],然後再透過
struct node 裡的next找到下一個struct node,直到next是null,如果next是null就代表示list最後一個結點。題目會
#define null 0xffff
在來就是要透過給予的兩個值DATA_A和DATA_B來尋找我們要的node有沒有在A[500]裡面。check是否在陣列裡的方式會用計算Data_A<<4+Data_B會不會等
於DATA_H<<4+DATA_L,另外題目又有說DATA_H<<4+DATA_L會越來越大,所以不用搜尋到最後。如果找到就是印出找到node的index(FoundEntry),和
它前一個node的index(PreEntry)。如果不在也是要印找不到。