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

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

時間:2024-10-17 12:59:38 資料大全 我要投稿
  • 相關推薦

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

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

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

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

  一、問答題

  01機器人每次向前走1步概率是1/2,每次向前走2步概率是1/2,當機器人走的路程是4的整數倍時候結束,求結束時機器人步數的期望

  027635412,做堆排序升序,第一輪后的結果

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

  04二進制數0.0011001100110011最接近的10進制數

  05中國打算30年后成為發達國家,生產力翻番,問每年的生產力增長率至少為多少?

  06進程和線程區別

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

  08write pwrite seek fseek 哪個和其他的不同 一個是系統調用一個是庫函數

  二、附加題

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

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

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

  問題一:實現 build 函數,輸入 n 個整數對,返回一棵構造好的二叉樹。

  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) 構造出的二叉樹的形態是存在且唯一的。 2) 想辦法確定樹根。

  10

  已知滿足上述條件的二叉樹,設計算法實現插入一個整對 (a, b),使新的二叉樹仍滿足上述條件,

資料共享平臺

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

  1、假設目前有3個程序A, B和C,需要相互傳輸數據,我們需要給做一個中轉程序P。 A 讀寫的數據是經過某壓縮格式azip壓縮過的。

  B 讀寫的數據需要base64編碼。

  C 讀寫數據需要壓縮格式bzip壓縮后base64編碼。

  現在假設已有工具函數 :

  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);

  請給中轉程序P設計格式轉換的工具類。注意設計的通用性,比如:可能有新的角色加入,要求給做加密解密等。

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

  這個函數要求你準備一個 buffer,并告訴這個函數這個 buffer 有多長(len),這個函數就會在 buffer 里填上一些字符,并返回字符的個數(返回值永遠 > 0 )。

  請寫出這樣一個函數,

  char* read_line() {

  // ??? 你要寫的代碼

  }

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

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

  但是請注意,第二次調用時,要返回 "45" (第二行字符竄)

  第三次調用時,"678" 還沒用掉,可是因為 678 之后沒有 \n,所以你要繼續調用 recv(),拿到更多字符,

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

  假如 recv() 返回 "de\n",你有了 "678abcde\n", 因為看到了 \n,所以你可以直接返回 "678abcde" 了。

《国产永久免费高清在线,最好看免费观看高清电影大全,色欧美片视频在线观看.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

【阿里巴巴C++工程師筆試題目】相關文章:

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

阿里巴巴實習生測試開發工程師筆試題目09-29

IBM筆試題目05-02

經歷的筆試題目03-13

職場經典筆試題目07-21

中信證券筆試題目10-03

Java基礎筆試題目05-25

唯品會筆試題目07-29

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

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

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

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

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

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

  一、問答題

  01機器人每次向前走1步概率是1/2,每次向前走2步概率是1/2,當機器人走的路程是4的整數倍時候結束,求結束時機器人步數的期望

  027635412,做堆排序升序,第一輪后的結果

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

  04二進制數0.0011001100110011最接近的10進制數

  05中國打算30年后成為發達國家,生產力翻番,問每年的生產力增長率至少為多少?

  06進程和線程區別

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

  08write pwrite seek fseek 哪個和其他的不同 一個是系統調用一個是庫函數

  二、附加題

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

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

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

  問題一:實現 build 函數,輸入 n 個整數對,返回一棵構造好的二叉樹。

  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) 構造出的二叉樹的形態是存在且唯一的。 2) 想辦法確定樹根。

  10

  已知滿足上述條件的二叉樹,設計算法實現插入一個整對 (a, b),使新的二叉樹仍滿足上述條件,

資料共享平臺

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

  1、假設目前有3個程序A, B和C,需要相互傳輸數據,我們需要給做一個中轉程序P。 A 讀寫的數據是經過某壓縮格式azip壓縮過的。

  B 讀寫的數據需要base64編碼。

  C 讀寫數據需要壓縮格式bzip壓縮后base64編碼。

  現在假設已有工具函數 :

  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);

  請給中轉程序P設計格式轉換的工具類。注意設計的通用性,比如:可能有新的角色加入,要求給做加密解密等。

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

  這個函數要求你準備一個 buffer,并告訴這個函數這個 buffer 有多長(len),這個函數就會在 buffer 里填上一些字符,并返回字符的個數(返回值永遠 > 0 )。

  請寫出這樣一個函數,

  char* read_line() {

  // ??? 你要寫的代碼

  }

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

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

  但是請注意,第二次調用時,要返回 "45" (第二行字符竄)

  第三次調用時,"678" 還沒用掉,可是因為 678 之后沒有 \n,所以你要繼續調用 recv(),拿到更多字符,

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

  假如 recv() 返回 "de\n",你有了 "678abcde\n", 因為看到了 \n,所以你可以直接返回 "678abcde" 了。