freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c_c++_筆試題目-文庫吧

2025-07-18 15:25 本頁面


【正文】 etMemory( void ) { char p[] = hello world。 return p。 } void Test( void ) { char *str = NULL。 str = GetMemory()。 printf( str )。 } 試題 6: void GetMemory( char **p, int num ) { *p = (char *) malloc( num )。 } void Test( void ) { char *str = NULL。 GetMemory( amp。str, 100 )。 strcpy( str, hello )。 printf( str )。 } 試題 7: void Test( void ) { char *str = (char *) malloc( 100 )。 strcpy( str, hello )。 free( str )。 ... //省略的其它語句 } 解答: 試題 4傳入中 GetMemory( char *p )函數(shù)的形參為字符串指針,在函數(shù)內(nèi)部修改形參并不能真正的改變傳入形參的值,執(zhí)行完 char *str = NULL。 GetMemory( str )。 后的 str仍然為 NULL; 試題 5中 char p[] = hello world。 return p。 的 p[]數(shù)組為函數(shù)內(nèi)的局部自動(dòng)變量,在函數(shù)返回后,內(nèi)存已經(jīng)被釋放。這是許多程序員常犯的錯(cuò)誤,其根源在于不理解變量的生存期。 試題 6的 GetMemory避免了試題 4的問題,傳入 GetMemory的參數(shù)為字符串指針的指針,但是在 GetMemory中執(zhí)行申請內(nèi)存及賦值語句 *p = (char *) malloc( num )。 后未判斷內(nèi)存是否申請成功,應(yīng)加上: if ( *p == NULL ) { ...//進(jìn)行申請內(nèi)存失敗處理 } 試題 7存在與試題 6同樣的問 題,在執(zhí)行 char *str = (char *) malloc(100)。 后未進(jìn)行內(nèi)存是否申請成功的判斷;另外,在 free(str)后未置 str為空,導(dǎo)致可能變成一個(gè) “ 野 ” 指針,應(yīng)加上: str = NULL。 試題 6的 Test函數(shù)中也未對 malloc的內(nèi)存進(jìn)行釋放。 剖析: 試題 4~ 7考查面試者對內(nèi)存操作的理解程度,基本功扎實(shí)的面試者一般都能正確的回答其中 50~60的錯(cuò)誤。但是要完全解答正確,卻也絕非易事。 對內(nèi)存操作的考查主要集中在: ( 1)指針的理解; ( 2)變量的生存期及作用范圍; ( 3)良好的動(dòng)態(tài)內(nèi)存申請和釋放習(xí)慣。 再看看下面的一段程序有什么錯(cuò)誤: swap( int* p1,int* p2 ) { int *p。 *p = *p1。 *p1 = *p2。 *p2 = *p。 } 在 swap函數(shù)中, p是一個(gè) “ 野 ” 指針,有可能指向系統(tǒng)區(qū),導(dǎo)致程序運(yùn)行的崩潰。在VC++中 DEBUG運(yùn)行時(shí)提示錯(cuò)誤 “Access Violation” 。該程序應(yīng)該改為: swap( int* p1,int* p2 ) { int p。 p = *p1。 *p1 = *p2。 *p2 = p。 } 試題 1:分別給出 BOOL, int, float,指針變量 與 “ 零值 ” 比較的 if 語句(假設(shè)變量名為 var) 解答: BOOL型變量: if(!var) int型變量: if(var==0) float型變量: const float EPSINON = 。 if ((x = EPSINON) amp。amp。 (x = EPSINON) 指針變量: if(var==NULL) 剖析: 考查對 0值判斷的 “ 內(nèi)功 ” , BOOL型變量的 0判斷完全可以寫成 if(var==0),而 int型變量也可以寫成 if(!var),指針變量的判斷也可以寫成 if(!var),上述寫法雖然程序都能正確運(yùn)行,但是未能清晰地表達(dá)程序的意思。 一般的,如果想讓 if判斷一個(gè)變量的 “ 真 ” 、 “ 假 ” ,應(yīng)直接使用 if(var)、 if(!var),表明其為 “ 邏輯 ” 判斷;如果用 if判斷一個(gè)數(shù)值型變量 (short、 int、 long等 ),應(yīng)該用if(var==0),表明是與 0進(jìn)行 “ 數(shù)值 ” 上的比較 ;而判斷指針則適宜用 if(var==NULL),這是一種很好的編程習(xí)慣。 浮點(diǎn)型變量并不精確,所以不可將 float變量用 “==” 或 “ ! =” 與數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成 “=” 或 “=” 形式。如果寫成 if (x == ),則判為錯(cuò),得 0分。 試題 2:以下為 Windows NT下的 32位 C++程序,請計(jì)算 sizeof的值 void Func ( char str[100] ) { sizeof( str ) = ? } void *p = malloc( 100 )。 sizeof ( p ) = ? 解答: sizeof( str ) = 4 sizeof ( p ) = 4 剖析: Func ( char str[100] )函數(shù)中數(shù)組名作為函數(shù)形參時(shí),在函數(shù)體內(nèi),數(shù)組名失去了本身的內(nèi)涵,僅僅只是一個(gè)指針;在失去其
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1