2021年度新版試題和資料深圳IT行業(yè)C語言筆試_第1頁
2021年度新版試題和資料深圳IT行業(yè)C語言筆試_第2頁
2021年度新版試題和資料深圳IT行業(yè)C語言筆試_第3頁
2021年度新版試題和資料深圳IT行業(yè)C語言筆試_第4頁
2021年度新版試題和資料深圳IT行業(yè)C語言筆試_第5頁
已閱讀5頁,還剩133頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、請(qǐng)定義一種宏,比較兩個(gè)數(shù)a、b大小,不能使用不不大于、不大于、if語句

2、如何輸出源文獻(xiàn)標(biāo)題和當(dāng)前執(zhí)行行行數(shù)

3、兩個(gè)數(shù)相乘,小數(shù)點(diǎn)后位數(shù)沒有限制,請(qǐng)寫一種高精度算法

4、寫一種病毒

5、有A、B、C、D四個(gè)人,要在夜里過一座橋。她們通過這座橋分別需要耗時(shí)1、2、5、

10分鐘,只有一支手電,并且同步最多只能兩個(gè)人一起過橋。請(qǐng)問,如何安排,可以在17

分鐘內(nèi)這四個(gè)人都過橋?

1.請(qǐng)定義一種宏,比較兩個(gè)數(shù)a、b大小,不能使用不不大于、不大于、if語句

//這樣轉(zhuǎn)向定義應(yīng)當(dāng)不算違規(guī)吧!A_A

#defineCmp(x,y)compare(x,y)

intcompare(inta,intb)

(

aA=(l?31);bA=(l?31);

inti=31;

while((iA-l)&&!<(a&(l?i))A(b&(l?i))))i-;

return(iA-l)?(((a?i)&l)?l:-l):0:

)

#defineCOMPARES,b)((a)-(b))〃<0:a<b=0:a==b>0:a>b

2.如何輸出源文獻(xiàn)標(biāo)題和當(dāng)前執(zhí)行行行數(shù)

cout?"Filename"?_FILE_?"Line"?_LINE_?endl;

3.兩個(gè)數(shù)相乘,小數(shù)點(diǎn)后位數(shù)沒有限制,請(qǐng)寫一種高精度算法

算法提示:

輸入stringa,stringb;計(jì)算stringc=a*b;返回c;

1,紀(jì)錄小數(shù)點(diǎn)在a,b中位置11,12,則需要小數(shù)點(diǎn)后移動(dòng)位置數(shù)為

l=length(a)+length(b)-l1-12-2;

2,去掉a,b中小數(shù)點(diǎn),(a,b小數(shù)點(diǎn)后移,使a,b變?yōu)檎麛?shù))

3,計(jì)算c=a*b;(同整數(shù)大數(shù)相乘算法)

4,輸出c,(注旨在輸出倒數(shù)第1個(gè)數(shù)時(shí),輸出一種小數(shù)點(diǎn)。若是輸出數(shù)少于1個(gè),就補(bǔ)0)

du51(郁郁思揚(yáng))答案:

變?yōu)檎麛?shù)求就行了.輸入時(shí)候記一下,小數(shù)點(diǎn)位置..輸出再做點(diǎn)文章就行了.

下面是大整數(shù)運(yùn)算.

#include<iostream>

usingnamespacestd;

#defineMAX10000

structNode{

intdata;

Node*next;

);

voidoutput(Node*head)

(

if(!head->next&&!head->data)return;

output(head->next);

cout?head->data;

voidMul(char*a,char*b,intpos)

char*ap=a,*bp=b;

Node*head=0;

head=newNode;head->data=0,head->next=0;//頭

Node*p,*q=head,*pl;

inttemp=O,templ,bbit;

while(*bp)〃若乘數(shù)不為空,繼續(xù).

(

p=q->next;pl=q;

bbit=*bp-48;//把當(dāng)前位轉(zhuǎn)為整型

while(*ap||temp)//若被乘數(shù)不空,繼續(xù)

(

if(!p)〃若要操作結(jié)點(diǎn)為空,申請(qǐng)之

(

p=newNode;

p->data=0;

p->next=0;

pl->next=p;

)

if(*ap==O)temp1=temp;

else{temp1=(p1->data)+(*ap-48)*bbit+temp;ap++:}

pl->daUi=templ%10;〃留當(dāng)前位

temp=templ/10;//進(jìn)位以int形式留下.

pl=p;p=p->next;〃被乘數(shù)到下一位

)

ap=a;bp++;q=q->next;//q進(jìn)下一位

p=head;

output(p);〃顯示

cout?endl;

while(head)〃釋放空間

(

p=head->next;

deletehead;

head=p;

)

)

intmain()

(

cout?n請(qǐng)輸入兩個(gè)數(shù)"<<endl;

chartestl[MAX],test2[MAX];

cin.getline(test1,MAX/\n*);

cin.getline(test2,MAX/\n*);

Mul(strrev(test1),strrev(test2));

system("PAUSE");

return0;

)

上面大整數(shù)已經(jīng)寫了,你加幾種東西就行了.

#include<iostream>

usingnamespacestd;

#defineMAX10000

structNode{

intdata;

Node*next;

};

voidoutput(Node*head,intpos)

(

if(!head->next&&!head->data)return;

output(head->next,pos-l);

cout?head->data;

if(!pos)cout?M.";

)

voidMul(char*a,char*b,intpos)

(

char*ap=a,*bp=b;

Node*head=0;

head=newNode;head->data=0,head->next=0;〃頭

Node*p,*q=head,*p1;

inttemp=O,temp1,bbit;

while(*bp)〃若乘數(shù)不為空,繼續(xù).

(

p=q->next;pl=q;

bbit=*bp-48;//把當(dāng)前位轉(zhuǎn)為整型

while(*ap||temp)〃若被乘數(shù)不空,繼續(xù)

if(!p)〃若要操作結(jié)點(diǎn)為空,申請(qǐng)之

p=newNode;

p->data=0;

p->next=0;

pl->next=p;

)

if(*ap==O)temp1=temp;

else{temp1=(p1->data)+(*ap-48)*bbit+temp;ap++;

p1->data=tempI%10;〃留當(dāng)前位

temp=templ/10;〃進(jìn)位以int形式留下.

pl=p;p=p->next;〃被乘數(shù)到下一位

)

ap=a;bp++;q=q->next;//q進(jìn)下一位

)

p=head;

output(p,pos);〃顯示

cout?endl;

while(head)〃釋放空間

(

p=head->next;

deletehead;

head=p;

)

)

