操人视频99青青av|亚洲a极淫交3P毛片电影|精品蜜桃人妻天天久|国产精品色婷婷免费|正规av网站在线免费观看|国产精品高清在线观看|免费成人网站在线|97干色五月天最黄三级无码片|在线免费观看黄色毛片A片|日韩无码视频一二三四区

C++程序員應聘常見筆試題

時間:2024-06-08 19:05:44 學人智庫

C++程序員應聘常見筆試題

  C++程序員應聘有哪些常見筆試題?以下是CN人才網(wǎng)小編為大家整理的2017C++程序員應聘常見筆試題,歡迎閱讀參考。

C++程序員應聘常見筆試題

  ——試題1:

  void GetMemory( char *p )

  {

  p = (char *) malloc( 100 );

  }

  void Test( void )

  {

  char *str = NULL;

  GetMemory( str );

  strcpy( str, "hello world" );

  printf( str );

  }

  ——試題2:

  char *GetMemory( void )

  {

  char p[] = "hello world";

  return p;

  }

  void Test( void )

  {

  char *str = NULL;

  str = GetMemory();

  printf( str );

  }

  ——試題3:

  void GetMemory( char **p, int num )

  {

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

  }

  void Test( void )

  {

  char *str = NULL;

  GetMemory( &str, 100 );

  strcpy( str, "hello" );

  printf( str );

  }

  ——試題4:

  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)的局部自動變量,在函數(shù)返回后,內(nèi)存已經(jīng)被釋放。這是許多程序員常犯的錯誤,其根源在于不理解變量的生存期。

  試題6的GetMemory避免了試題4的問題,傳入GetMemory的參數(shù)為字符串指針的指針,但是在GetMemory中執(zhí)行申請內(nèi)存及賦值語句

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

  后未判斷內(nèi)存是否申請成功,應加上:

  if ( *p == NULL )

  {

  ...//進行申請內(nèi)存失敗處理

  }

  試題7存在與試題6同樣的問題,在執(zhí)行

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

  后未進行內(nèi)存是否申請成功的判斷;另外,在free(str)后未置str為空,導致可能變成一個“野”指針,應加上:

  str = NULL;

  試題6的Test函數(shù)中也未對malloc的內(nèi)存進行釋放。

  剖析:

  試題4~7考查面試者對內(nèi)存操作的理解程度,基本功扎實的面試者一般都能正確的回答其中50~60的錯誤。但是要完全解答正確,卻也絕非易事。

  對內(nèi)存操作的考查主要集中在:

  (1)指針的理解;

  (2)變量的生存期及作用范圍;

  (3)良好的動態(tài)內(nèi)存申請和釋放習慣。

  再看看下面的一段程序有什么錯誤:

  swap( int* p1,int* p2 )

  {

  int *p;

  *p = *p1;

  *p1 = *p2;

  *p2 = *p;

  }

  在swap函數(shù)中,p是一個“野”指針,有可能指向系統(tǒng)區(qū),導致程序運行的崩潰。在VC++中DEBUG運行時提示錯誤“Access Violation”。該程序應該改為:

  swap( int* p1,int* p2 )

  {

  int p;

  p = *p1;

  *p1 = *p2;

  *p2 = p;

  }

【C++程序員應聘常見筆試題】相關文章:

聯(lián)想C++筆試題08-28

汽車銷售應聘常見面試題10-10

應聘淘寶客服的常見面試題08-05

騰訊C++方向程序員面試07-21

C++程序員求職信范文10-18

賽門鐵克的常見筆試題07-23

經(jīng)典常見的面試試題09-14

應聘中常見的英語問題06-09

應聘面試常見問題10-25

常見的應聘自我介紹09-19