華為最新筆試題——編程題及答案(20210319221205)_第1頁(yè)
華為最新筆試題——編程題及答案(20210319221205)_第2頁(yè)
華為最新筆試題——編程題及答案(20210319221205)_第3頁(yè)
華為最新筆試題——編程題及答案(20210319221205)_第4頁(yè)
華為最新筆試題——編程題及答案(20210319221205)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、華為最新筆試題編程題及答案問題:輸入一個(gè)字符串,用指針求出字符串的長(zhǎng)度 答案:#i nclude int mai n()char str20, *p;in t le ngth=0;printf( Please in put a stri ng:”);gets(str);p=str;while(*p+)len gth+;printf( The length of string is %dn ”,length);return 0;問題:使用C語(yǔ)言實(shí)現(xiàn)字符串中子字符串的替換描述:編寫一個(gè)字符串替換函數(shù),如函數(shù)名為StrReplace(char* strSrc, char* strFind, char

2、* strReplace) ,strSrc 為原字符串,strFind 是待替換的字符 串,strReplace為替換字符串。舉個(gè)直觀的例子吧,如:“ ABCDEFGHIJKLMNOPQRSTUVW這個(gè)字符串,把其中 的“ RST替換為“ ggg”這個(gè)字符串,結(jié)果就變成了:ABCDEFGHIJKLMNOPQgggUVWXYZ答案一:#i nclude #include void StrReplace(char* strSrc, char* strFind, char* strReplace); #defi ne M 100;void mai n()char s=ABCDEFGHIJKLMNOP

3、QRSTUVWXYZ;char s1=RST;char s2=ggg;StrReplace(s,s1,s2);prin tf(%sn,s);void StrReplace(char* strSrc, char* strFind, char* strReplace) int i=0;int j;int n=strle n( strSrc);int k=strle n(strFin d);for(i=0;i n ;i+)if(*(strSrc+i)=*strFi nd)for(j=0;jk;j+)if(*(strSrc+i+j)=*(strFi nd+j)*(strSrc+i+j)=*(strRe

4、place+j);else con ti nue;答案二:#i nclude #defi ne MAX 100StrReplace(char *s, char *s1, char *s2) char *p;for(; *s; s+) for(p = s1; *p & *p != *s; p+);if(*p) *s = *(p - s1 + s2);int main()char sMAX;s是原字符串char s1MAX, s2MAX; /s1是要替換的s2是替換字符串puts(Please in put the stri ng for s:);scan f(%s, s);puts(Please

5、 in put the stri ng for s1:);scan f(%s, s1);puts(Please in put the stri ng for s2:);scan f(%s, s2);StrReplace(s, s1, s2);puts(The stri ng of s after displace is:);prin tf(%sn, s);return 0;答案三:#i nclude #i nclude #include #defi ne M 100void StrReplace(char* strSrc, char* strFind, char* strReplace);in

6、t main()char s=ABCDEFGHIJKLMNOPQRSTUVWXYZ;char s1=RST;char s2=gggg;StrReplace(s,s1,s2);prin tf(%sn,s);return 0;void StrReplace(char* strSrc, char* strFind, char* strReplace)while(*strSrc != 0)if(*strSrc = *strFi nd)if(strncmp(strSrc,strFi nd,strle n( strFi nd) = 0 )int i = strle n(strFi nd);int j =

7、strle n(strReplace);printf(i = %d,j = %dn,i,j);char *q = strSrc + i;prin tf(*q = %sn,q);while(*strSrc+ = *strReplace+) != 0);prin tf(strSrc - 1 = %sn,strSrc - 1);prin tf(*q = %sn,q);while(*strSrc+ = *q+) != 0);elsestrSrc+;elsestrSrc+;問題:編寫一個(gè)程序?qū)崿F(xiàn)功能:將字符串”Computer Secienee ”賦給一個(gè)字符數(shù)組,然后從第一個(gè)字母開始間隔的輸出該串,用

8、指針完成。答案:#i nclude #include int main()char str= ” Computer Science ”;int flag=1;char *p=str;while(*p)if ( flag )printf( %c ,*p);flag = (flag + 1) % 2; p+;printf( n ”);return 0;問題:使用C語(yǔ)言實(shí)現(xiàn)字符串中子字符串的替換描述:編寫一個(gè)字符串替換函數(shù),如函數(shù)名為StrReplace(char* strSrc, char* strFind, char* strReplace) ,strSrc 為原字符串,strFind 是待替換

9、的字符 串,strReplace為替換字符串。舉個(gè)直觀的例子吧,如:“ ABCDEFGHIJKLMNOPQRSTUVW這個(gè)字符串,把其中 的“ RST替換為“ ggg”這個(gè)字符串,結(jié)果就變成了:ABCDEFGHIJKLMNOPQgggUVWXYZ答案一:#i nclude #include void StrReplace(char* strSrc, char* strFind, char* strReplace); #defi ne M 100;void mai n()char s=ABCDEFGHIJKLMNOPQRSTUVWXYZ;char s1=RST;char s2=ggg;StrRe

