- 相關推薦
阿里云C++筆試題
阿里云C++
1、(2分)1)請列出兩個線程(或進程)死鎖的三個必要條件
2)當異常(Exception)發生的時候,智能指針(SmartPointer)的析構函數是被誰調用的?
3)一般的臺式機硬盤一次隨機讀寫大約需要多少毫秒(0.1ms、1ms、10ms、100ms)?
4)除了應用程序的系統調用之外,LinuxKernel中的代碼在什么情況下還有機會運行?
2、(1分)求下面函數的返回值。輸入x的值為。
int func(int x)
{
int countx=0;
while(x)
{
++countx;
x=x&(x-1);
}
return countx;
}
3、(1分)一進程在執行時,如果按下列頁號訪問:1、2、3、4、2、1、5、6、2、1、2、3、7、6、3。進程占用4頁物理內存,采用FIFO淘汰算法和LRU淘汰算法時,各產生多少次缺頁中斷?分別寫出使用兩種方法時,依次被淘汰的頁面號以及最后內存空間中剩余的頁面。
4、(1分)寫出下列程序的輸出結果:
#include
using name space std;
int main()
{
char *a=”Aliyun”;
char **b=&a;
*b=”programming test”;
char *c=++a;
a=”talents.”;
return printf(“%c\n,*++c);
}
5、(1分)連接A、B兩地的公路長240km,現各有一列汽車分別從兩地出發相向而行,各自保持勻速50km/h和30km/h。有一鳥兒也和A地的汽車一起從A地出發,以65km/h的速度沿公路朝B地飛行;當它遇到B地的汽車的時候,折返往A飛;再遇到A地汽車的時候,折返往B飛;如此往返。請問當A、B兩地出發的汽車相遇的時候,鳥兒飛行了多少km?
6、(1分)一個骰子有6個面,分別是1個1、2個2、3個3。請問平均需要拋多少次骰子才能使1、2、3這三面都至少出現一次。
7、(1分)請實現一個遞歸函數將一個字符串反轉(字符串最大長度為100)。例如:如果char *str=”abcdef”,反轉后的字符串str為“fedcba”。
8(2分)請編寫測試用例,來判斷某一個文件系統中的一個函數實現是否符合規范定義。該函數名為:bool VailidataPath(char* path),其作用是檢測用戶輸入路徑是否合法。 系統合法的路徑名稱規范要求必須同時滿足以下四個規則:
a) 字符串長度最短為1,最長為2048。
b) 只允許出現大小寫字母、數字、下劃線(_)和斜杠(/)中的一種或多種字符; c) 斜杠(/)禁止連續出現;
d) 路徑中禁止包含字符串“/delete/”。
注意:本題不要求實現ValidataPath()函數,只要求寫出測試用例。
9、(2分)下面的代碼定義一個value為int的節點組成的二叉樹的數據結構:
struct Node
{
Node * left, right;
int value;
};
已知二叉樹最大深度為10,請實現一函數寬度優先遍歷該二叉樹并打印所有節點的值。 以下深度為4的二叉樹遍歷寬度優先歷結果為:8、5、12、3、6、10、15、1、4、9、11、13、20。
10、(3分)給出26個小寫字母(a~z)在一份文檔里面的絕對位置信息列表阿里云C++筆試題(位置按從小到大順序,以整數vector形式存在)。例如:字母a出現在4、29、40個字符位置,字母b出現在第10、38、74個字符位置。文檔本身可能包含非英語字母字符。請編寫一個程序判斷給定小寫英文單詞是否在文檔中出現。
bool find(vector pos[26], char* word);
【阿里云C++筆試題】相關文章:
C/C++筆試題目大全03-13
最新阿里巴巴筆試題 -管理資料03-25
最新360筆試題分享 -管理資料03-25
阿里郎的傳說02-24
C++程序員03-09
阿里山的典故03-06
走近阿里·瓦迪04-26
阿里山教案08-29
阿里巴巴實習生測試開發工程師筆試題目05-25
大盜阿里巴巴介紹11-04