精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

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

  2016年阿里巴巴校招開始了,下面是一些C++工程師的筆試題目,你會做嗎?

  一、問答題

  01

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

  02

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

  03

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

  04

  二進制數(shù)0.0011001100110011最接近的10進制數(shù)

  05

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

  06

  進程和線程區(qū)別

  07

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

  08

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

  二、附加題

  09

  給出一組整數(shù)對 { (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 個整數(shù)對分配到各個結點上。根和所有子樹滿足以下條件:

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

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

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

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

  10

  已知滿足上述條件的二叉樹,設計算法實現(xiàn)插入一個整對 (a, b),使新的二叉樹仍滿足上述條件。該算法比較復雜,候選人只需描述思路。

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

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

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

  現(xiàn)在假設已有工具函數(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);

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

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

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

  請寫出這樣一個函數(shù),

  char* read_line() {

  // ??? 你要寫的代碼

  }

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

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

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

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

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

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

本文已影響6827
上一篇: 下一篇:搜狐網(wǎng)易2016研發(fā)工程師筆試題

相關文章推薦

|||||