intmain()

cout<<”請(qǐng)輸入兩個(gè)數(shù)"<<endl;

chartestl[MAX],test2[MAX],*p;

intpos=0;

cin.getline(test1,MAX/Vn1);

cin.getline(test2,MAX,'\n,);

if(p=strchr(testl/.*))

(

pos+=strlen(test1)-(p-test1)-1;

do

(

p++;

*(p-l)=*p;

}while(*p);

)

if(p=strchr(test2,7))

(

pos+=strlen(test2)-(p-test2)-l;

do

(

p++;

*(p-l)=*p;

}while(*p);

)

Mul(strrev(test1),strrev(test2),pos);

system("PAUSE”);

return0;

)

4.寫一種病毒

cout?H一種病毒"<vendl:

(開玩笑,沒搞過,八_八)

5.讓你在個(gè)浮點(diǎn)數(shù)中找出最大10000個(gè),規(guī)定期間復(fù)雜度優(yōu)。

〃本算法使用快排,O(n*lg(n))

〃最低可以找到線性算法,使用預(yù)先區(qū)域記錄劃分!類試于構(gòu)造QuadTrees!寫起來代碼會(huì)

長(zhǎng)些!

#include<stdio.h>

#include<stdlib.h>

#defineMax

inta[Max+10J;

intcmp(constvoid*a,constvoid*b)

(

int*x=(int*)a;

int*y=(int*)b;

return*x-*y;

intmain()

intn=0;

while(scanf(',%d',,&a[n])==l)n++;

qsort(a,n,4,cmp);

for(inti=0;i<3;i++)printf(M%dM,a);

return1;

)

5、有A、B、C、D四個(gè)人,要在夜里過一座橋。她們通過這座橋分別需要耗時(shí)1、2、5、

10分鐘,只有一支手電,并且同步最多只能兩個(gè)人一起過橋。請(qǐng)問,如何安排,可以在17

分鐘內(nèi)這四個(gè)人都過橋?

Solution:核心是時(shí)間最長(zhǎng)兩個(gè)人必要同步過橋

TheFirstTime:A⑴和B(2)過橋,A⑴返回Cost:1+2

TheSecondTime:C(5)和D(10)過橋,B⑵返回Cost:10+2

TheThirdTimeA⑴和B(2)過橋Cost:2

TotalTimeCost:(1+2)+(10+2)+2=17minutes

1.實(shí)現(xiàn)雙向鏈表刪除一種節(jié)點(diǎn)P,在節(jié)點(diǎn)P后插入一種節(jié)點(diǎn),寫出這兩個(gè)函數(shù);

答:

〃假設(shè)線性表雙向鏈表存儲(chǔ)構(gòu)造

typedefstructDulNode{

structDulNode*prior;〃前驅(qū)指針

ElemTypedata;〃數(shù)據(jù)

structDulNode*next;〃后繼指針

}DulNode,*DuLinkList;

〃刪除操作

StatusListDelete_DuL(DuLinkList&L,inti,ElemType&e)

(

if(!(p=GetElemP_DuL(L,i)))〃此處得到i位置節(jié)點(diǎn)指針,如果有需要也得寫出詳細(xì)函數(shù)實(shí)

現(xiàn)

returnERROR;

e=p->data;

p->prior->next=p->next;

p->next->prior=p->pror;

free(p);

returnOK;

)

〃插入操作

StatusListInsert_DuL(DuLinkList&L,inti,ElemType&e)

(

if(!(p=GetElemP_DuL(L,i)))

returnERROR;

if(!(s=(DuLinkList)malloc(sizeof(DuLNode))))

returnERROR;

s->data=e;

s->prior=p->prior;

p->prior->next=s;

s->next=p;

p->prior=s;

returnOK;

)

2.寫一種函數(shù),將其中\(zhòng)t都轉(zhuǎn)換成4個(gè)空格。

答:

該函數(shù)命名為convert,參數(shù)意義為:

*strDest目字符串,*strSrc源字符串,length源字符串長(zhǎng)度

函數(shù)實(shí)現(xiàn)為:

char*convert(char*strDest,constchar*strSrc,intlength)

(

char*cp=strDest;

inti=0;

while(*strSrc&&i<length)//跳出條件

(

if(*strSrc=='\t')〃將\t轉(zhuǎn)換成4個(gè)空格

(

for(intj=0;j<4;j++)

*cp++='

)

else〃否則直接拷貝

*cp++=*strSrc;

strSrc++;

i++;

returnstrDest;

3.Windows程序入口是哪里?寫出Windows消息機(jī)制流程。

答:

Windows程序入口是WinMain函數(shù)

消息機(jī)制:系統(tǒng)將會(huì)維護(hù)一種或各種消息隊(duì)列,所有產(chǎn)生消息都會(huì)被放入或是插入隊(duì)列中。

系統(tǒng)會(huì)在隊(duì)列中取出每一條消息,依照消息接受句柄而將該消息發(fā)送給擁有該窗口程序消息

循環(huán)。每一種運(yùn)營(yíng)程序均有自己消息循環(huán),在循環(huán)中得到屬于自己消息并依照接受窗口句柄

調(diào)用相應(yīng)窗口過程.而在沒有消息時(shí)消息循環(huán)就將控制權(quán)交給系統(tǒng)。

4.如何定義和實(shí)現(xiàn)一種類成員函數(shù)為回調(diào)函數(shù)?

答:

所謂回調(diào)函數(shù),就是預(yù)先在系統(tǒng)對(duì)函數(shù)進(jìn)行注冊(cè),讓系統(tǒng)懂得這個(gè)函數(shù)存在,后來,當(dāng)某個(gè)

事件發(fā)生時(shí),再調(diào)用這個(gè)函數(shù)對(duì)事件進(jìn)行響應(yīng)。

定義一種類成員函數(shù)時(shí)在該函數(shù)前加CALLBACK即將其定義為回調(diào)函數(shù),函數(shù)實(shí)現(xiàn)和普通

成員函數(shù)沒有區(qū)別

5.C++里面是不是所有動(dòng)作都是main()引起?如果不是,請(qǐng)舉例。

答:不是,例如中斷引起中斷解決不是直接由main。引起,而是由外部事件引起。

6.C++里面如何聲明constvoidf(void)函數(shù)為C程序中庫(kù)函數(shù)?

答:在該函數(shù)前添加extern“C”聲明

7.下列哪兩個(gè)是等同

intb;

Aconstint*a=&b;

Bconst*inta=&b;

Cconstint*consta=&b;

Dintconst*consta=&b;

答:

各式表達(dá)意思分別為:

Aconstint*a=&b;//*a是const,但指針a可變

Bconst*inta=&b;//a是const,但*a可變

Cconstint*consta=&b;//a和*a都是const,常量和指針值都不能變化

Dintconst*consta=&b;//a和*a都是const,常量和指針值都不能變化

因而C,D兩者是相似。

總結(jié)個(gè)技巧:如果const位于星號(hào)左側(cè),則const就是用來修飾指針?biāo)赶蜃兞?,即指針?/p>

向?yàn)槌A?;如果const位于星號(hào)右側(cè),const就是修飾指針自身,即指針自身是常量。

8.內(nèi)聯(lián)函數(shù)在編譯時(shí)與否做參數(shù)類型檢查?

答:做類型檢查,由于內(nèi)聯(lián)函數(shù)就是在程序編譯時(shí),編譯器將程序中浮現(xiàn)內(nèi)聯(lián)函數(shù)調(diào)用表達(dá)

式用內(nèi)聯(lián)函數(shù)函數(shù)體來代替。

1.寫出判斷ABCD四個(gè)表達(dá)式與否對(duì)的,若對(duì)的,寫出通過表達(dá)式中a值(3分)

inta=4;

(A)a+=(a++);(B)a+=(++a);(C)(a++)+=a;(D)(++a)+=(a++);

a=?

答:C錯(cuò)誤,左側(cè)不是一種有效變量,不能賦值,可改為(++a)+=a;

改后答案依次為9,10,10,11

2.某32位系統(tǒng)下,C++程序,請(qǐng)計(jì)算sizeof值(5分).

charstr[]=".com"

char*p=str;

intn=10;

請(qǐng)計(jì)算

sizeof(str)=?(1)

sizeof(p)=?(2)

sizeof(n)=?(3)

voidFoo(charstr[100J){

請(qǐng)計(jì)算

sizeof(str)=?(4)

)

void*p=malloc(100);

請(qǐng)計(jì)算

sizeof(p)=?(5)

答:(1)17(2)4(3)4(4)4(5)4

3.回答下面問題.(4分)

(1).頭文獻(xiàn)中ifndef/define/endif干什么用?預(yù)解決

答:防止頭文獻(xiàn)被重復(fù)引用

⑵.#include和#include"filename.h"有什么區(qū)別?

答:前者用來包括開發(fā)環(huán)境提供庫(kù)頭文獻(xiàn),后者用來包括自己編寫頭文獻(xiàn)。

⑶.在C++程序中調(diào)用被C編譯器編譯后函數(shù),為什么要加extern“C”聲明?

答:函數(shù)和變量被C++編譯后在符號(hào)庫(kù)中名字與C語言不同,被extern”C”修飾變量和函數(shù)

是按照C語言方式編譯和連接。由于編譯后名字不同,C++程序不能直接調(diào)用C函數(shù)。C++

提供了一種C連接互換指定符號(hào)extern“C”來解決這個(gè)問題。

(4).switch。中不容許數(shù)據(jù)類型是?

答:實(shí)型

4.回答下面問題(6分)

(1).

VoidGetMemory(char**p,intnum){

*p=(char*)malloc(num);

)

voidTest(void){

char*str=NULL;

GetMemory(&str,100);

strcpy(str,"hello");

printf(str);

)

請(qǐng)問運(yùn)營(yíng)Test函數(shù)會(huì)有什么樣成果?

答:輸出“hello”

(2).

voidTest(void){

char*str=(char*)malloc(lOO);

strcpy(str,“hello");

free(str);

if(str!=NULL){

strcpy(str,"world");

printf(str);

請(qǐng)問運(yùn)營(yíng)Test函數(shù)會(huì)有什么樣成果?

答:輸出“world",由于free(str)后并未變化str所指內(nèi)存內(nèi)容。

(3).

char*GetMemory(void){

charp[]=''helloworld";

returnp;

)

voidTest(void){

char*str=NULL;

str=GetMemoryO;

printf(str);

)

請(qǐng)問運(yùn)營(yíng)Test函數(shù)會(huì)有什么樣成果?

答:無效指針,輸出不擬定

5.編寫strcat函數(shù)(6分)

已知strcat函數(shù)原型是char*strcat(char*strDest,constchar*strSrc);

其中strDest是目字符串,strSrc是源字符串。

(1)不調(diào)用C++/C字符串庫(kù)函數(shù),請(qǐng)編寫函數(shù)strcat

答:

VC源碼:

char*_cdeclstrcat(char*dst,constchar*src)

char*cp=dst;

while(*cp)

/*findendofdst*/

while(*cp++=*src++);/*Copysrctoendofdst*/

return(dst);/*returndst*/

(2)strcat能把strSrc內(nèi)容連接到strDest,為什么還要char*類型返回值?

答:以便賦值給其她變量

6.MFC中CString是類型安全類么?

答:不是,其他數(shù)據(jù)類型轉(zhuǎn)換到CString可以使用CString成員函數(shù)Format來轉(zhuǎn)換

7.C++中為什么用模板類。

答:(1)可用來創(chuàng)立動(dòng)態(tài)增長(zhǎng)和減小數(shù)據(jù)構(gòu)造

(2)它是類型無關(guān),因而具備很高可復(fù)用性。

(3)它在編譯時(shí)而不是運(yùn)營(yíng)時(shí)檢查數(shù)據(jù)類型,保證了類型安全

(4)它是平臺(tái)無關(guān),可移植性

(5)可用于基本數(shù)據(jù)類型

S.CSingleLock是干什么。

答:同步各種線程對(duì)一種數(shù)據(jù)類同步訪問

9.NEWTEXTMETRIC是什么。

答:物理字體構(gòu)造,用來設(shè)立字體高寬敞小

10.程序什么時(shí)候應(yīng)當(dāng)使用線程,什么時(shí)候單線程效率高。

答:1.耗時(shí)操作使用線程,提高應(yīng)用程序響應(yīng)

2.并行操作時(shí)使用線程,如C/S架構(gòu)服務(wù)器端并發(fā)線程響應(yīng)顧客祈求。

3.多CPU系統(tǒng)中,使用線程提高CPU運(yùn)用率

4.改進(jìn)程序構(gòu)造。一種既長(zhǎng)又復(fù)雜進(jìn)程可以考慮分為各種線程,成為幾種獨(dú)立或半獨(dú)立運(yùn)

營(yíng)某些,這樣程序會(huì)利于理解和修改。

其她狀況都使用單線程。

11.Windows是內(nèi)核級(jí)線程么。

答:見下一題

12.Linux有內(nèi)核級(jí)線程么。

答:線程普通被定義為一種進(jìn)程中代碼不同執(zhí)行路線。從實(shí)現(xiàn)方式上劃分,線程有兩種類型:

“顧客級(jí)線程”和“內(nèi)核級(jí)線程”。顧客線程指不需要內(nèi)核支持而在顧客程序中實(shí)現(xiàn)線程,

其不依賴于操作系統(tǒng)核心,應(yīng)用進(jìn)程運(yùn)用線程庫(kù)提供創(chuàng)立、同步、調(diào)度和管理線程函數(shù)來控

制顧客線程。這種線程甚至在象DOS這樣操作系統(tǒng)中也可實(shí)現(xiàn),但線程調(diào)度需要顧客程序

完畢,這有些類似Windows3.x協(xié)作式多任務(wù)。此外一種則需要內(nèi)核參加,由內(nèi)核完畢線

程調(diào)度。其依賴于操作系統(tǒng)核心,由內(nèi)核內(nèi)部需求進(jìn)行創(chuàng)立和撤銷,這兩種模型各有其好處

和缺陷。顧客線程不需要額外內(nèi)核開支,并且顧客態(tài)線程實(shí)現(xiàn)方式可以被定制或修改以適應(yīng)

特殊應(yīng)用規(guī)定,但是當(dāng)一種線程因I/O而處在等待狀態(tài)時(shí),整個(gè)進(jìn)程就會(huì)被調(diào)度程序切換

為等待狀態(tài),其她線程得不到運(yùn)營(yíng)機(jī)會(huì);而內(nèi)核線程則沒有各個(gè)限制,有助于發(fā)揮多解決器

并發(fā)優(yōu)勢(shì),但卻占用了更多系統(tǒng)開支。

WindowsNT和OS/2支持內(nèi)核線程。Linux支持內(nèi)核級(jí)多線程

13.C++中什么數(shù)據(jù)分派在?;蚨阎?,New分派數(shù)據(jù)是在近堆還是遠(yuǎn)堆中?

答:棧:存儲(chǔ)局部變量,函數(shù)調(diào)用參數(shù),函數(shù)返回值,函數(shù)返回地址。由系統(tǒng)管理

堆:程序運(yùn)營(yíng)時(shí)動(dòng)態(tài)申請(qǐng),new和malloc申請(qǐng)內(nèi)存就在堆上

近堆還是遠(yuǎn)堆不是很清晰。

14.使用線程是如何防止浮現(xiàn)大波峰。

答:意思是如何防止同步產(chǎn)生大量線程,辦法是使用線程池,線程池具備可以同步提高調(diào)度

效率和限制資源使用好處,線程池中線程達(dá)到最大數(shù)時(shí),其她線程就會(huì)排隊(duì)等待。

15函數(shù)模板與類模板有什么區(qū)別?

答:函數(shù)模板實(shí)例化是由編譯程序在解決函數(shù)調(diào)用時(shí)自動(dòng)完畢,而類模板實(shí)例化必要由程序

員在程序中顯式地指定。

16普通數(shù)據(jù)庫(kù)若浮現(xiàn)日記滿了,會(huì)浮現(xiàn)什么狀況,與否還能使用?

答:只能執(zhí)行查詢等讀操作,不能執(zhí)行更改,備份等寫操作,因素是任何寫操作都要記錄日

記。也就是說基本上處在不能使用狀態(tài)。

17SQLServer與否支持行級(jí)鎖,有什么好處?

答:支持,設(shè)立封鎖機(jī)制重要是為了對(duì)并發(fā)操作進(jìn)行控制,對(duì)干擾進(jìn)行封鎖,保證數(shù)據(jù)一致

性和精確性,行級(jí)封鎖保證在顧客獲得被更新行到該行進(jìn)行更新這段時(shí)間內(nèi)不被其他顧客所

修改。因而行級(jí)鎖即可保證數(shù)據(jù)一致性又能提高數(shù)據(jù)操作迸發(fā)性。

18如果數(shù)據(jù)庫(kù)滿了會(huì)浮現(xiàn)什么狀況,與否還能使用?

答:見16

19關(guān)于內(nèi)存對(duì)齊問題以及sizof()輸出

答:編譯器自動(dòng)對(duì)齊因素:為了提高程序性能,數(shù)據(jù)構(gòu)造(特別是棧)應(yīng)當(dāng)盡量地在自然邊

界上對(duì)齊。因素在于,為了訪問未對(duì)齊內(nèi)存,解決器需要作兩次內(nèi)存訪問;然而,對(duì)齊內(nèi)存

訪問僅需要一次訪問。

20inti=10,j=10,k=3;k*=i+j;k最后值是?

答:60,此題考察優(yōu)先級(jí),實(shí)際寫成:k*=(i+j);,賦值運(yùn)算符優(yōu)先級(jí)最低

21.對(duì)數(shù)據(jù)庫(kù)一張表進(jìn)行操作,同步要對(duì)另一張表進(jìn)行操作,如何實(shí)現(xiàn)?

答:將操作各種表操作放入到事務(wù)中進(jìn)行解決

22.TCP/IP建立連接過程?(3-wayshake)

答:在TCP/IP合同中,TCP合同提供可靠連接服務(wù),采用三次握手建立一種連接。

第一次握手:建立連接時(shí),客戶端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀

態(tài),等待服務(wù)器確認(rèn);

第二次握手:服務(wù)器收到syn包,必要確認(rèn)客戶SYN(ack=j+l),同步自己也發(fā)送一種SYN

包(syn=k),即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài):

第三次握手:客戶端收到服務(wù)器SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+l),

此包發(fā)送完畢,客戶端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完畢三次握手。

23.ICMP是什么合同,處在哪一層?

答:Internet控制報(bào)文合同,處在網(wǎng)絡(luò)層(IP層)

24.觸發(fā)器怎么工作?

答:觸發(fā)器重要是通過事件進(jìn)行觸發(fā)而被執(zhí)行,當(dāng)對(duì)某一表進(jìn)行諸如UPDATE.INSERT.

DELETE這些操作時(shí),數(shù)據(jù)庫(kù)就會(huì)自動(dòng)執(zhí)行觸發(fā)器所定義SQL語句,從而保證對(duì)數(shù)據(jù)解決

必要符合由這些SQL語句所定義規(guī)則。

25.winsock建立連接重要實(shí)現(xiàn)環(huán)節(jié)?

答:服務(wù)器端:socker()建立套接字,綁定(bind)并監(jiān)聽(listen),用accept()等待客戶

端連接。

客戶端:socker()建立套接字,連接(connect)服務(wù)器,連接上后使用send。和recv(),在

套接字上寫讀數(shù)據(jù),直至數(shù)據(jù)互換完畢,cbsesocketO關(guān)閉套接字。

服務(wù)器端:accept()發(fā)既有客戶端連接,建立一種新套接字,自身重新開始等待連接。該

新產(chǎn)生套接字使用send。和recv()寫讀數(shù)據(jù),直至數(shù)據(jù)互換完畢,closesocket。關(guān)閉套接字。

26.動(dòng)態(tài)連接庫(kù)兩種方式?

答:調(diào)用一種DLL中函數(shù)有兩種辦法:

1.載入時(shí)動(dòng)態(tài)鏈接(load-limedynamiclinking),模塊非常明確調(diào)用某個(gè)導(dǎo)出函數(shù),使得她

們就像本地函數(shù)同樣。這需要鏈接時(shí)鏈接那些函數(shù)所在DLL導(dǎo)入庫(kù),導(dǎo)入庫(kù)向系統(tǒng)提供了

載入DLL時(shí)所需信息及DLL函數(shù)定位。

2.運(yùn)營(yíng)時(shí)動(dòng)態(tài)鏈接(run-timedynamiclinking),運(yùn)營(yíng)時(shí)可以通過LoadLibrary或LoadLibraryEx

函數(shù)載入DLL。DLL載入后,模塊可以通過調(diào)用GetProcAddress獲取DLL函數(shù)出口地址,

然后就可以通過返回函數(shù)指針調(diào)用DLL函數(shù)了。如此即可避免導(dǎo)入庫(kù)文獻(xiàn)了。

27.IP組播有那些好處?

答:Internet上產(chǎn)生許多新應(yīng)用,特別是高帶寬多媒體應(yīng)用,帶來了帶寬急劇消耗和網(wǎng)絡(luò)擁

擠問題。組播是一種容許一種或各種發(fā)送者(組播源)發(fā)送單一數(shù)據(jù)包到各種接受者(一次,

同步)網(wǎng)絡(luò)技術(shù)。組播可以大大節(jié)約網(wǎng)絡(luò)帶寬,由于無論有多少個(gè)目的地址,在整個(gè)網(wǎng)絡(luò)任

何一條鏈路上只傳送單一數(shù)據(jù)包。因此說組播技術(shù)核心就是針對(duì)如何節(jié)約網(wǎng)絡(luò)資源前提下保

證服務(wù)質(zhì)量。

I、請(qǐng)用原則C語言實(shí)現(xiàn)一種雙向循環(huán)鏈表查找與刪除。

typedefstructdoublecyclelink{

intkey;

structdoublecyclelink*prev;

structdoublecyclelink*next;

}DoubleCycleLinkT;

DoubleCycleLinkT*findKey(DoubleCycleLinkT*link,intkey);

遍歷整個(gè)雙向循環(huán)鏈表,將第一種與key值相似結(jié)點(diǎn)移出鏈表,并返回。

若沒有找到則返回NULLo

答:

函數(shù)為

DoubleCycleLinkT*findKey(DoubleCycleLinkT*link,intkey)

(

DoubleCycleLinkT*p;

p=link->next;

while(p->next!=link)//鏈表結(jié)尾

(

if(p->key==key)//查找到key值相似,刪除該節(jié)點(diǎn),并返回

(

p->prev->next=p->next;

p->next->prev=p->prev;

free(p);

returnlink;

)

else

p=p->next;//否則查找下一節(jié)點(diǎn)

)

if(p->next==link)returnNULL;〃沒找到,返回NULL

)

2、請(qǐng)用程序打印下列圖型

*

**

***

****

voidprintTriangle(constunsignedcharline);

輸入行數(shù),打印三角形。

答:

函數(shù)為

voidprintTriangle(constunsignedcharline)

(

for(inti=l;i<=line;i++)

(

for(intj=0;j<(line*2-l);j++)//5行每行需打印9個(gè)字符

(

if(i%2==l)//奇數(shù)行

(

if(j%2==(line-l)%2&&j>=(line-l-i/2*2)&&j<=(line-l+i/2*2))

printf("*");//列從0計(jì)數(shù)

else

printf("");

}

else

if(j%2==(line)%2&&j>=(line-2-(i/2-l)*2)&&j<=(line+(i/2-l)*2))

printf("*");

else

printf—);

printf(n\nH);

3、請(qǐng)用原則C語言實(shí)現(xiàn)下列原則庫(kù)函數(shù),設(shè)計(jì)中不得使用其她庫(kù)函數(shù)。

char*strstr(char*str1,char*str2);

在字符串strl中,尋找字串str2,若找到返回找到位置,否則返回NULL。

答:

函數(shù)為

char*strstr(constchar*strl,constchar*str2)

(

char*cp=(char*)strl;

char*sl,*s2;

if(!*str2)

return((char*)strl);

while(*cp)

(

si=cp;

s2=(char*)str2;

while(*sl&&*s2&&!(*sl-*s2))

sl++,s2++;

if(!*s2)

return(cp);

cp++;

)

return(NULL);

)

4、請(qǐng)問這段代碼循環(huán)多少次?

main()

(

chari=0;

while(i<10)

(

if(i<l)continue;

if(i==5)break;

i++;

答:是個(gè)死循環(huán),無限次啊,無限次。

5、用預(yù)解決指令#define聲明一種常數(shù),用以表白1年中有多少秒(忽視閏年問題)

答:#defineMIN(365*24*60*60)

6、請(qǐng)問運(yùn)營(yíng)main函數(shù)會(huì)有什么樣成果?

main()

intx=10,y=3;

printf(u%d\n",y=x/y);

)

答:成果為3,考察強(qiáng)制類型轉(zhuǎn)換

7、有如下程序

#defineP3

intF(intx)

(

retum(P*x*x);

)

main()

(

printf("%d\n",F(3+5));

)

程序運(yùn)營(yíng)成果為:?

答:程序運(yùn)營(yíng)后輸出成果是192,此題為故意混淆概念,直接用F(8)計(jì)算得答案,而非計(jì)算

3*3+5*3+5;

8、若int占2個(gè)字節(jié),char占1個(gè)字節(jié),float占4個(gè)字節(jié),則定義如下:

structstu

union{

charbj[5];

intbh[2];

}class;

charxm[8];

floatcj;

)xc;

則sizeof(xc)值為?

答:17,一道邊界對(duì)齊題目,諸多地方有講,此處注意下聯(lián)合內(nèi)存大小取決于其中字節(jié)數(shù)最

多成員就可。

9、請(qǐng)問traceroute工作原理

答:

主機(jī)先發(fā)出一種TTL(TimeToLive,生存時(shí)間)為1ICMP數(shù)據(jù)包。這個(gè)數(shù)據(jù)包到達(dá)一種路

由器后,路由器將TTL減1到0,并將并送回一種FICMPtimeexceededJ消息,以闡明這

個(gè)數(shù)據(jù)包不能繼續(xù)向前傳送,由于其TTL已通過期了。traceroute收到這個(gè)消息后,便懂得

這個(gè)路由器存在于這個(gè)途徑上,接著traceroute再送出另一種TTL是2數(shù)據(jù)包,發(fā)現(xiàn)第2個(gè)

路由器……這個(gè)重復(fù)動(dòng)作始終持續(xù)到某個(gè)datagram到達(dá)目地。

1.打印如下圖案,共19行,只能有一種for循環(huán)(題目已經(jīng)提供)

*

***

***

*

for(i=0;i<19;i++)

(

)

答:

#include<stdio.h>

intmain()

(

intmaxsize=19;

charch=

char*tmp=newchar[3];

char"format=newchar[30J;

char*stars=newchar[30];

strcpy(stars,,,n);

for(inti=O;i<maxsize;++i)

{

if(i<=maxsize/2)

(

intk=(maxsize+1-2*i)/2;

itoa(k,tmp,10);

strcpy(format,"%");

strcat(fbrmat,tmp);

strcat(format,"cn);

if(i>0)〃前10行每次較前一行多**,輸出位置比前一行減1

(

strcat(stars,n**n);

strcat(format,stars);

)

printf(format,ch);

printfC^n");

)

else

{〃后9行每次較前一行少**,輸出位置比前一行加1

stars[maxsize-l-(2*(i+1)-maxsize-1)]=0;

intk=(2*(i+2)-maxsize-1)/2;

itoa(k,tmp,10);

strcpy(format,u%");

strcat(fbrmat,tmp);

strcat(format,"cn);

strcat(fbrmat,stars);

printf(format,ch);

printf("\n");

)

)

delete[]tmp;

delete[]format;

delete[]stars;

tmp=NULL;

format=NULL;

stars=NULL;

return0;

)

2.

voidfun(intx)

(

if(x/2>0)fun(x/2);

prmtf(n%dH,x);

求輸出成果

答:依次輸出fun(l),fun(2),fun(5),fun(10),得到成果12510

3.

#definefl(n)(n)*(n)

inti=5;

intk=0;

k=fl(i++);

printf(n%d%dM,i,k);

輸出成果:

答:725

4.下面那個(gè)for循環(huán)是無限循環(huán)

for(inti=010;i==10;i+=0)

for(inti=10;(i++A—i)==0;i+=0)

尚有幾種忘了

答:

第一不是,由于010表達(dá)8進(jìn)制,i=8;

第二是,由于i++八-i表達(dá)數(shù)字9與9進(jìn)行異或運(yùn)算,的確為0

5.Emailrelay和Emailaccess分別用了什么合同?(其她尚有諸多,略)

答:SMTRPOP3

6.stackdata(棧)存在于

A.rom,B.flashC.eepromD.ramE.noneoftheabove

答:

D.ramo這題稍微涉及到一點(diǎn)硬件知識(shí),ROM全稱是ReadOnlyMemory,即只讀存儲(chǔ)器,

flash,eeprom都是ROM家族一員,RAM是RandomAccessMemory簡(jiǎn)稱,意為隨機(jī)存取

存儲(chǔ)器,也就是內(nèi)存了。不論是堆還是棧都是放在內(nèi)存里。

7.

inti;

intx=0xl2345678;

unsignedchar*p=(unsignedchar*)&x;

for(i=0;i<sizeof(x);i++)

printf(n%2xM,*(p+i));

在80x86pc機(jī)器上運(yùn)營(yíng)成果?

答:x在PC機(jī)上內(nèi)存存儲(chǔ)順序?yàn)?8563412,高字節(jié)在前,低字節(jié)在后,因而輸出78563412

(參見bigendian和littleendian)

SunSparcUnix上運(yùn)營(yíng)成果?

答:說實(shí)話,我不懂得

8.

char削2北2][3]={{{1,6,3},{5,4,15}},{{3,5,33},{23,12,7}}};

for(inti=0;i<12;i++)

printf(M%d”,);

在空格處填上適當(dāng)語句,順序打印出a中數(shù)字

答:*(*(*(a+i/6)+(i/3%2))+i%3)

這題重要是要將輸出序號(hào)依次寫出某些,如000,001,002,010,011,012,100,101…然后找序號(hào)變

化規(guī)律

9.

voidfun(char*a,char*b)

a=b;

(*a)++;

voidmain()

(

charsl=,A\s2=*a,;

char*pl=&sl;

char*p2=&s2;

fun(pl9p2);

printf(n%c%cM,sl,s2);

)

輸出成果:?

答:輸出成果為:Ab,由于在fun函數(shù)里,指針a指向s2存儲(chǔ)區(qū)(a=b),接著讓s2存儲(chǔ)區(qū)值

加1得b((*a)++),因此s2等于b,si不變。

10.寫一種strstr。函數(shù)

答:中磊筆試題第三題也是這個(gè),就不多寫了,可翻到下篇看解答。(參見C++筆試題五)

1.改錯(cuò)

#include<stdio.h>

#include<String.h>

classCBuffer

{

char*m_pBuffer;

intm_size;

public:

CBufferO

m_pBuffer=NULL;

-CBufferO

Free();

voidAllocte(intsize)(3)

m_pBuffer=newchar[size];

private:

voidFree()

if(m_pBuffer!=NULL)

deletem_pBuffer;

m_pBuffer=NULL;

public:

voidSaveString(constchar*pText)const

strcpy(m_pBuffer,pText);

char*GetBuffer()const

returnm_pBuffer;

voidmain(intargc,char*argv[])

(

CBufferbufferl;

bufferl.SaveString(nMicrosoftn);

printf(bufferl.GetBuffer());

)

答:改正后

重要改正SaveString函數(shù)

voidSaveString(constchar*pText)const

(

strcpy(m_pBuffer,pText);

)

改為

voidSaveString(constchar*pText)(1)

{

if(m_pBuffer!=NULL)

Free();

Allocte(strlen(pText)+1);(2)

strcpy(m_pBuffer,pText);

因素:

(1)const成員函數(shù)表達(dá)不會(huì)修改數(shù)據(jù)成員,而SaveString做不到,去掉const聲明

(2)m_pBuffer指向NULL,必要用Allocte分派空間才干賦值。

(3)此外需要將Allocte成員函數(shù)聲明為私有成員函數(shù)更符合實(shí)際

2.下來程序想打印“WelcomeMSRAsia",改正錯(cuò)誤

#include<stdio.h>

#include<string.h>

char*GetName(void)

(

//Toreturn“MSRAsia”String

charname[]=HMSRAsia”;

returnname;

)

voidmain(intargc,char*argv[])

{

charname[32];

//Fillinzerosintoname

for(inti=0;i<=32;i++)

(

name[i]=,\0,;

}

//copy"Welcome"toname

name="Welcome";

//Appendablankchar

name[8]=Hn;

//Appendstringtoname

strcat(name,GetName());

//printout

printf(name);

)

答:改正后為

#include<stdio.h>

#include<string.h>

#include<malloc.h>//malloc函數(shù)頭文獻(xiàn)

char*GetName(void)

(

//Toreturn"MSRAsia”String

//charname[]=,,MSRAsia";

char*name=(char*)malloc(strlen("MSRAsian)+1);〃在函數(shù)內(nèi)部定義變量在函數(shù)結(jié)束時(shí)

就清空了,必要?jiǎng)討B(tài)分派內(nèi)存

strcpy(name,HMSRAsia'1);

returnname;

)

voidmain(intargc,char*argv[])

(

charname[32];

//Fillinzerosintoname

//for(inti=0;i<=32;i++)

for(inti=0;i<=31;i++)//數(shù)組越界

(

name[i]='\0,;

)

//copy“Welcome"toname

〃name="Welcome”;

slrcat(name,”Welcome");〃字符串賦值語句錯(cuò)誤,應(yīng)當(dāng)用strcat

//Appendablankchar

//name[8]=Mn;

strcat(name,"");〃或者name[8]=*,;name[9]=*\0*;

//Appendstringtoname

char*p=GetName();//定義一種指針指向動(dòng)態(tài)分派內(nèi)存,用完后需用free語句釋

strcat(name,p);

free(p);

//printout

printf(name);

)

3.寫出下面程序輸出成果

#include<stdio.h>

classA

public:

voidFuncA()

printf(HFuncAcaIIed\nH);

}

virtualvoidFuncB()

{

printf(HFuncBcalled\nH);

classB:publicA

(

public:

voidFuncA()

(

A::FuncA();

printf(nFuncABcalled\nH);

)

virtualvoidFuncB()

(

printf(T,FuncBBcalled\nn);

voidmain(void)

Bb;

A*pa;

pa=&b;

A*pa2=newA;

b.FuncAO;(1)

b.FuncB();(2)

pa->FuncA();(3)

pa->FuncB();(4)

pa2->FuncA();(5)

pa2->FuncB();

deletepa2;

)

答:

1.b.FuncAO;輸出

FuncAcalled

FuncABcalled

2.b.FuncB();輸出

FuncBBcalled

上兩者好理解,直接調(diào)用類B相應(yīng)成員函數(shù)

3.pa->FuncA();輸出

FuncAcalled調(diào)用類AFuncA()

4.pa?>FuncB();輸出

FuncBBcalled調(diào)用類BFuncB(),因素是C++動(dòng)態(tài)決策機(jī)制,當(dāng)基類函數(shù)聲明為virtual時(shí),

指向派生類對(duì)象基類指針來調(diào)用該函數(shù)會(huì)選取派生類實(shí)現(xiàn),除非派生類沒有才調(diào)用基類虛函

數(shù)。尚有一點(diǎn)注意是:指向基類類型指針可以指向基類對(duì)象也可以指向派生類對(duì)象,如

pa=&b;

5.pa2->FuncA();

pa2?>FuncB();輸出

FuncAcalled

FuncBcalled

這也好理解,直接調(diào)用類A相應(yīng)成員函數(shù)

4.Inthemain()function9afterModifyString(text)iscalled>what'sthevalueof'text'?

#include<stdio.h>

#include<string.h>

intFindSubString(char*pch)

{

intcount=0;

char*pl=pch;

while(*pl!=*\0,)

{

if(*pl==pl[l].l)

(

pl++;

count++;

)

else

break;

intcount2=count;

while(*pl!='\O')

(

if(*pl==pl[l]+l)

(

pl++;

count2—;

}

else

(

break;

)

)

if(count2==0)

returncount;

return0;

)

voidModifyString(char*pText)

(

char*pl=pText;

char*p2=pl;

while(*pl!='\0')

intcount=FindSubString(pl);

if(count>0)

*p2++=*pl;

sprintf(p2,"%P',count);

while(*p2!='\0')

(

p2++;

}

p1+=count+count+1;

}

else

(

*p2++=*pl++;

}

}

)

voidmain(void)

(

chartext[32]="XYBCDCBABABA";

ModifyString(text);

printf(text);

}

答:XYBCDCBAIBAA

FindSubString返回持續(xù)浮現(xiàn)字母增長(zhǎng)又遞減個(gè)數(shù),且增長(zhǎng)個(gè)數(shù)剛好等于遞減個(gè)數(shù)。如ABA

返回1,ABAB返回1,ABCBA返回2,BCBA返回0。

sprintf(p2,"%I",count);將*p2=T,*(p2+l)-\0*o

1.完畢下列程序

*???*???*???*???

??????*?????*?????*???????????*?????

,??????*??????*??????*?????????????*??????*??????

#include<stdio.h>

#defineN8

intmain()

(

inti;

intj;

intk;

return0;

)

答:

#defineN8

intmain()

(

inti;

intj;

intk;

for(i=0;i<N;i++)

|

for(j=0;j<i+l;j++)

(

printf(n*u);

for(k=0;k<i;k++)

printf(".n);

)

printf(n\nn);

)

return0;

)

2.完畢程序,實(shí)現(xiàn)對(duì)數(shù)組降序排序

#include<stdio.h>

voidsort();

intmain()

intarray[]={45,56,76,234,l,34,23,2,3);〃數(shù)字任意給出

sort();

return0;

)

voidsort()

答:使用選取排序法,我為sort函數(shù)多加了兩個(gè)形參,至少第一種是必要,否則無法傳入待

排序數(shù)組。不懂得這樣做與否符合題意。

voidsort(int*array,intnum)

!

inttemp;

for(inti=0;i<num-l;i++)

fdr(intj=i+l;j<num;j++)

if(arrayIi]<array(j])

(

temp=array[i];

array[i]=array[j];

arrayfj]=temp;

3.費(fèi)波那其數(shù)列,1,1,2,3,5……編寫程序求第十項(xiàng)??梢杂眠f歸,也可以用其她辦

法,但要闡明你選取理由。

#include<stdio.h>

intPheponatch(int);

intmain()

(

printf("The10this%dn,Pheponatch(10));

return0;

)

intPheponatch(intN)

)

答:

使用遞歸,理由是遞歸編程簡(jiǎn)樸,代碼容易理解,但缺陷是效率不高,并且有深度限制,如果深度

太深,則堆棧會(huì)溢出。

intPheponatch(intN)

(

if(N==2||N==l)

return1;

else

returnPheponatch(N-1)+Pheponatch(N-2);

)

4.下列程序運(yùn)營(yíng)時(shí)會(huì)崩潰,請(qǐng)找出錯(cuò)誤并改正,并且闡明因素。

#include<stdio.h>

#include<malloc.h>

typedefstructTNode

(

TNode*left;

TNode*right;

intvalue;

}TNode;

TNode*root=NULL;

voidappend(intN);

intmain()

(

append(63);

append(45);

append(32);

append(77);

append(96);

append(21);

append(17);//Again,數(shù)字任意給出

return0;

)

voidappend(intN)

(

TNode*NewNode=(TNode*)malloc(sizeof(TNode));

NewNode->value=N;

if(root==NULL)

(

root=NewNode;

return;

)

else

(

TNode*temp;

temp=root;

while((N>=temp->value&&temp->left!=NULL)||(N<temp->value&&

temp->right!=NULL))

{

while(N>=temp->value&&temp->left!=NULL)

temp=temp->left;

while(N<temp->value&&temp->right!=NULL)

temp=temp->right;

if(N>=temp->value)

temp->left=NewNode;

else

temp->right=NewNode;

return;

)

)

答:

voidappend(intN)

(

TNode*NewNode=(TNode*)malloc(sizeof(TNode));

NewNode->value=N;

NewNode->left=NULL;

NewNode->right=NULL;

if(root==NULL)

(

root=NewNode;

return;

)

else

(

TNode*temp;

temp=root;

//while((N>=temp->value&&temp->left!=NULL)||(N<temp->value&&

temp->righl!=NULL))〃易引起死循環(huán),去掉

//{

while(N>=temp->value&&temp->left!=NULL)

temp=temp->left;

while(N<temp->value&&temp->right!=NULL)

temp=temp->right;

//)

if(N>=temp->value)

(

if(temp->left!=NULL)

temp->left->right=NewNode;

else

root=NewNode;

NewNode->left=temp->left;

NewNode->right=temp;

temp->left=NewNode;

)

else

(

if(temp->right!=NULL)

temp->right->left=NewNode;

NewNode->right=temp->right;

NewNode->left=temp;

temp->right=NewNode;

return;

1.找錯(cuò)

voidtest1()

(

charstringflO];

char*strl=',n;

strcpy(string,strl);

}

答:表面上并且編譯都不會(huì)錯(cuò)誤。但如果string數(shù)組原意表達(dá)是字符串話,那這個(gè)賦值就沒

有達(dá)到意圖。最佳定義為charstring"1],這樣最后一種元素可以存儲(chǔ)字符串結(jié)尾符W;

voidtest2()

(

charstring"。],strl[10];

for(int1=0;I<10;I++)

(

strl[I]=,a,;

strcpy(string,strl);

答:strcpy使用錯(cuò)誤,strcpy只有遇到字符串末尾,\0才會(huì)結(jié)束,而strl并沒有結(jié)尾標(biāo)志,導(dǎo)

致strcpy函數(shù)越界訪問,不妨讓strl[9]-\01,這樣就正常了。

voidtest3(char*strl)

(

charstring[10];

if(strlen(strl)<=10)

(

strcpy(string,strl);

答:這又會(huì)浮現(xiàn)第一道改錯(cuò)題錯(cuò)誤了。strlen(strl)算出來值是不包括結(jié)尾符'(V,如果strl剛

好為10個(gè)字符+1結(jié)尾符,string就得不到結(jié)尾符了。可將strlen(strl)<=10改為

strlen(strl)<10o

2.找錯(cuò)

#defineMAX_SRM256

DSNget_SRM_no()

(

staticintSRM_no;

inti;

for(I=0;I<MAX_SRM;I++,SRM_no++)

(

SRM_no%=MAX_SRM;

if(MY_SRM.state==IDLE)

break;

if(I>=MAX_SRM)

return(NULL_SRM);

else

returnSRM_no;

)

答:我不懂得這段代碼詳細(xì)功能,但明顯有兩個(gè)錯(cuò)誤

1,SRM_n。沒有賦初值

2,由于static聲明,使該函數(shù)成為不可重入(即不可預(yù)測(cè)成果)函數(shù),由

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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)論