- 相關推薦
阿里云C++筆試題
阿里云C++
1、(2分)1)請列出兩個線程(或進程)死鎖的三個必要條件
2)當異常(Exception)發(fā)生的時候,智能指針(SmartPointer)的析構函數(shù)是被誰調用的?
3)一般的臺式機硬盤一次隨機讀寫大約需要多少毫秒(0.1ms、1ms、10ms、100ms)?
4)除了應用程序的系統(tǒng)調用之外,LinuxKernel中的代碼在什么情況下還有機會運行?
2、(1分)求下面函數(shù)的返回值。輸入x的值為。
int func(int x)
{
int countx=0;
while(x)
{
++countx;
x=x&(x-1);
}
return countx;
}
3、(1分)一進程在執(zhí)行時,如果按下列頁號訪問: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,現(xiàn)各有一列汽車分別從兩地出發(fā)相向而行,各自保持勻速50km/h和30km/h。有一鳥兒也和A地的汽車一起從A地出發(fā),以65km/h的速度沿公路朝B地飛行;當它遇到B地的汽車的時候,折返往A飛;再遇到A地汽車的時候,折返往B飛;如此往返。請問當A、B兩地出發(fā)的汽車相遇的時候,鳥兒飛行了多少km?
6、(1分)一個骰子有6個面,分別是1個1、2個2、3個3。請問平均需要拋多少次骰子才能使1、2、3這三面都至少出現(xiàn)一次。
7、(1分)請實現(xiàn)一個遞歸函數(shù)將一個字符串反轉(字符串最大長度為100)。例如:如果char *str=”abcdef”,反轉后的字符串str為“fedcba”。
8(2分)請編寫測試用例,來判斷某一個文件系統(tǒng)中的一個函數(shù)實現(xiàn)是否符合規(guī)范定義。該函數(shù)名為:bool VailidataPath(char* path),其作用是檢測用戶輸入路徑是否合法。 系統(tǒng)合法的路徑名稱規(guī)范要求必須同時滿足以下四個規(guī)則:
a) 字符串長度最短為1,最長為2048。
b) 只允許出現(xiàn)大小寫字母、數(shù)字、下劃線(_)和斜杠(/)中的一種或多種字符; c) 斜杠(/)禁止連續(xù)出現(xiàn);
d) 路徑中禁止包含字符串“/delete/”。
注意:本題不要求實現(xiàn)ValidataPath()函數(shù),只要求寫出測試用例。
9、(2分)下面的代碼定義一個value為int的節(jié)點組成的二叉樹的數(shù)據(jù)結構:
struct Node
{
Node * left, right;
int value;
};
已知二叉樹最大深度為10,請實現(xiàn)一函數(shù)寬度優(yōu)先遍歷該二叉樹并打印所有節(jié)點的值。 以下深度為4的二叉樹遍歷寬度優(yōu)先歷結果為:8、5、12、3、6、10、15、1、4、9、11、13、20。
10、(3分)給出26個小寫字母(a~z)在一份文檔里面的絕對位置信息列表阿里云C++筆試題(位置按從小到大順序,以整數(shù)vector形式存在)。例如:字母a出現(xiàn)在4、29、40個字符位置,字母b出現(xiàn)在第10、38、74個字符位置。文檔本身可能包含非英語字母字符。請編寫一個程序判斷給定小寫英文單詞是否在文檔中出現(xiàn)。
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
大盜阿里巴巴介紹11-04