面經(jīng)---妙計(jì)旅行

說(shuō)來(lái)慚愧皿曲,這是我第二次來(lái)這家公司面試了摩疑,如果沒(méi)記錯(cuò)的話上一次面試的時(shí)候是16年的5月份状勤。然而當(dāng)我到公司坐下來(lái)答筆試題的時(shí)候鞋怀,令我沒(méi)想到的是試題竟然還是一年以前的那一份。當(dāng)我答完筆試題見(jiàn)到面試官的時(shí)候持搜,令我更沒(méi)想到的是面試官竟然也是一年以前的那一位密似。與上次不同的是,這次答的不錯(cuò)葫盼。相同的是残腌,同樣沒(méi)有一個(gè)令我滿意的結(jié)果。這次被拒絕的理由是贫导,畢業(yè)一年半?yún)s沒(méi)有工作經(jīng)驗(yàn)抛猫,雖然我知道這不是真正的原因。

試題分為幾個(gè)部分孩灯,包括C++基礎(chǔ)闺金,指針,結(jié)構(gòu)體峰档,Linux基本指令败匹,編程題寨昙,以及包括數(shù)據(jù)庫(kù),python等附加題。

1.C++基礎(chǔ)
1.如何判定 float 型變量 x 大于 1

if(x > 1.0)

2. #ifndef,#define,#endif的作用

#ifndef
它是if not define 的簡(jiǎn)寫(xiě),是宏定義的一種政恍,實(shí)際上確切的說(shuō)笼才,這應(yīng)該是預(yù)處理功能三種(宏定義、文件包含绩郎、條件編譯)中的一種----條件編譯。
在c語(yǔ)言中,對(duì)同一個(gè)變量或者函數(shù)進(jìn)行多次聲明是不會(huì)報(bào)錯(cuò)的外里。所以如果h文件里只是進(jìn)行了聲明工作,即使不使用# ifndef宏定義特石,多個(gè)c文件包含同一個(gè)h文件也不會(huì)報(bào)錯(cuò)盅蝗。

但是在c++語(yǔ)言中,#ifdef的作用域只是在單個(gè)文件中姆蘸。所以如果h文件里定義了全局變量墩莫,即使采用#ifdef宏定義,多個(gè)c文件包含同一個(gè)h文件還是會(huì)出現(xiàn)全局變量重定義的錯(cuò)誤逞敷。

使用#ifndef可以避免下面這種錯(cuò)誤:如果在h文件中定義了全局變量狂秦,一個(gè)c文件包含同一個(gè)h文件多次,如果不加#ifndef宏定義推捐,會(huì)出現(xiàn)變量重復(fù)定義的錯(cuò)誤裂问;如果加了#ifndef,則不會(huì)出現(xiàn)這種錯(cuò)誤牛柒。

#ifndef 和 #endif 要一起使用堪簿,如果丟失#endif,可能會(huì)報(bào)錯(cuò)皮壁⊥指總結(jié)一下:在c語(yǔ)言中,對(duì)同一個(gè)變量或者函數(shù)進(jìn)行多次聲明是不會(huì)報(bào)錯(cuò)的蛾魄。所以如果h文件里只是進(jìn)行了聲明工作虑瀑,即使不使用# ifndef宏定義,一個(gè)c文件多次包含同一個(gè)h文件也不會(huì)報(bào)錯(cuò)滴须∩喙罚 使用#ifndef可以避免下面這種錯(cuò)誤:如果在h文件中定義了全局變量,一個(gè)c文件包含同一個(gè)h文件多次描馅,如果不加#ifndef宏定義把夸,會(huì)出現(xiàn)變量重復(fù)定義的錯(cuò)誤;如果加了#ifndef铭污,則不會(huì)出現(xiàn)這種錯(cuò)恋日。

3.指針的應(yīng)用

原題記不清了膀篮,牛客網(wǎng)上有一道類似的題
https://www.nowcoder.com/profile/1313996/myFollowings/detail/2175059

4.結(jié)構(gòu)體的大小

32位系統(tǒng)中下面結(jié)構(gòu)體的大小

struct A {
    int a;
    double b;
    char c;
    bool d;
};

由于32位系統(tǒng)下岂膳,每次最多分配4個(gè)字節(jié)誓竿,因此上述結(jié)構(gòu)體的大小為16字節(jié)

5.vector中resize()和reserve()的區(qū)別

http://www.programgo.com/article/51122819213/

6.vector中map和unorderedmap的區(qū)別

雖然都是map,但是內(nèi)部結(jié)構(gòu)大大的不同哎谈截,map的內(nèi)部結(jié)構(gòu)是R-B-tree來(lái)實(shí)現(xiàn)的筷屡,所以保證了一個(gè)穩(wěn)定的動(dòng)態(tài)操作時(shí)間,查詢簸喂、插入毙死、刪除都是O(logN),最壞和平均都是喻鳄。而unordered_map如前所述扼倘,是哈希表。順便提一下除呵,哈希表的查詢時(shí)間雖然是O(1)再菊,但是并不是unordered_map查詢時(shí)間一定比map短,因?yàn)閷?shí)際情況中還要考慮到數(shù)據(jù)量颜曾,而且unordered_map的hash函數(shù)的構(gòu)造速度也沒(méi)那么快纠拔,所以不能一概而論,應(yīng)該具體情況具體分析泛豪。

