東軟C_C++筆試.doc_第1頁(yè)
東軟C_C++筆試.doc_第2頁(yè)
東軟C_C++筆試.doc_第3頁(yè)
東軟C_C++筆試.doc_第4頁(yè)
東軟C_C++筆試.doc_第5頁(yè)
已閱讀5頁(yè),還剩12頁(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.實(shí)現(xiàn)雙向鏈表刪除一個(gè)節(jié)點(diǎn)P,在節(jié)點(diǎn)P后插入一個(gè)節(jié)點(diǎn),寫出這兩個(gè)函數(shù);答:/假設(shè)線性表的雙向鏈表存儲(chǔ)結(jié)構(gòu)typedef struct DulNodestruct DulNode *prior; /前驅(qū)指針ElemType data; /數(shù)據(jù)struct DulNode *next; /后繼指針DulNode,*DuLinkList;/刪除操作Status ListDelete_DuL(DuLinkList &L,int i,ElemType &e)if(!(p=GetElemP_DuL(L,i) /此處得到i位置的節(jié)點(diǎn)指針,如果有需要也得寫出具體函數(shù)實(shí)現(xiàn)return ERROR;e=p-data;p-prior-next=p-next;p-next-prior=p-pror;free(p);return OK;/插入操作Status ListInsert_DuL(DuLinkList &L,int i,ElemType &e)if(!(p=GetElemP_DuL(L,i)return ERROR;if(!(s=(DuLinkList)malloc(sizeof(DuLNode)return ERROR;s-data=e;s-prior=p-prior;p-prior-next=s;s-next=p;p-prior=s;return OK;2.寫一個(gè)函數(shù),將其中的t都轉(zhuǎn)換成4個(gè)空格。答:該函數(shù)命名為convert,參數(shù)的意義為:*strDest目的字符串,*strSrc源字符串,length源字符串的長(zhǎng)度函數(shù)實(shí)現(xiàn)為:char* convert(char *strDest, const char *strSrc,int length)char * cp = strDest;int i=0;while(*strSrc & iif (*strSrc=t) /將t轉(zhuǎn)換成4個(gè)空格for(int j=0;j= EPSINON) & (x =”或“=”形式。如果寫成if (x = 0.0),則判為錯(cuò),得0分。試題2:以下為Windows NT下的32位C+程序,請(qǐng)計(jì)算sizeof的值void Func ( char str100 ) sizeof( str ) = ?void *p = malloc( 100 );sizeof ( p ) = ?解答:sizeof( str ) = 4sizeof ( p ) = 4剖析:Func ( char str100 )函數(shù)中數(shù)組名作為函數(shù)形參時(shí),在函數(shù)體內(nèi),數(shù)組名失去了本身的內(nèi)涵,僅僅只是一個(gè)指針;在失去其內(nèi)涵的同時(shí),它還失去了其常量特性,可以作自增、自減等操作,可以被修改。數(shù)組名的本質(zhì)如下:(1) 數(shù)組名指代一種數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)就是數(shù)組;例如:char str10;cout sizeof(str) endl;輸出結(jié)果為10,str指代數(shù)據(jù)結(jié)構(gòu)char10。(2) 數(shù)組名可以轉(zhuǎn)換為指向其指代實(shí)體的指針,而且是一個(gè)指針常量,不能作自增、自減等操作,不能被修改;char str10;str+; /編譯出錯(cuò),提示str不是左值(3) 數(shù)組名作為函數(shù)形參時(shí),淪為普通指針。Windows NT 32位平臺(tái)下,指針的長(zhǎng)度(占用內(nèi)存的大小)為4字節(jié),故sizeof( str ) 、sizeof ( p ) 都為4。試題3:寫一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。另外,當(dāng)你寫下面的代碼時(shí)會(huì)發(fā)生什么事?least = MIN(*p+, b);解答:#define MIN(A,B) (A) = (B) ? (A) : (B)MIN(*p+, b)會(huì)產(chǎn)生宏的副作用剖析:這個(gè)面試題主要考查面試者對(duì)宏定義的使用,宏定義可以實(shí)現(xiàn)類似于函數(shù)的功能,但是它終歸不是函數(shù),而宏定義中括弧中的“參數(shù)”也不是真的參數(shù),在宏展開的時(shí)候?qū)Α皡?shù)”進(jìn)行的是一對(duì)一的替換。程序員對(duì)宏定義的使用要非常小心,特別要注意兩個(gè)問(wèn)題:(1) 謹(jǐn)慎地將宏定義中的“參數(shù)”和整個(gè)宏用用括弧括起來(lái)。所以,嚴(yán)格地講,下述解答:#define MIN(A,B) (A) = (B) ? (A) : (B)#define MIN(A,B) (A = B ? A : B ) 都應(yīng)判0分;(2) 防止宏的副作用。宏定義#define MIN(A,B) (A) = (B) ? (A) : (B)對(duì)MIN(*p+, b)的作用結(jié)果是:(*p+) = (b) ? (*p+) : (*p+) 這個(gè)表達(dá)式會(huì)產(chǎn)生副作用,指針p會(huì)作三次+自增操作。除此之外,另一個(gè)應(yīng)該判0分的解答是:#define MIN(A,B) (A) 1 + 2 * 3 其實(shí)是想要(1 + 2) * 32) 作為值返回時(shí),類似1)#define ADD(a,b) (a) + (b)int c = ADD(a,b) * 3; = (a) + (b) * 3 其實(shí)是想要(a + b) * 3所以,一般的規(guī)則是:宏里面參數(shù)全部用括號(hào)括起來(lái);如果作為值返回,整個(gè)表達(dá)式也用括號(hào)括起來(lái)。所以,上面最好這么寫:#define MULTI(a,b) (a) * (b)#define ADD(a,b) (a) + (b)2、實(shí)際使用參數(shù)和宏內(nèi)部變量同名#define HASH(str,sz,rst) dounsigned int n = 0; n = xxx; rst = n % sz;while(0)這是一個(gè)hash的宏實(shí)現(xiàn),其中定義了一個(gè)臨時(shí)變量n,根據(jù)str計(jì)算n,然后對(duì)sz求模并把返回值賦給傳進(jìn)來(lái)的rst.這么調(diào)用:int n;HASH(“hello”,7,n);不會(huì)達(dá)到改變n的效果,因?yàn)閷?shí)際使用參數(shù)n和宏內(nèi)部的變量n同名。宏擴(kuò)展中最后一條語(yǔ)句是:n = n % sz;因?yàn)楹陜?nèi)部n有更小作 用域,實(shí)際賦值的是宏內(nèi)部的那個(gè)臨時(shí)變量n。外面調(diào)用的n不會(huì)有任何改變。這個(gè)副作用有些隱蔽,一般的規(guī)則是:宏內(nèi)部變量使用一種不同風(fēng)格的命名方式。比如:#define HASH(str,sz,rst) dounsigned int _n = 0; _n = 3、+,#define MAX(a,b) (a) (b) ? (a) : (b)int a = 3,b = 2;int c = MAX(a+,b);執(zhí)行看看,不但a的值不是和想要的一致,返回值c也會(huì)讓你大吃一驚,哈哈。(a = 5,c = 4)在宏內(nèi)部一個(gè)變量”執(zhí)行”多少次,它就自增或自減了多少次。所以一般使用宏最好不要傳入自增自減。如果你一定要在宏里消除這個(gè)副作用,可以這樣:#define MAX(a,b) (int _x = (a), _y = (b);(_x _y) ? _x : _y;)也就是:保證傳入宏的參數(shù)在內(nèi)部只使用一次。(注意:傳入a+或+a都能得到各自正確的效果)這里的內(nèi)部變量_x,_y是不需要用括號(hào)包起來(lái)的,原因可以自己想想。另外對(duì)宏中括號(hào)的使用補(bǔ)充說(shuō)明兩點(diǎn):因?yàn)楹曛卸x了臨時(shí)變量,所以要用括起來(lái);因?yàn)橐祷刂?,所以外面還要用()括起來(lái)(不返回值);另外,這里還有一個(gè)問(wèn)題:實(shí)際中a,b不一定是int的,這個(gè)宏中的臨時(shí)變量聲明為int,不通用。改進(jìn):#define MAX(a,b,type) (type _x = (a), _y = (b);(_x _y) ? _x : _y;)使用:MAX(1,2,int); MAX(1.1,1.2,double);是不是感覺怪怪的,有點(diǎn)c+的感覺 這樣的使用太復(fù)雜了,而且也會(huì)給代碼的閱讀帶來(lái)難度。我覺得好的態(tài)度是多了解些宏的可能的副作用,在實(shí)際編碼中遵守第1、2條規(guī)則,不要往宏中傳入自增自減的東西,就夠了。不要把過(guò)多的復(fù)雜度全扔給宏,”通用”也不能盲目,因?yàn)楫吘梗簓y是沒(méi)有極限的。試題4:為什么標(biāo)準(zhǔn)頭文件都有類似以下的結(jié)構(gòu)?Code#ifndef _INCvxWorksh#define _INCvxWorksh#ifdef _cplusplusextern “C” #endif/*/#ifdef _cplusplus#endif#endif /* _INCvxWorksh */解答:頭文件中的編譯宏#ifndef_INCvxWorksh#define_INCvxWorksh#endif的作用是防止被重復(fù)引用。作為一種面向?qū)ο蟮恼Z(yǔ)言,C+支持函數(shù)重載,而過(guò)程式語(yǔ)言C則不支持。函數(shù)被C+編譯后在symbol庫(kù)中的名字與C語(yǔ)言的不同。例如,假設(shè)某個(gè)函數(shù)的原型為:void foo(int x, int y);該函數(shù)被C編譯器編譯后在symbol庫(kù)中的名字為_foo,而C+編譯器則會(huì)產(chǎn)生像_foo_int_int之類的名字。_foo_int_int這樣的名字包含了函數(shù)名和函數(shù)參數(shù)數(shù)量及類型信息,C+就是考這種機(jī)制來(lái)實(shí)現(xiàn)函數(shù)重載的。為了實(shí)現(xiàn)C和C+的混合編程,C+提供了C連接交換指定符號(hào)extern “C”來(lái)解決名字匹配問(wèn)題,函數(shù)聲明前加上extern “C”后,則編譯器就會(huì)按照C語(yǔ)言的方式將該函數(shù)編譯為_foo,這樣C語(yǔ)言中就可以調(diào)用C+的函數(shù)了。試題5:編寫一個(gè)函數(shù),作用是把一個(gè)char組成的字符串循環(huán)右移n個(gè)。比如原來(lái)是“abcdefghi”如果n=2,移位后應(yīng)該是“hiabcdefgh”函數(shù)頭是這樣的:/pStr是指向以0結(jié)尾的字符串的指針/steps是要求移動(dòng)的nvoid LoopMove ( char * pStr, int steps ) /請(qǐng)?zhí)畛浣獯穑赫_解答1:Codevoid LoopMove ( char *pStr, int steps ) int n = strlen( pStr ) steps; char tmpMAX_LEN; strcpy ( tmp, pStr + n ); strcpy ( tmp + steps, pStr); *( tmp + strlen ( pStr ) ) = 0; strcpy( pStr, tmp );正確解答2:Codevoid LoopMove ( char *pStr, int steps ) int n = strlen( pStr ) steps; char tmpMAX_LEN; memcpy( tmp, pStr + n, steps ); memcpy(pStr + steps, pStr, n ); memcpy(pStr, tmp, steps );剖析:這個(gè)試題主要考查面試者對(duì)標(biāo)準(zhǔn)庫(kù)函數(shù)的熟練程度,在需要的時(shí)候引用庫(kù)函數(shù)可以很大程度上簡(jiǎn)化程序編寫的工作量。最頻繁被使用的庫(kù)函數(shù)包括:(1) strcpy(2) memcpy(3) memsetmemcpy原型:extern void *memcpy(void *dest, void *src, unsigned int count);用法:#include 功能:由src所指內(nèi)存區(qū)域復(fù)制count個(gè)字節(jié)到dest所指內(nèi)存區(qū)域。說(shuō)明:src和dest所指內(nèi)存區(qū)域不能重疊,函數(shù)返回指向dest的指針。注意:與strcpy相比,memcpy并不是遇到0就結(jié)束,而是一定會(huì)拷貝完n個(gè)字節(jié)。舉例:/ memcpy.c#include #include int main(int argc, char* argv)char *s=”Golden Global View”;char d20;clrscr();memcpy(d,s,strlen(s);dstrlen(s)=0;printf(“%s”,d);getchar();return 0;截取view#include int main(int argc, char* argv)char *s=”Golden Global View”;char d20;memcpy(d,s+14,4);/memcpy(d,s+14*sizeof(char),4*sizeof(char);也可d4=0;printf(“%s”,d);getchar();return 0;輸出結(jié)果:View初始化數(shù)組char msg10;memcpy(msg,0,sizeof(msg);memset函數(shù)原型void *memset(void *s, int ch, unsigned n);編輯本段程序例#include #include #include memset函數(shù)int main(void)char buffer = “Hello worldn”;printf(“Buffer before memset: %sn”, buffer);memset(buffer, *, strlen(buffer) );printf(“Buffer after memset: %sn”, buffer);return 0;輸出結(jié)果:Buffer before memset: Hello worldBuffer after memset: *編譯平臺(tái):Microsoft Visual C+ 6.0也不一定就是把內(nèi)容全部設(shè)置為ch指定的ASCII值,而且該處的ch可為int或者其他類型,并不一定要是char類型。例如下面這樣:int array5 = 1,4,3,5,2;for(int i = 0; i 5; i+)cout0.000001&x-0.000001)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 (Address Resolution Protocol)(地址解析協(xié)議)12.IP地址的編碼分為哪倆部分?IP地址由兩部分組成,網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)。不過(guò)是要和“子網(wǎng)掩碼”按位與上之后才能區(qū)分哪些是網(wǎng)絡(luò)位哪些是主機(jī)位。13.用戶輸入M,N值,從1至N開始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直至全部輸出。寫出C程序。循環(huán)鏈表,用取余操作做14.不能做switch()的參數(shù)類型是:switch的參數(shù)不能為實(shí)型。1.寫出判斷ABCD四個(gè)表達(dá)式的是否正確, 若正確, 寫出經(jīng)過(guò)表達(dá)式中 a的值(3分)int a = 4;(A)a += (a+); (B) a += (+a) ;(C) (a+) += a;(D) (+a) += (a+);a = ?答:C錯(cuò)誤,左側(cè)不是一個(gè)有效變量,不能賦值,可改為(+a) += a;改后答案依次為9,10,10,112.某32位系統(tǒng)下, C+程序,請(qǐng)計(jì)算sizeof 的值(5分).char str = “/”char *p = str ;int n = 10;請(qǐng)計(jì)算sizeof (str ) = ?(1)sizeof ( p ) = ?(2)sizeof ( n ) = ?(3)void Foo ( char str100)請(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)43. 回答下面的問(wèn)題. (4分)(1).頭文件中的 ifndef/define/endif 干什么用?預(yù)處理答:防止頭文件被重復(fù)引用(2). i nclude 和 i nclude “filename.h” 有什么區(qū)別?答:前者用來(lái)包含開發(fā)環(huán)境提供的庫(kù)頭文件,后者用來(lái)包含自己編寫的頭文件。(3).在C+ 程序中調(diào)用被 C 編譯器編譯后的函數(shù),為什么要加 extern “C”聲明?答:函數(shù)和變量被C+編譯后在符號(hào)庫(kù)中的名字與C語(yǔ)言的不同,被extern C修飾的變量和函數(shù)是按照C語(yǔ)言方式編譯和連接的。由于編譯后的名字不同,C+程序不能直接調(diào)用C 函數(shù)。C+提供了一個(gè)C 連接交換指定符號(hào)extern“C”來(lái)解決這個(gè)問(wèn)題。(4). switch()中不允許的數(shù)據(jù)類型是?答:實(shí)型4. 回答下面的問(wèn)題(6分)(1).Void GetMemory(char *p, int num)*p = (char *)malloc(num);void Test(void)char *str = NULL;GetMemory(&str, 100);strcpy(str, hello);printf(str);請(qǐng)問(wèn)運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?答:輸出“hello”(2). void Test(void)char *str = (char *) malloc(100);strcpy(str, “hello”);free(str);if(str != NULL)strcpy(str, “world”);printf(str);請(qǐng)問(wèn)運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?答:輸出“world”(3). char *GetMemory(void)char p = hello world;return p;void Test(void)char *str = NULL;str = GetMemory();printf(str);請(qǐng)問(wèn)運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?答:無(wú)效的指針,輸出不確定5. 編寫strcat函數(shù)(6分)已知strcat函數(shù)的原型是char *strcat (char *strDest, const char *strSrc);其中strDest 是目的字符串,strSrc 是源字符串。(1)不調(diào)用C+/C 的字符串庫(kù)函數(shù),請(qǐng)編寫函數(shù) strcat答:VC源碼:char * _cdecl strcat (char * dst, const char * src)char * cp = dst;while( *cp )cp+; /* find end of dst */while( *cp+ = *src+ ) ; /* Copy src to end of dst */return( dst ); /* return dst */(2)strcat能把strSrc 的內(nèi)容連接到strDest,為什么還要char * 類型的返回值?答:方便賦值給其他變量6.MFC中CString是類型安全類么?答:不是,其它數(shù)據(jù)類型轉(zhuǎn)換到CString可以使用CString的成員函數(shù)Format來(lái)轉(zhuǎn)換7.C+中為什么用模板類。答:(1)可用來(lái)創(chuàng)建動(dòng)態(tài)增長(zhǎng)和減小的數(shù)據(jù)結(jié)構(gòu)(2)它是類型無(wú)關(guān)的,因此具有很高的可復(fù)用性。(3)它在編譯時(shí)而不是運(yùn)行時(shí)檢查數(shù)據(jù)類型,保證了類型安全(4)它是平臺(tái)無(wú)關(guān)的,可移植性(5)可用于基本數(shù)據(jù)類型19 關(guān)于內(nèi)存對(duì)齊的問(wèn)題以及sizof()的輸出答:編譯器自動(dòng)對(duì)齊的原因:為了提高程序的性能,數(shù)據(jù)結(jié)構(gòu)(尤其是棧)應(yīng)該盡可能地在自然邊界上對(duì)齊。原因在于,為了訪問(wèn)未對(duì)齊的內(nèi)存,處理器需要作兩次內(nèi)存訪問(wèn);然而,對(duì)齊的內(nèi)存訪問(wèn)僅需要一次訪問(wèn)。20 int i=10, j=10, k=3; k*=i+j; k最后的值是?答:60,此題考察優(yōu)先級(jí),實(shí)際寫成: k*=(i+j);,賦值運(yùn)算符優(yōu)先級(jí)最低19. 如何引用一個(gè)已經(jīng)定義過(guò)的全局變量?答:extern可以用引用頭文件的方式,也可以用extern關(guān)鍵字,如果用引用頭文件方式來(lái)引用某個(gè)在頭文件中聲明的全局變理,假定你將那個(gè)變寫錯(cuò)了,那么在編譯期間會(huì)報(bào)錯(cuò),如果你用extern方式引用時(shí),假定你犯了同樣的錯(cuò)誤,那么在編譯期間不會(huì)報(bào)錯(cuò),而在連接期間報(bào)錯(cuò)。20. 全局變量可不可以定義在可被多個(gè).C文件包含的頭文件中?為什么?答:可以,在不同的C文件中以static形式來(lái)聲明同名全局變量??梢栽诓煌腃文件中聲明同名的全局變量,前提是其中只能有一個(gè)C文件中對(duì)此變量賦初值,此時(shí)連接不會(huì)出錯(cuò)。21. 語(yǔ)句for( ;1 ;)有什么問(wèn)題?它是什么意思?答:無(wú)限循環(huán),和while(1)相同。22. dowhile和whiledo有什么區(qū)別?答:前一個(gè)循環(huán)一遍再判斷,后一個(gè)判斷以后再循環(huán)。23. 請(qǐng)寫出下列代碼的輸出內(nèi)容#includemain()int a,b,c,d;a=10;b=a+;c=+a;d=10*a+;printf(b,c,d:%d,%d,%d,b,c,d);return 0;答:10,12,1201. 以下三條輸出語(yǔ)句分別輸出什么?char str1 = abc;char str2 = abc;const char str3 = abc;const char str4 = abc;const char* str5 = abc;const char* str6 = abc;cout boolalpha ( str1=str2 ) endl; / 輸出什么?cout boolalpha ( str3=str4 ) endl; / 輸出什么?cout boolalpha ( str5=str6 ) endl; / 輸出什么?答:分別輸出false,false,true。str1和str2都是字符數(shù)組,每個(gè)都有其自己的存儲(chǔ)區(qū),它們的值則是各存儲(chǔ)區(qū)首地址,不等;str3和str4同上,只是按const語(yǔ)義,它們所指向的數(shù)據(jù)區(qū)不能修改。str5和str6并非數(shù)組而是字符指針,并不分配存儲(chǔ)區(qū),其后的“abc”以常量形式存于靜態(tài)數(shù)據(jù)區(qū),而它們自己僅是指向該區(qū)首地址的指針,相等。2. 以下代碼中的兩個(gè)sizeof用法有問(wèn)題嗎?void UpperCase( char str ) / 將 str 中的小寫字母轉(zhuǎn)換成大寫字母for( size_t i=0; iif( a=stri & stri=z )stri -= (a-A );char str = aBcDe;cout str字符長(zhǎng)度為: sizeof(str)/sizeof(str0) endl;UpperCase( str );cout str endl;答:函數(shù)內(nèi)的sizeof有問(wèn)題。根據(jù)語(yǔ)法,sizeof如用于數(shù)組,只能測(cè)出靜態(tài)數(shù)組的大小,無(wú)法檢測(cè)動(dòng)態(tài)分配的或外部數(shù)組大小。函數(shù)外的str是一個(gè)靜態(tài)定義的數(shù)組,因此其大小為6,函數(shù)內(nèi)的str實(shí)際只是一個(gè)指向字符串的指針,沒(méi)有任何額外的與數(shù)組相關(guān)的信息,因此sizeof作用于上只將其當(dāng)指針看,一個(gè)指針為4個(gè)字節(jié),因此返回4。3. 非C+內(nèi)建型別 A 和 B,在哪幾種情況下B能隱式轉(zhuǎn)化為A?答:a. class B : public A / B公有繼承自A,可以是間接繼承的b. class B operator A( ); / B實(shí)現(xiàn)了隱式轉(zhuǎn)化為A的轉(zhuǎn)化c. class A A( const B& ); / A實(shí)現(xiàn)了non-explicit的參數(shù)為B(可以有其他帶默認(rèn)值的參數(shù))構(gòu)造函數(shù)d. A& operator= ( const A& ); / 賦值操作,雖不是正宗的隱式類型轉(zhuǎn)換,但也可以勉強(qiáng)算一個(gè)4. 以下代碼有什么問(wèn)題?struct TestTest( int ) Test() void fun() ;void main( void )Test a(1);a.fun();Test b();b.fun();答:變量b定義出錯(cuò)。按默認(rèn)構(gòu)造函數(shù)定義對(duì)象,不需要加括號(hào)。5. 以下代碼有什么問(wèn)題?cout (true?1:1) temp;unsigned int const size2 = temp;char str2 size2 ;答:str2定義出錯(cuò),size2非編譯器期間常量,而數(shù)組定義要求長(zhǎng)度必須為編譯期常量。7. 以下反向遍歷array數(shù)組的方法有什么錯(cuò)誤?vector array;array.push_back( 1 );array.push_back( 2 );array.push_back( 3 );for( vector:size_type i=array.size()-1; i=0; i ) / 反向遍歷array數(shù)組cout arrayi endl;答:首先數(shù)組定義有誤,應(yīng)加上類型參數(shù):vector array。其次vector:size_type被定義為unsigned int,即無(wú)符號(hào)數(shù),這樣做為循環(huán)變量的i為0時(shí)再減1就會(huì)變成最大的整數(shù),導(dǎo)致循環(huán)失去控制。8. 以下代碼中的輸出語(yǔ)句輸出0嗎,為什么?struct CLSint m_i;CLS( int i ) : m_i(i) CLS()CLS(0);CLS obj;cout obj.m_i

溫馨提示

  • 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)論