歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C語言找出100萬以內的質數

C語言找出100萬以內的質數

日期:2017/3/1 9:43:10   编辑:Linux編程

前言

最近因為感覺工作上毫無進展,恰好有人介紹了一家單位說是在招嵌入式開發人員(片內固件開發),整理一下簡歷就發了過去,然後了安排了今天的面試。下面說一說面試的過程:

面試

一階段

下午請了個假,用了很長一段時間到了他們公司,公司進去就是隔間,找到那位面試的人員。第一個是一個技術人員(A),與我交流了下簡歷上的東西,問了我一些RTOS、嵌入式網絡、物聯網(IOT)的相關知識,這些都是我平時接觸的方面,回答起來還是很順利的,與他交流的也還可以,完了我還向他介紹了我對無線傳感網的理解,感覺他還是很看好我的。然後就是讓他們boss來面試我了。

二階段

他們boss(B)一進來問了我哪家企業來的,從言語中就感覺對我現在的單位很不屑。然後他拿起我的簡歷,說了句看你簡歷你這3年干的很少啊!我也知道我這3年因為項目上的事情,沒有好好深入技術,所以也不好說什麼。

然後我介紹我的產品經驗以及工作上的事情的時候,B就一直說你這個東西很簡單啊,我分分鐘搞定啊,還問我為什麼要用這麼多時間。我當時只能以為自己水平低下,看到傳說中的大神了,弄的我都不好意思介紹我那可憐的項目經驗與專業知識。

這個時候B就問我平時開發用哪些語言,我就告訴他:我用C做嵌入式開發,C++作為學習對象,Python做編譯腳本(語言確實少了)。接著問我看過哪些書,我也如實回答:代碼大全、效率C++、編譯原理。在然後B問了我一個沒聽過的單詞。我也只好回答不知道。

在然後,B就問我項目是不是我做的,開發是不是參與的。我只能告訴他:項目都是我做過的,開發也都是我完成的,對於這點我想沒必要欺騙你。B還是不相信的態度,說你們公司出來的人都說項目、產品是他們做的。我只好反駁他:我會跟你說明情況,至於你信不信是你自己的事情了。到這裡氣氛已經很不融洽了,有點針鋒相對了。接著B就說我給你出個面試題吧。

三階段

B出了一個C語言題:找出100萬以內的質數,對於這個算法我接觸不多,我當時能想到的質數只能被1和自己除;所以我用了最簡單粗暴的算法:

#include <stdio.h>
static void func(void)
{
int x, y=0, z=0;
int i = 0;
printf("1\r\n");
for(x=2;x<=1000000;x++)
{
y=0;
for(i=1;i<=x;i++)
{
if(x%i == 0)
{
y++;
}
}
if(y==2)
{
z++;
printf("%d\r\n",x);
}
}
}

當場也沒有驗證,然後B看了我的代碼就對我說:你應該知道,你不適合寫代碼。這句話讓我莫名其妙了!B接著說:一看你就是很久沒有寫代碼了,數學很差的那種人!我承認我大學沒好好學習,工作以後數學也沒怎麼用上,但是評論我不適合寫代碼我就有點惱火了!我知道我寫的算法是簡單粗暴了,但是也不需要質疑我嵌入式的能力。

總結

當我進他們公司的第一眼給我感覺是一家小公司,不到10個人,然後A給我感覺對技術還是可以的,沒有討論技術的細節,只是與他溝通了一下網絡的方向。B給我感覺自以為很聰明的人,至於到底有多聰明因為沒有深入,暫時未知。他會透露出事情都是很簡單的,只是你能力不夠的氛圍,讓面試者處於劣勢(當然也可能是我自己水平不夠,比較虛)。

我去面試的是一個嵌入式軟件工程師的崗位,我想不管怎樣,至少我知道我6年來一直追求的是技術本身,對於這個崗位我想說合不合適是你說了算的,但是我合不合適寫代碼是我自己說了算了!

將C語言梳理一下,分布在以下10個章節中:

  1. Linux-C成長之路(一):Linux下C編程概要 http://www.linuxidc.com/Linux/2014-05/101242.htm
  2. Linux-C成長之路(二):基本數據類型 http://www.linuxidc.com/Linux/2014-05/101242p2.htm
  3. Linux-C成長之路(三):基本IO函數操作 http://www.linuxidc.com/Linux/2014-05/101242p3.htm
  4. Linux-C成長之路(四):運算符 http://www.linuxidc.com/Linux/2014-05/101242p4.htm
  5. Linux-C成長之路(五):控制流 http://www.linuxidc.com/Linux/2014-05/101242p5.htm
  6. Linux-C成長之路(六):函數要義 http://www.linuxidc.com/Linux/2014-05/101242p6.htm
  7. Linux-C成長之路(七):數組與指針 http://www.linuxidc.com/Linux/2014-05/101242p7.htm
  8. Linux-C成長之路(八):存儲類,動態內存 http://www.linuxidc.com/Linux/2014-05/101242p8.htm
  9. Linux-C成長之路(九):復合數據類型 http://www.linuxidc.com/Linux/2014-05/101242p9.htm
  10. Linux-C成長之路(十):其他高級議題

C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm

Copyright © Linux教程網 All Rights Reserved