大疆2019測(cè)試筆試匯總
-
【筆試部分】
-
【單選】
1.對(duì)于堆和棧的描述,正確的是()
A.棧的大小會(huì)隨著函數(shù)調(diào)用層次的變化而變化
B.從堆上申請(qǐng)內(nèi)存,沒有釋放的話,會(huì)造成內(nèi)存泄漏;棧的內(nèi)存由編譯器管理,不會(huì)內(nèi)存泄漏
C.在windows上,堆的生長(zhǎng)方向是向下的,隨著內(nèi)存地址減小的方向增長(zhǎng);棧的生長(zhǎng)方向是向上的,即向著內(nèi)存地址增加的方向增長(zhǎng)
D.在C語(yǔ)言中,指針只能指向堆上的內(nèi)存,不能指向棧上的內(nèi)存
【考查知識(shí)點(diǎn)】堆與棧
【解析】棧一般都一個(gè)默認(rèn)大小,棧的地址空間是連續(xù)的,如果任其增長(zhǎng)會(huì)給內(nèi)存帶來(lái)困難,A錯(cuò)誤;棧由編譯器在需要的時(shí)候分配,不需要的時(shí)候自動(dòng)清除,而堆是由程序員來(lái)釋放的,容易產(chǎn)生內(nèi)存泄漏,而棧是由系統(tǒng)管理的,B正確。對(duì)于堆來(lái)說,生長(zhǎng)方向是向上的,也就是向著內(nèi)存地址增加的地方;對(duì)于棧來(lái)說,生長(zhǎng)方向是向下的,是向著內(nèi)存地址減小的方向增長(zhǎng),如下圖所示,C錯(cuò)誤;C語(yǔ)言中指針也可以指向棧,如char buf[10]={0};char *buff=buf;buff[1]=’a’;D錯(cuò)誤。
低 ->|-----------------| |
2.對(duì)于線程和進(jìn)程的描述,正確的是
A.進(jìn)程退出前,需要手動(dòng)銷毀所有線程,否則進(jìn)程退出后,依然會(huì)有線程在運(yùn)行,可能導(dǎo)致不可預(yù)測(cè)的后果
B.在單核的CPU上使用多線程,并不會(huì)比單線程有優(yōu)勢(shì)
C.進(jìn)程是調(diào)度和擁有資源的基本單位
D.使用全局變量、內(nèi)存時(shí),需要使用同步機(jī)制,因?yàn)樗鼈冊(cè)谕坏刂房臻g內(nèi)
【考查知識(shí)點(diǎn)】線程與進(jìn)程
【解析】通常一個(gè)任務(wù)不光CPU要花時(shí)間,I/O也要花時(shí)間,一個(gè)進(jìn)程等I/O時(shí),CPU是閑置的,另一個(gè)進(jìn)程可以利用CPU進(jìn)行計(jì)算,單核多線程指的是單核CPU輪流執(zhí)行多個(gè)線程,通過給每個(gè)線程分配CPU時(shí)間片來(lái)實(shí)現(xiàn),因?yàn)闀r(shí)間片非常短用戶感覺是多個(gè)線程同時(shí)執(zhí)行,B錯(cuò)誤;進(jìn)程是擁有資源的基本單位,線程是獨(dú)立調(diào)度的基本單位,C錯(cuò)誤;D正確。
3.某二叉樹有2000個(gè)節(jié)點(diǎn),則二叉樹的最小高度為:
A.9? B.10??? C.11??? D.12
【考查知識(shí)點(diǎn)】二叉樹
【解析】最低為log2(n+1) ,最高為n,故答案選C
4.在C++中,定義“int *p=new int(10)”,釋放p指向的內(nèi)存,語(yǔ)句是()
A.delete *p???????? B.delete &p??????? C.delete p?????? D.delete []p
【考查知識(shí)點(diǎn)】指針
【解析】int *p=new int-分配一個(gè)int型變量所占大小的空間,并將首地址賦給int*型指針p;int *p=new int[10]-分配一個(gè)有10個(gè)int型元素的數(shù)組所占空間,并將該數(shù)組的第一個(gè)元素的地址賦給int*型指針p;int *p=new int(10)-分配一個(gè)int型變量所占大小的空間,并賦值10。一般用法是new一個(gè)數(shù)組的話用delete [],其他直接用delete即可。
5.某函數(shù)有且只有2個(gè)輸入?yún)?shù),參數(shù)A的取值可劃分為5個(gè)等價(jià)類,參數(shù)B的取值可劃分為3個(gè)等價(jià)類。至少應(yīng)為函數(shù)設(shè)計(jì)()組測(cè)試數(shù)據(jù)
A.4????? B.10????????? C.15????????? D.30
【補(bǔ)充】等價(jià)類劃分是一種典型的黑盒測(cè)試方法。在測(cè)試時(shí)分為一般等價(jià)類測(cè)試、健壯等價(jià)類測(cè)試。
一般等價(jià)類測(cè)試中包括弱一般等價(jià)類(“弱”指含單缺陷設(shè)計(jì))和強(qiáng)一般等價(jià)類(“強(qiáng)”指含多缺陷設(shè)計(jì)),“一般”指不考慮無(wú)效值。弱一般等價(jià)類測(cè)試用例通過使用一個(gè)測(cè)試用例中的每個(gè)有效等價(jià)類(區(qū)間)的代表值來(lái)實(shí)現(xiàn)(常以對(duì)稱方式來(lái)標(biāo)識(shí)這些測(cè)試用例,且注意單邊假設(shè)作用);強(qiáng)一般等價(jià)類測(cè)試用例通過每個(gè)獨(dú)立變量的有效等價(jià)類的笛卡爾積來(lái)實(shí)現(xiàn)。
弱健壯等價(jià)類測(cè)試。弱健壯等價(jià)類測(cè)試中的無(wú)效測(cè)試用例只含一個(gè)無(wú)效值,其他都是有效值,即含有單缺陷假設(shè)?!咀ⅲ骸叭酢笔侵负瑔稳毕菁僭O(shè),“強(qiáng)”是指含多缺陷假設(shè);“健壯”是指考慮無(wú)效值】;?強(qiáng)健壯等價(jià)類測(cè)試考慮了更多的無(wú)效值情況。強(qiáng)健壯等價(jià)類測(cè)試中的無(wú)效測(cè)試用例可以包含多個(gè)無(wú)效值,即含有多個(gè)缺陷假設(shè)。NextDate函數(shù)有三個(gè)變量,故相應(yīng)地強(qiáng)健壯等價(jià)類測(cè)試用例可包含一個(gè)無(wú)效值、兩個(gè)無(wú)效值或三個(gè)無(wú)效值。【注:“強(qiáng)”是指含多缺陷假設(shè),“強(qiáng)”是指含多缺陷假設(shè);“健壯”是指考慮無(wú)效值】
【解析】(求大神解答)
6.下列哪些linux的跨進(jìn)程通信方式不適合數(shù)據(jù)傳輸()
A.pipe,管道 ??B.shared memory,共享內(nèi)存 ??C.socket,套接字 ????D.semaphore,信號(hào)量
【考察知識(shí)點(diǎn)】進(jìn)程通信
【解析】linux進(jìn)程通信的6種方式有管道、信號(hào)量、信號(hào)、消息隊(duì)列、共享內(nèi)存和套接字。管道允許一個(gè)進(jìn)程和另一個(gè)與它有共同祖先的進(jìn)程之間通信;信號(hào)量作為進(jìn)程間及同進(jìn)程不同線程間的同步手段;信號(hào)可用于進(jìn)程間通信和進(jìn)程本身通信;消息隊(duì)列是消息的鏈表,允許一個(gè)或多個(gè)進(jìn)程向它寫入與讀取消息;共享內(nèi)存使多個(gè)進(jìn)程訪問同一塊內(nèi)存空間;套接字用于不同機(jī)器之間的進(jìn)程間通信。選A
7.如果計(jì)算機(jī)內(nèi)存大小為1G,虛擬地址空間為4G,在計(jì)算機(jī)系統(tǒng)上,需要的指針長(zhǎng)度為()位
A.32????????? B.30??????? C.64???????? D.16
【考查知識(shí)點(diǎn)】虛擬內(nèi)存
【解析】最大尋址空間為4G,則指針為32位,232=4GB
#include<stdio.h> void?Foo(char?param[20])?{ ????printf("%d\n",?sizeof(param)); ????printf("%d\n",?strlen(param)); } int?main(int?argc,?const?char?*?argv[])?{ ????char?str1[]?=?"Hello\0dji"; ????char?str2[]?=?{?'H','e','l','l','o','\0','d','j','i'?}; ????printf("%d\n",?sizeof(str1)); ????printf("%d\n",?sizeof(str2)); ????Foo(str1); }
【考查知識(shí)點(diǎn)】sizeof
【解析】因?yàn)閟tr1‘\’和‘0’是分開計(jì)算而str2是合起來(lái)計(jì)算的,所以sizeof(str1)為10,sizeof(str2)為9;Foo函數(shù)中,數(shù)組作為參數(shù)傳遞時(shí)會(huì)退化成指針,在32位操作系統(tǒng)中,指針占4個(gè)字節(jié)(64位操作系統(tǒng)占8個(gè)字節(jié));strlen是計(jì)算char的長(zhǎng)度,以’\0’為字符串結(jié)束的標(biāo)志,所以傳入Hello,為5.
9.使用以下哪種技術(shù)無(wú)法偽裝自己的IP地址()
A.HTTP Proxy????????? B.Socks Prox?????? C.VPN?????????? D.修改DNS
【解析】HTTP Proxy是HTTP代理,其中的一個(gè)作用就是訪問,通過刪除HTTP報(bào)文中的身份特性從而對(duì)遠(yuǎn)端服務(wù)器隱藏原始用戶的IP地址及其他細(xì)節(jié),同時(shí)HTTP代理也不會(huì)記錄用戶訪問記錄的log,A正確;Socks Prox是Socket代理,可以將瀏覽器的上網(wǎng)行為保護(hù)起來(lái),如果需要所有互聯(lián)網(wǎng)訪問保護(hù)起來(lái)就需要使用VPN,因此BC正確;修改DNS可以提高上網(wǎng)的速度,可以訪問某些因?yàn)橛蛎馕龃嬖趩栴}而不能訪問的網(wǎng)站,可以屏蔽運(yùn)營(yíng)商的廣告避免被釣魚的危險(xiǎn),但并不能偽裝IP地址,D錯(cuò)誤。
-
【雙選】
1.有一項(xiàng)考試的成績(jī),目前是按照完成時(shí)間進(jìn)行升序排列的,需要按照考試成績(jī)進(jìn)行排序,成績(jī)高的排在前面,如果成績(jī)相同,則完成時(shí)間短的排在前面。以上場(chǎng)景適合采用下列哪些排序算法?
A.插入排序 ??B.快速排序 ????C.堆排序 ???D.冒泡排序
【解析】本題實(shí)際考察哪種排序算法是穩(wěn)定的,插入、冒泡是穩(wěn)定的,快速和堆是不穩(wěn)定的。
2.下列關(guān)于HTTP協(xié)議,描述正確的是
A.HTTP協(xié)議工作在應(yīng)用層
B.HTTP只能使用80端口,HTTPS只能使用443端口
C.HTTP是有狀態(tài)協(xié)議
D.HTTP協(xié)議支持一定時(shí)間內(nèi)的TCP連接保持,這個(gè)連接可以用于發(fā)送/接收多次請(qǐng)求
【解析】HTTP是應(yīng)用層協(xié)議,A正確;HTTP常用端口80/8080/3128/8081/9098,HTTPS默認(rèn)端口TCP/443,UDP/443,B錯(cuò)誤;HTTP是無(wú)狀態(tài)協(xié)議,協(xié)議的狀態(tài)是指下一次連接而維護(hù)這次連接所傳輸?shù)男畔ⅲ热缈蛻臬@得一張網(wǎng)頁(yè)之后關(guān)閉瀏覽器,然后再一次啟動(dòng)瀏覽器,再登陸該網(wǎng)站,但是服務(wù)器并不知道客戶關(guān)閉了一次瀏覽器。由于Web服務(wù)器要面對(duì)很多瀏覽器的并發(fā)訪問,為了提高Web服務(wù)器對(duì)并發(fā)訪問的處理能力,在設(shè)計(jì)HTTP協(xié)議時(shí)規(guī)定Web服務(wù)器發(fā)送HTTP應(yīng)答報(bào)文和文檔時(shí),不保存發(fā)出請(qǐng)求的Web瀏覽器進(jìn)程的任何狀態(tài)信息。這有可能出現(xiàn)一個(gè)瀏覽器在短短幾秒之內(nèi)兩次訪問同一對(duì)象時(shí),服務(wù)器進(jìn)程不會(huì)因?yàn)橐呀?jīng)給它發(fā)過應(yīng)答報(bào)文而不接受第二期服務(wù)請(qǐng)求。由于Web服務(wù)器不保存發(fā)送請(qǐng)求的Web瀏覽器進(jìn)程的任何信息,因此HTTP協(xié)議屬于無(wú)狀態(tài)協(xié)議,可以通過Cookie和Session將狀態(tài)分別保存在客戶端和服務(wù)器端,C錯(cuò)誤;HTTP是建立在TCP協(xié)議之上的,建立和釋放連接的時(shí)間都很短,所以HTTP是一種短連接,為了解決每次連接釋放效率低的問題,提出keep-alive保持連接特性,可以在一段時(shí)間內(nèi)多次發(fā)送、接收,D正確。
-
【編程題】
給出一串阿拉伯?dāng)?shù)字,輸出對(duì)應(yīng)的中文讀法。
輸入描述:
輸入m,范圍是0<=m<100000000
樣例:
18
輸出:十八
#include<iostream> using?namespace?std; void?fun(long?n) { ?????????if?(n?==?0) ?????????{ ???????????????????cout?<<?0; ???????????????????return; ?????????} ?????????int?temp?=?0; ?????????long?arr[5]?=?{?0?}; ?????????int?i?=?0; ?????????int?j?=?4; ?????????while?(n) ?????????{ ???????????????????temp?=?n?%?10; ???????????????????arr[j]?=?temp; ???????????????????n?/=?10; ???????????????????--j; ???????????????????++i; ?????????} ?????????int?k?=?0; ?????????while?(i) ?????????{ ???????????????????k?=?5?-?i; ???????????????????switch?(i) ???????????????????{ ???????????????????????? ????????????????????????????case?1:if?(arr[k]?!=?0) ????????????????????????????{ ?????????????????????????????????????cout?<<?arr[k]; ????????????????????????????} ????????????????????????????break; ????????????????????????????case?2:if?(arr[k]?!=?0) ????????????????????????????{ ?????????????????????????????????????cout?<<?arr[k]?<<?"S"; ????????????????????????????} ????????????????????????????else?if?(arr[k]?==?0?&&?arr[k+1]?!=?0?) ????????????????????????????{ ?????????????????????????????????????cout?<<?"L"; ????????????????????????????} ????????????????????????????break; ????????????????????????????case?3:if?(arr[k]?!=?0) ????????????????????????????{ ?????????????????????????????????????cout?<<?arr[k]?<<?"B"; ????????????????????????????} ????????????????????????????else?if?(arr[k]?==?0?&&?arr[k?+?1]?!=?0?&&?(arr[3]?||arr[4])) ????????????????????????????{ ?????????????????????????????????????cout?<<?"L"; ????????????????????????????} ????????????????????????????break; ????????????????????????????case?4:if?(arr[k]?!=?0) ????????????????????????????{ ?????????????????????????????????????cout?<<?arr[k]?<<?"Q"; ????????????????????????????} ????????????????????????????else?if?(arr[k]?==?0?&&?arr[k?+?1]?!=?0?&&?(arr[2]?||arr[3])) ????????????????????????????{ ?????????????????????????????????????cout?<<?"L"; ????????????????????????????} ????????????????????????????break; ????????????????????????????case?5:if?(arr[k]?!=?0) ????????????????????????????{ ?????????????????????????????????????cout?<<?arr[k]?<<?"W"; ????????????????????????????} ????????????????????????????????????????break; ????????????????????????????default: ?????????????????????????????????????break; ????????????????????????????} ???????????????????--i; ?????????} } int?main() { ?????????/* ?????????12001???1W2QL1 ?????????*/ ????long?n?=?0; ?????????while?(1) ?????????{ ???????????????????cin?>>?n; ???????????????????if?(n?>=?0?&&?n?<=?99999) ???????????????????{ ????????????????????????????fun(n); ????????????????????????????cout?<<?endl; ???????????????????} ?????????} ?????????return?0; }最近申請(qǐng)了公眾號(hào)【IT開發(fā)與進(jìn)階】,將分享筆試面經(jīng) 資料等,歡迎來(lái)撩~
#大疆##筆試題目##測(cè)試工程師#