精品一区二区中文在线,无遮挡h肉动漫在线观看,国产99视频精品免视看9,成全免费高清大全

阿里巴巴C++工程師筆試題目

時(shí)間:2024-10-17 12:59:38 資料大全 我要投稿
  • 相關(guān)推薦

阿里巴巴C++工程師筆試題目

  想要在校招中成功進(jìn)入阿里巴巴上班嗎,以下由YJBYS小編為大家提供的“阿里巴巴C++工程師筆試題目”,供大家參考借鑒,希望可以幫助到大家,

阿里巴巴C++工程師筆試題目

阿里巴巴C++工程師筆試題目

  一、問答題

  01機(jī)器人每次向前走1步概率是1/2,每次向前走2步概率是1/2,當(dāng)機(jī)器人走的路程是4的整數(shù)倍時(shí)候結(jié)束,求結(jié)束時(shí)機(jī)器人步數(shù)的期望

  027635412,做堆排序升序,第一輪后的結(jié)果

  03老公接老婆下班,老公6:20—6:30到,老婆6:25—6:30下辦公樓,如果老公到老婆辦公樓下比老婆晚,就會(huì)挨打,求老公挨打概率。

  04二進(jìn)制數(shù)0.0011001100110011最接近的10進(jìn)制數(shù)

  05中國打算30年后成為發(fā)達(dá)國家,生產(chǎn)力翻番,問每年的生產(chǎn)力增長率至少為多少?

  06進(jìn)程和線程區(qū)別

  07擲篩子拿獎(jiǎng)金,兩次機(jī)會(huì),擲得是幾,就拿幾的獎(jiǎng)金,比如擲3,則拿3元。第一次擲結(jié)束后可以選擇拿獎(jiǎng)金離開,也可以選擇再擲一次,如果再擲一次,則只能拿第二次獲得的獎(jiǎng)金,求期望

  08write pwrite seek fseek 哪個(gè)和其他的不同 一個(gè)是系統(tǒng)調(diào)用一個(gè)是庫函數(shù)

  二、附加題

  09給出一組整數(shù)對(duì) { (a[0], b[0]), (a[1], b[1]) ... (a[n-1], b[n-1]) },所有 a 值 和 b 值分別不重復(fù)(任意 i != j 滿足 a != a[j] 且 b != b[j])。構(gòu)造一棵 n 結(jié)點(diǎn)的二叉樹,將這 n 個(gè)整數(shù)對(duì)分配到各個(gè)結(jié)點(diǎn)上。根和所有子樹滿足以下條件:

  1) 所有結(jié)點(diǎn)的 a 值滿足二叉查找樹的順序,即 left->a < root->a && root->a < right->a;

  2) 所有結(jié)點(diǎn)的 b 值滿足最大堆的順序,即 root->b > left->b && root->b > right->b。

  問題一:實(shí)現(xiàn) build 函數(shù),輸入 n 個(gè)整數(shù)對(duì),返回一棵構(gòu)造好的二叉樹。

  struct pair_t {

  int a, b;

  };

  struct node_t {

  int a, b;

  node_t *left, *right;

  };

  node_t* build(pair_t* pair, int n);

  例如,輸入是 {(5, 8), (2, 10), (4, 3), (1, 5), (0, 2), (9, 1)},輸出是下列二叉樹:

  提示:1) 構(gòu)造出的二叉樹的形態(tài)是存在且唯一的。 2) 想辦法確定樹根。

  10

  已知滿足上述條件的二叉樹,設(shè)計(jì)算法實(shí)現(xiàn)插入一個(gè)整對(duì) (a, b),使新的二叉樹仍滿足上述條件,

資料共享平臺(tái)

阿里巴巴C++工程師筆試題目》(http://salifelink.com)。該算法比較復(fù)雜,候選人只需描述思路。

  1、假設(shè)目前有3個(gè)程序A, B和C,需要相互傳輸數(shù)據(jù),我們需要給做一個(gè)中轉(zhuǎn)程序P。 A 讀寫的數(shù)據(jù)是經(jīng)過某壓縮格式azip壓縮過的。

  B 讀寫的數(shù)據(jù)需要base64編碼。

  C 讀寫數(shù)據(jù)需要壓縮格式bzip壓縮后base64編碼。

  現(xiàn)在假設(shè)已有工具函數(shù) :

  std::string azip(const std::string& input);

  std::string aunzip(const std::string& input);

  std::string base64encode(const std::string& input);

  std::string base64decode(const std::string& input);

  bool bzip(const std::string& input, std::string* output);

  bool bunzip(const std::string& input, std::string* output);

  請(qǐng)給中轉(zhuǎn)程序P設(shè)計(jì)格式轉(zhuǎn)換的工具類。注意設(shè)計(jì)的通用性,比如:可能有新的角色加入,要求給做加密解密等。

  2、假設(shè)我們已有一個(gè)函數(shù), int recv(char* buf, int len);

  這個(gè)函數(shù)要求你準(zhǔn)備一個(gè) buffer,并告訴這個(gè)函數(shù)這個(gè) buffer 有多長(len),這個(gè)函數(shù)就會(huì)在 buffer 里填上一些字符,并返回字符的個(gè)數(shù)(返回值永遠(yuǎn) > 0 )。

  請(qǐng)寫出這樣一個(gè)函數(shù),

  char* read_line() {

  // ??? 你要寫的代碼

  }

  這個(gè)函數(shù)不需要任何參數(shù),內(nèi)部是靠調(diào)用 recv() 來拿到一些字符,然后要搜索回車字符 \n,找到后返回之前的字符,比如,

  如果 recv() 拿到 "123\n45\n678",那第一次調(diào)用 read_line(),需要返回 "123"

  但是請(qǐng)注意,第二次調(diào)用時(shí),要返回 "45" (第二行字符竄)

  第三次調(diào)用時(shí),"678" 還沒用掉,可是因?yàn)?678 之后沒有 \n,所以你要繼續(xù)調(diào)用 recv(),拿到更多字符,

  假如 recv() 返回 "abc",你有了 "678abc",可是因?yàn)?abc 之后沒有 \n,所以你要繼續(xù)調(diào)用 recv(),拿到更多字符

  假如 recv() 返回 "de\n",你有了 "678abcde\n", 因?yàn)榭吹搅?\n,所以你可以直接返回 "678abcde" 了。

【阿里巴巴C++工程師筆試題目】相關(guān)文章:

C/C++筆試題目大全03-13

阿里巴巴實(shí)習(xí)生測試開發(fā)工程師筆試題目09-29

IBM筆試題目05-02

經(jīng)歷的筆試題目03-13

職場經(jīng)典筆試題目07-21

中信證券筆試題目10-03

Java基礎(chǔ)筆試題目05-25

唯品會(huì)筆試題目07-29

電信公司筆試題目類型03-13

客服專員招聘筆試題目09-29