華為慧通筆試題_第1頁(yè)
華為慧通筆試題_第2頁(yè)
華為慧通筆試題_第3頁(yè)
華為慧通筆試題_第4頁(yè)
華為慧通筆試題_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

華為慧通筆試題

1寫(xiě)出程序把一個(gè)鏈表中的接點(diǎn)挨次倒排

typedefstructlinknode

{

intdata;

structlinknode*next;

}node;

//將一個(gè)鏈表逆置

node*reverse(node*head)

{

node*p,*q,*r;

p=head;

q=p->next;

while(q!=NULL)

{

r=q->next;

q->next=p;

p=q;

q=r;

}

head->next=NULL;

head=p;

returnhead;

}

2寫(xiě)出程序刪除鏈表中的全部接點(diǎn)

voiddel_all(node*head)

{

node*p;

while(head!=NULL)

{

p=head->next;

free(head);

head=p;

}

coutsrc){

282

d=(char*)dst+len–1;

283

s=(char*)src+len–1;

284

while(len>=4){

285

*d–=*s–;

286

*d–=*s–;

287

*d–=*s–;

288

*d–=*s–;

289

len-=4;

290

}

291

while(len–){

292

*d–=*s–;

293

}

294

}elseif(dstiCount)

iCount=iTemp,cpDest=cpTemp;

if(!*cpSource)

break;

}

++cpSource;

}

returncpDest;

}

2。請(qǐng)編寫(xiě)一個(gè)C函數(shù),該函數(shù)在給定的內(nèi)存區(qū)域搜尋給定的字符,并返回該字符所在位置索引值。

intsearch(char*cpSource,intn,charch)

{

inti;

for(i=0;i0)

ret=1;

return(ret);

}

3,求1000!的未尾有幾個(gè)0(用素?cái)?shù)相乘的方法來(lái)做,如72=2*2*2*3*3);

求出1->1000里,能被5整除的數(shù)的個(gè)數(shù)n1,能被25整除的數(shù)的個(gè)數(shù)n2,能被125整除的數(shù)的個(gè)數(shù)n3,

能被625整除的數(shù)的個(gè)數(shù)n4.

1000!末尾的零的個(gè)數(shù)=n1+n2+n3+n4;

#includemaxlen)

{

maxlen=count;

*r1=s1+i;

*r2=s2+j;

}

}

}

}

3.編程實(shí)現(xiàn):把十進(jìn)制數(shù)(long型)分別以二進(jìn)制和十六進(jìn)制形式輸出,不能使用printf系列庫(kù)函數(shù)

char*test3(longnum){

char*buffer=(char*)malloc(11);

buffer=’0′;

buffer=‘x’;

buffer=‘\0′;

char*temp=buffer+2;

for(inti=0;ik-1)s=a++;i–;j++;

while(i>k)

s=a++;i++;j++;

}

for(i=0;ix;i–)

//底部

matrix=start++;

for(j=y+n-1;j>y;j–)

//左部

matrix=start++;

SetMatrix(x+1,y+1,start,n-2);

//遞歸

}

voidmain(){

inti,j;

intn;

scanf(“%d”,

SetMatrix(0,0,1,n);

//打印螺旋矩陣

for(i=0;i

#include

intJosephu(intn,intm)

{

intflag,i,j=0;

int*arr=(int*)malloc(n*sizeof(int));

for(i=0;i

#include

typedefstructNode

{

intindex;

structNode*next;

}JosephuNode;

intJosephu(intn,intm)

{

inti,j;

JosephuNode*head,*tail;

head=tail=(JosephuNode*)malloc(sizeof(JosephuNode));

for(i=1;iindex=i;

tail->next=(JosephuNode*)malloc(sizeof(JosephuNode));

tail=tail->next;

}

tail->index=i;

tail->next=head;

for(i=1;tail!=head;++i)

{

for(j=1;jnext;

}

tail->next=head->next;

printf(“第%4d個(gè)出局的人是:%4d號(hào)\n”,i,head->index);

free(head);

head=tail->next;

}

i=head->index;

free(head);

returni;

}

intmain()

{

intn,m;

scanf(“%d%d”,

printf(“最終成功的是%d號(hào)!\n”,Josephu(n,m));

system(“pause”);

return0;

}

已知strcpy函數(shù)的原型是:

char*strcpy(char*strDest,constchar*strSrc);

1.不調(diào)用庫(kù)函數(shù),實(shí)現(xiàn)strcpy函數(shù)。

2.解釋為什么要返回char*。

解說(shuō):

1.strcpy的實(shí)現(xiàn)代碼

char*strcpy(char*strDest,constchar*strSrc)

{

if((strDest==NULL)||(strSrc==NULL))file://

throw“Invalidargument(s)”;//

char*strDestCopy=strDest;file://

while((*strDest++=*strSrc++)!=’\0′);file://

returnstrDestCopy;

}

錯(cuò)誤的做法:

(A)不檢查指針的有效性,說(shuō)明答題者不注意代碼的健壯性。

(B)檢查指針的有效性時(shí)使用((!strDest)||(!strSrc))或(!(strDest,說(shuō)明答題者根本不知道返回值的用途,并且他對(duì)內(nèi)存泄漏也沒(méi)有警惕心。從函數(shù)中返回函數(shù)體內(nèi)安排的內(nèi)存是非常危急的做法,他把釋放內(nèi)存的義務(wù)拋給不知情的調(diào)用者,絕大多數(shù)狀況下,調(diào)用者不會(huì)釋放內(nèi)存,這導(dǎo)致內(nèi)存泄漏。

(B)return0;,說(shuō)明答題者沒(méi)有把握特別機(jī)制。調(diào)用者有可能遺忘檢查返回值,調(diào)用者還可能無(wú)法檢查返回值(見(jiàn)后面的鏈?zhǔn)奖磉_(dá)式)。妄想讓返回值肩負(fù)返回正確值和特別值的雙重功能,其結(jié)果往往是兩種功能都失效。應(yīng)當(dāng)以拋出特別來(lái)代替返回值,這樣可以減輕調(diào)用者的負(fù)擔(dān)、使錯(cuò)誤不會(huì)被忽視、增加程序的可維護(hù)性。

(A)遺忘保存原始的strD

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論