10、place(s,s1,s2);prin tf(%sn,s);void StrReplace(char* strSrc, char* strFind, char* strReplace)int i=0;int j;int n=strle n( strSrc);int k=strle n(strFin d);for(i=0;i n ;i+) if(*(strSrc+i)=*strFi nd)for(j=0;jk;j+)if(*(strSrc+i+j)=*(strFi nd+j)*(strSrc+i+j)=*(strReplace+j);else con ti nue;答案二:#i nclude #

11、defi ne MAX 100StrReplace(char *s, char *s1, char *s2) char *p;for(; *s; s+) for(p = s1; *p & *p != *s; p+); if(*p) *s = *(p - s1 + s2); int main()是原字符串 是要替換的 是替換字符串char sMAX; /schar s1MAX, s2MAX; s1s2puts(Please in put the stri ng for s:); scan f(%s, s);puts(Please in put the stri ng for s1:);scan

12、f(%s, si);puts(Please in put the stri ng for s2:);scan f(%s, s2);StrReplace(s, s1, s2);puts(The stri ng of s after displace is:);prin tf(%sn, s);return 0;答案三:#i nclude #i nclude #include #defi ne M 100void StrReplace(char* strSrc, char* strFind, char* strReplace);int main()char s=ABCDEFGHIJKLMNOPQRS

13、TUVWXYZ;char s1=RST;char s2=gggg;StrReplace(s,s1,s2);prin tf(%sn,s);return 0;void StrReplace(char* strSrc, char* strFind, char* strReplace)while(*strSrc != 0)if(*strSrc = *strFi nd)if(strncmp(strSrc,strFi nd,strle n( strFi nd) = 0 )int i = strle n(strFi nd);int j = strle n(strReplace);printf(i = %d,

14、j = %dn,i,j);char *q = strSrc + i;prin tf(*q = %sn,q); while(*strSrc+ = *strReplace+) != 0);prin tf(strSrc - 1 = %sn,strSrc - 1);prin tf(*q = %sn,q);while(*strSrc+ = *q+) != 0);elsestrSrc+;elsestrSrc+;問題:編寫一個(gè)程序?qū)崿F(xiàn)功能:將兩個(gè)字符串合并為一個(gè)字符串并且輸出,用指針實(shí)現(xiàn)。char str120=“ Hello ” , str220=“World ” ;答案:#in clude int ma

15、i n()char str120=“ Hello ” , str220=“World ” ;char *p=str1, *q=str2;while( *p ) p+;while( *q )*p = *q;P+;q+;*p = 0 ;printf( “sn” , strl);return 0;問題:以下函數(shù)的功能是用遞歸的方法計(jì)算x的n階勒讓德多項(xiàng)式的值。已有調(diào)用語(yǔ)句p (n, x);編寫函數(shù)實(shí)現(xiàn)功能。遞歸公式如下:1(n0)Px(x) x(n1)(2n 1)xPm(x) (n 1)Pn 2(x)/n (n 1)答案:#i nclude float p(i nt x,i nt n)float t

16、,t1,t2;if(n= =0) return 1;else if(n= =1) return x;elset1=(2* n-1)*x*p(x,( n-1);t2=( n-1)*p(x,( n-2);t=(t1-t2)/n;return t;int mai n()int x,n;prin tf(“ in put two int (x and n):” );scanf( “d%d,&x,&n);printf(“%.2fn ” ,p(x,n);return 0;問題:給主函數(shù)傳遞參數(shù)實(shí)現(xiàn)echo功能:答案:#in cldue int main (i nt argc,char *argv) int

17、i=1;while( i argc )printf(“%s ”,argvi);i+;printf( “n ” );return 0;華為軟件測(cè)試工程師面試題來(lái)源:義烏人才網(wǎng)2011-03-02 點(diǎn)擊次數(shù):758次Q1:請(qǐng)你分別劃劃OSI的七層網(wǎng)絡(luò)結(jié)構(gòu)圖,和 TCP/IP的五層結(jié)構(gòu)圖?答:七層結(jié)構(gòu)從上到下依次是:7應(yīng)用層;6表示層;5會(huì)話層;4傳輸層;3網(wǎng) 絡(luò)層;2數(shù)據(jù)鏈路層;1物理層五層結(jié)構(gòu)是5應(yīng)用層;4運(yùn)輸層;3網(wǎng)絡(luò)層;2鏈路層;1物理層。Q2:請(qǐng)你詳細(xì)的解釋一下IP協(xié)議的定義,在哪個(gè)層上面,主要有什么作用 ?TCP 與UDP呢?答:UDP TCP在傳輸層,IP在網(wǎng)絡(luò)層,TCP/IP是英文T

18、ransmission Control Protocol/Internet Protocol的縮寫,意思是傳輸控制協(xié)議/網(wǎng)際協(xié)議。TCP/IP 協(xié)議組之所以流行,部分原因是因?yàn)樗梢杂迷诟鞣N各樣的信道和底層協(xié)議(例如T1和X.25、以太網(wǎng)以及RS-232串行接口)之上。確切地說(shuō),TCP/IP協(xié)議是 一組包括 TCP協(xié)議和 IP 協(xié)議,UDP(User Datagram Protocol) 協(xié)議、 ICMP(I nternet Control Message Protocol)協(xié)議和其他一些協(xié)議的協(xié)議組。TCP/IP協(xié)議并不完全符合0SI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模 型,是一種通信

19、協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該 模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)路層、傳輸層、話路層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了 4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來(lái)完成自己的需求。這4層分別為:應(yīng)用層:應(yīng)用程序間溝通的層,如簡(jiǎn)單電子郵件傳輸(SMTP)文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet)等。傳輸層:在此層中,它提 供了節(jié)點(diǎn)間的數(shù)據(jù)傳送服務(wù),如傳輸控制協(xié)議 (TCP)、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)等, TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)絈3:請(qǐng)問交換機(jī)和路由器分別的實(shí)現(xiàn)原理是什

