好幾天前的筆試。今天去九龍坡面試了一趟。遇上輔導員找咱還三方協議,雖然是悄悄的拿的,但就是不想還回去。
深圳銳明視訊的宣講會流程為:宣講會(
1小時左右)
-->
筆試(1
小時半),然後過兩三天的時間部分同學就會收到面試通知。我去面試了一遭,然後將筆試(軟體工程師的筆試題)和面試的經歷記錄如下。
在軟體和硬體之間徘徊了一下還是坐到了軟體工程師的一排,筆試內容分為專業知識考查及綜合測評。
專業筆試主要是
c語言,包括「
printf
」、「位運算子」、「區域性指標(棧記憶體)」、「二級指標」、「動、靜態區域性變數」、「強制型別轉換「、「簡單遞迴」、「
sizeof
」、「結構體和聯合體記憶體對齊」、「switch-case」、「字串拷貝函式實現」、「簡單遞迴函式編寫」、「基本排序演算法編寫」、「鍊錶的插入、刪除等簡單操作函式編寫」。
綜合測評包含「數字規律」、「圖形規律」、「應用題」。答案是我自己做的,感謝找蟲者。
面試分一面和二面。
c語言筆試由兩部分組成:讀程式和寫程式。讀程式大多是參進一些c語言的基本知識和printf連考,具體的題目記不起來了,想其每年的題目都會發生變化。主要筆記以下幾個c知識點。
c的記憶體對齊的筆記在:c struct記憶體對齊 union的大端小端 筆記
中。暫且假設這個說法正確:int佔多少個位元組是由編譯器決定的,ansi標準定義int是佔2個位元組。
#include int main(void)
; struct stu_2;
printf("\nunion size: %d, struct size:%d", sizeof(union stu_1), sizeof(stu_2));
return 0;
}
這個題目不好做:
如果只考慮聯合體與結構體占用記憶體這個知識點加sizeof(int)值為4,則union stu_1占用最大元素記憶體:17個位元組。stu_2占用所有元素記憶體之和:4 + 3 +1 = 8個位元組。
但是,您若將這段**敲進
linux
內進行驗證,結果可不是這樣子的。咋就和書上說的不一樣呢?我猜測如下:
在linux下,資料儲存最小單元為4個位元組。這就是為什麼第乙個輸出結果為20,第二個輸出結果為12。只有完全吻合資料儲存方式的情況下才能輸出書中所述的結果。
所以,答這道題目咱應該在答案後面註明是什麼系統(啥儲存方式來著)。
動態區域性變數儲存在棧上。靜態區域性變數跟全域性變數一樣儲存在資料段的全域性區(靜態區)。程式考查靜態區域性變數的生命期。
void sum( int n )
#include int main(void)
return 0;
}
函式被呼叫4次,每次和增加2,所以答案應該為:10, 12, 14, 16
關於遞迴函式呼叫過程在 無聊的遞迴過程 筆記
筆記中。
興許是考查一下遞迴的思維,但是在平時的程式設計中遞迴使用得實在是太少。由於是簡單遞迴的考查,我使用函式呼叫的方式將其解答,層層呼叫,直到函式用分支返回為止。
int sum( int n)
return sum(n-1) + sum(n-2);
}
現在若n為7(一般不會這麼大),則sum函式返回多少。
答案:21
考查位運算子作減1的功能。這道題目我做錯了。我瞄了一眼,將邏輯設定成:n & n-1相當於」--n;」操作。其實不然,若n為奇數則相當於」--n;」操作;當n為偶數時,每n &=n – 1;操作使n的二進位制最低非0位為0,等n最高位為0時再來一次n &=n – 1;時,n就變為0了。
int bit(int n)
return all;
}
若n為9999,則bit函式的返回值為多少。
答案:8。
二級指標作為函式引數,作為改變傳進指標內容之用。
void second_pointer(char **ppstr)
int main(void)
答案:hello world
編譯器是不允許返回區域性指標的。堆記憶體和棧記憶體可否返回可以看這兩篇筆記:c指標和堆空間 筆記
和c語言 子函式return(區域性變數&棧位址)機制 筆記
。
char *return_str()
int main(void)
答案:亂碼。區域性位址pstr可以返回,但返回後pstr所指的棧記憶體已經被系統釋放。編譯器會對此作出警告。
void translate()
答案:78,78,12345678
乙個位址佔的記憶體大小跟作業系統的位址線掛鉤,如32位系統中,乙個位址佔4個位元組。所以就算是乙個char型變數的位址值也是占用4個位元組的。只是位址對應的記憶體只有乙個位元組大(每位元組記憶體的位址為4位元組值)。
考查case內不含break的情況:如果沒有break語句,則程式會一直執行到break語句或者default下的語句為止。
#include void switch_case(int n);
int main(void)
printf("\n");
return 0;
}
void switch_case(int n)
printf("%d ", n);
}
答案:6 6 7
程式編寫的題目都是簡單函式的編寫,包括「strcpy」、「簡單遞迴」、"鍊錶的插入刪除"等函式的編寫。懶得寫了。
3 2 5/3 3/2 (7/5) 1 7 8 57 (121)
沒有**。
應用題大體為:a,b兩人共種20畝地的玉公尺,a種地速度是b的2倍,b種玉公尺的速度是a的3倍。等a,b種完這塊地後地主給了20兩銀子,問兩人該如何分配。
答:撿關鍵的數字進行理解:
b是a的3/2倍。
故a的銀子為20 * 2/5 = 8兩
b 20- 8 = 12兩。
在學校筆試後,公司將筆試試卷帶回公司。兩到3天之後就會通知同學到公司面試,重慶區的同學面試地點在九龍坡科園3路68號金果園商務樓8樓面試。面試分一面(專業面)及綜合面。
專業面就是問技術問題,包含「mfc」,「linux」,「多執行緒」及「c/c++」的一些基本知識,如問了c與c++動態分配的區別。我覺得c++的stl幾乎是必面知識,tcp/ip協議也是重點。一面快速通過進入二面。
綜合面為3面1,這種多面1的場合我總是喜歡放開了說,有胡說八道之疑。主要包括「自我介紹」、「大學最深刻經歷」、「家庭情況」、「求學經歷」、「職業規劃」及「其它生活方面的問題」。有幾個問題沒有答上的:linux的啟動順序和職業規劃。
自我介紹我直接說了名字和來自的院校,接著就沒了。對於職業規劃,我直接答我不知道。linux的啟動順序我也答不知道,只是在linux之上搞過小開發,還沒有時間深入核心等方面。然後其它的我直腸子的說了,如他人對我的評價,我回答的居然是自戀。不知道面試官們怎麼想。
銳明視訊軟體工程師在深圳7k,在重慶5k。過了一面,直入2面,下來總結筆試題才知道答的沒有那麼好。
2013-10-17
note over.
百度2014校園招聘筆試題(深圳 軟體研發崗)
一 簡答題 10分 3 1 靜態鏈結庫與動態鏈結庫的優缺點。2 輪詢任務排程與搶占式任務排程的區別。3 請列出資料庫中常用的鎖及應用場景。二 演算法與程式設計 15分 3 1 給定乙個正整數n,求比n大的第乙個 不重複數 不重複數 的定義 如果乙個數,任何相鄰兩個數字上的數字都不相同,則稱為不重複數...
華為2014校園招聘機試題
一條長廊裡依次裝有n 1 n 65535 盞電燈,從頭到尾編號1 2 3 n 1 n。每盞電燈由乙個拉線開關控制。開始,電燈全部關著。有n個學生從長廊穿過。第乙個學生把號碼凡是1的倍數的電燈的開關拉一下 接著第二個學生把號碼凡是2的倍數的電燈的開關拉一下 接著第三個學生把號碼凡是3的倍數的電燈的開關...
2014校園招聘 華為機試題
1,亮著電燈的盞數 一條長廊裡依次裝有n 1 n 65535 盞電燈,從頭到尾編號1 2 3 n 1 n。每盞電燈由乙個拉線開關控制。開始,電燈全部關著。有n個學生從長廊穿過。第乙個學生把號碼凡是1的倍數的電燈的開關拉一下 接著第二個學生把號碼凡是2的倍數的電燈的開關拉一下 接著第三個學生把號碼凡是...