資源描述:
《華為C++筆試題目》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、華為1.static有什么用途?(請(qǐng)至少說(shuō)明兩種)1)在函數(shù)體,一個(gè)被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過(guò)程中維持其值不變。2)在模塊內(nèi)(但在函數(shù)體外),一個(gè)被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問(wèn),但不能被模塊外其它函數(shù)訪問(wèn)。它是一個(gè)本地的全局變量。3)在模塊內(nèi),一個(gè)被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那就是,這個(gè)函數(shù)被限制在聲明它的模塊的本地范圍內(nèi)使用2.引用與指針有什么區(qū)別?1)引用必須被初始化,指針不必。2)引用初始化以后不能被改變,指針可以改變所指的對(duì)象。3)不存在指向空值的引用,但是存在指向空值的指針。3
2、.描述實(shí)時(shí)系統(tǒng)的基本特性在特定時(shí)間內(nèi)完成特定的任務(wù),實(shí)時(shí)性與可靠性。4.全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有,是什么區(qū)別?全局變量?jī)?chǔ)存在靜態(tài)數(shù)據(jù)庫(kù),局部變量在堆棧。5.什么是平衡二叉樹(shù)?左右子樹(shù)都是平衡二叉樹(shù)且左右子樹(shù)的深度差值的絕對(duì)值不大于1。6.堆棧溢出一般是由什么原因?qū)е碌??沒(méi)有回收垃圾資源。7.什么函數(shù)不能聲明為虛函數(shù)?constructor函數(shù)不能聲明為虛函數(shù)。8.冒泡排序算法的時(shí)間復(fù)雜度是什么?時(shí)間復(fù)雜度是O(n^2)。9.寫(xiě)出floatx與“零值”比較的if語(yǔ)句。if(x>0.000001&&x<-0.000
3、001)10.Internet采用哪種網(wǎng)絡(luò)協(xié)議?該協(xié)議的主要層次結(jié)構(gòu)?Tcp/Ip協(xié)議主要層次結(jié)構(gòu)為:應(yīng)用層/傳輸層/網(wǎng)絡(luò)層/數(shù)據(jù)鏈路層/物理層。11.Internet物理地址和IP地址轉(zhuǎn)換采用什么協(xié)議?ARP(AddressResolutionProtocol)(地址解析協(xié)議)12.IP地址的編碼分為哪倆部分?82IP地址由兩部分組成,網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)。不過(guò)是要和“子網(wǎng)掩碼”按位與上之后才能區(qū)分哪些是網(wǎng)絡(luò)位哪些是主機(jī)位。13.用戶(hù)輸入M,N值,從1至N開(kāi)始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直至全部輸出。寫(xiě)出C程序。循環(huán)鏈表,用取余
4、操作做14.不能做switch()的參數(shù)類(lèi)型是:switch的參數(shù)不能為實(shí)型。上海華為的一道關(guān)于指針?lè)矫娴木幊填}intA[nSize],其中隱藏著若干0,其余非0整數(shù),寫(xiě)一個(gè)函數(shù)intFunc(int*A,intnSize),使A把0移至后面,非0整數(shù)移至數(shù)組前面并保持有序,返回值為原數(shù)據(jù)中第一個(gè)元素為0的下標(biāo)。(盡可能不使用輔助空間且考慮效率及異常問(wèn)題,注釋規(guī)范且給出設(shè)計(jì)思路)華為筆試題含答案[軟件工程題]寫(xiě)一個(gè)程序,要求功能:求出用1,2,5這三個(gè)數(shù)不同個(gè)數(shù)組合的和為100的組合個(gè)數(shù)。如:100個(gè)1是一個(gè)組合,5個(gè)1加19個(gè)5
5、是一個(gè)組合。。。。請(qǐng)用C++語(yǔ)言寫(xiě)。答案:最容易想到的算法是:設(shè)x是1的個(gè)數(shù),y是2的個(gè)數(shù),z是5的個(gè)數(shù),number是組合數(shù)注意到0<=x<=100,0<=y<=50,0<=z=20,所以可以編程為:82number=0;for(x=0;x<=100;x++)for(y=0;y<=50;y++)for(z=0;z<=20;z++)if((x+2*y+5*z)==100)number++;cout<6、純的編程問(wèn)題。我的解法如下:因?yàn)閤+2y+5z=100所以x+2y=100-5z,且z<=20x<=100y<=50所以(x+2y)<=100,且(x+5z)是偶數(shù)對(duì)z作循環(huán),求x的可能值如下:z=0,x=100,98,96,...0z=1,x=95,93,...,1z=2,x=90,88,...,0z=3,x=85,83,...,1z=4,x=80,78,...,0......z=19,x=5,3,1z=20,x=082因此,組合總數(shù)為100以?xún)?nèi)的偶數(shù)+95以?xún)?nèi)的奇數(shù)+90以?xún)?nèi)的偶數(shù)+...+5以?xún)?nèi)的奇數(shù)+1,即為:(51+48
7、)+(46+43)+(41+38)+(36+33)+(31+28)+(26+23)+(21+18)+(16+13)+(11+8)+(6+3)+1某個(gè)偶數(shù)m以?xún)?nèi)的偶數(shù)個(gè)數(shù)(包括0)可以表示為m/2+1=(m+2)/2某個(gè)奇數(shù)m以?xún)?nèi)的奇數(shù)個(gè)數(shù)也可以表示為(m+2)/2所以,求總的組合次數(shù)可以編程為:number=0;for(intm=0;m<=100;m+=5){number+=(m+2)/2;}cout<8、一些簡(jiǎn)單的數(shù)學(xué)分析這再一次證明了:計(jì)算機(jī)程序=數(shù)據(jù)結(jié)構(gòu)+算法,而且算法是程序的靈魂,對(duì)任何工程問(wèn)題,當(dāng)用軟件來(lái)實(shí)現(xiàn)時(shí),必須選取滿(mǎn)足當(dāng)前的資源限制,用戶(hù)需求限制,開(kāi)發(fā)時(shí)間限制等種種限制條件下的最優(yōu)算法。而絕不能一拿到手,就立刻用最容易想到的算法編出一