7.關(guān)于動(dòng)態(tài)聯(lián)編的
2.編程題
1.反轉(zhuǎn)字符串
char* ReverseString(char* input) {
   if(input == NULL)
       return NULL;
   char* pBegin = input, *pEnd = input;
   while(*pEnd != '\0') 
       ++pEnd;
   --pEnd;
   Reverse(pBegin, pEnd);
   pEnd = input;
   while(*pBegin != '\0') {
       if(*pBegin == ' ') {
           pBegin = ++ pEnd;
       }
       else if (*pEnd == ' ' || *pEnd == '\0') {
           Reverse(pBegin, --pEnd);
           pBegin = ++pEnd;
       }
       else
           ++pEnd;
   }   
   return input; 
}

void Reverse(char* pBegin, char* pEnd) {
   if(pBegin == NULL || pEnd == NULL)
       return ;
   while(pBegin < pEnd) {
       char tmp = *pBegin;
       *pBegin = *pEnd;
       *pEnd = tmp;
       ++pBegin, --pEnd;
   }
}
2.反轉(zhuǎn)單鏈表
struct ListNode {
    int val;
    ListNode *next;
};
ListNode* ReverseList(ListNode* pHead) {
    if(pHead == NULL)
        return pHead;
    ListNode *pNode = pHead, pPrev = NULL, pReverseHead = NULL;
    while(pNode) {
        ListNode *pNext = pNode->next;
        if(!pNext)
            pReverseHead = pNode;
        pNode->next = pPrev;
        pPrev = pNode;
        pNode = pNext;
    }
    return pReverseHead;
}
3.求圖中最短路徑稠诲,要求所有節(jié)點(diǎn)只經(jīng)過(guò)一次
3.Linux相關(guān)知識(shí)
1.常用命令的含義

cp, mv, rm, ls, ps, top, crontab

2. 編寫(xiě)shell腳本

主要考察grep

3.gcc編譯test.c為myTest可執(zhí)行程序的命令

gcc -o myTest test.c

4.附加題

包括數(shù)據(jù)庫(kù)查詢語(yǔ)句,Python基礎(chǔ)(貌似是lamba什么的候址,還有可變變量什么的)吕粹,常見(jiàn)的大數(shù)據(jù)算法有哪些种柑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末岗仑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子聚请,更是在濱河造成了極大的恐慌荠雕,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評(píng)論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件驶赏,死亡現(xiàn)場(chǎng)離奇詭異炸卑,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)煤傍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評(píng)論 3 400
  • 文/潘曉璐 我一進(jìn)店門(mén)盖文,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人蚯姆,你說(shuō)我怎么就攤上這事五续∪髅簦” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,941評(píng)論 0 366
  • 文/不壞的土叔 我叫張陵疙驾,是天一觀的道長(zhǎng)凶伙。 經(jīng)常有香客問(wèn)我,道長(zhǎng)它碎,這世上最難降的妖魔是什么函荣? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,294評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮扳肛,結(jié)果婚禮上傻挂,老公的妹妹穿的比我還像新娘。我一直安慰自己挖息,他們只是感情好踊谋,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,295評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著旋讹,像睡著了一般殖蚕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沉迹,一...
    開(kāi)封第一講書(shū)人閱讀 52,874評(píng)論 1 314
  • 那天睦疫,我揣著相機(jī)與錄音,去河邊找鬼鞭呕。 笑死蛤育,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的葫松。 我是一名探鬼主播瓦糕,決...
    沈念sama閱讀 41,285評(píng)論 3 424
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼腋么!你這毒婦竟也來(lái)了咕娄?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,249評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤珊擂,失蹤者是張志新(化名)和其女友劉穎圣勒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體摧扇,經(jīng)...
    沈念sama閱讀 46,760評(píng)論 1 321
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡圣贸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,840評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扛稽。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吁峻。...
    茶點(diǎn)故事閱讀 40,973評(píng)論 1 354
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出用含,到底是詐尸還是另有隱情橙困,我是刑警寧澤,帶...
    沈念sama閱讀 36,631評(píng)論 5 351
  • 正文 年R本政府宣布耕餐,位于F島的核電站凡傅,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏肠缔。R本人自食惡果不足惜夏跷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,315評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望明未。 院中可真熱鬧槽华,春花似錦、人聲如沸趟妥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,797評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)披摄。三九已至亲雪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間疚膊,已是汗流浹背义辕。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,926評(píng)論 1 275
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留寓盗,地道東北人灌砖。 一個(gè)月前我還...
    沈念sama閱讀 49,431評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像傀蚌,于是被迫代替她去往敵國(guó)和親基显。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,982評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容