20、么?分別在哪個(gè)層次上面實(shí)現(xiàn)的?一般意義上說(shuō)交換機(jī)是工作在數(shù)據(jù)鏈路層。但隨著科技的發(fā)展,現(xiàn)在有了三層 交換機(jī),三層交換機(jī)已經(jīng)擴(kuò)展到了網(wǎng)絡(luò)層。也就是說(shuō):它等于 數(shù)據(jù)鏈路層+部 分網(wǎng)絡(luò)層。交換機(jī)中傳的是幀。通過(guò)存儲(chǔ)轉(zhuǎn)發(fā)來(lái)實(shí)現(xiàn)的。路由器是工作在網(wǎng)絡(luò) 層。路由器中傳的是IP數(shù)據(jù)報(bào)。主要是選址和路由。Q4:請(qǐng)問C+的類和C里面的STRUCT!什么區(qū)別?答:除關(guān)鍵字不同外(class,struct) 的唯一區(qū)別是,結(jié)構(gòu)在默認(rèn)情況下的成員是 公共(public)的,而類在默認(rèn)情況下的成員是私有(private)的。在C+中,結(jié)構(gòu) 是特殊的類。class是從struct發(fā)展而來(lái)的。之所以將struct和clas

21、s都保留, 是因?yàn)椋?、提出class是為了強(qiáng)調(diào)一種概念。2、保留struct是為了照顧到大多數(shù)人的習(xí)慣。struct和class是有區(qū)別的。struct保證成員按照聲明順序在 內(nèi)存中存儲(chǔ)。class不保證等等而它們都可以繼承,實(shí)現(xiàn)多態(tài)等。但也有少許區(qū) 別。比如:struct A ; class B: A ; /private 繼承 struct C: B ; /public 繼承這是由于class默認(rèn)是private , struct 默認(rèn)是public。一般說(shuō)來(lái),struct 和class可以換用(當(dāng)然要注意一些語(yǔ)法問題)。而struct更適合看成是一個(gè)數(shù) 據(jù)結(jié)構(gòu)的實(shí)現(xiàn)體,class更適合

22、看成是一個(gè)對(duì)象的實(shí)現(xiàn)體,對(duì)私有成員進(jìn)行保護(hù), 還提供與外界的接口。從習(xí)慣上更喜歡用class o05:請(qǐng)講一講析構(gòu)函數(shù)和虛函數(shù)的用法和作用?答:置于是析構(gòu)函數(shù);析構(gòu)函數(shù)因使用符號(hào)(邏輯非運(yùn)算符),表示它為 膩構(gòu)造函數(shù),加上類名稱來(lái)定義。;析構(gòu)函數(shù)也是特殊的類成員函數(shù),它沒有 返回類型,沒有參數(shù),不能隨意調(diào)用,也沒有重載,只有在類對(duì)象的生命期結(jié) 束的時(shí)候,由系統(tǒng)自動(dòng)調(diào)用。有適放內(nèi)存空間的做用!虛函數(shù)是C+多態(tài)的一種表現(xiàn)例如:子類繼承了父類的一個(gè)函數(shù)(方法),而我們把父類的指針指向子類, 則必須把父類的該函數(shù)(方法)設(shè)為virturl(虛函數(shù))。使用虛函數(shù),我們可以靈活的進(jìn)行動(dòng)態(tài)綁定,當(dāng)然是以一定的開銷為代價(jià)。如果父類的函數(shù)(方法)根本沒有必要或者無(wú)法實(shí)現(xiàn),完全要依賴子類去實(shí)現(xiàn)的話,可以把此函數(shù)(方法)設(shè)為virturl函數(shù)名=0我們把這樣的函數(shù)(方法)稱為純虛函數(shù)。如果一個(gè)類包含了純虛函數(shù),稱此類為抽象類Q6:全局變量和局部變量有什么區(qū)別?實(shí)怎么實(shí)現(xiàn)的?操作系統(tǒng)和編譯器是怎么 知道的?

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論