亚洲日韩人妻在线看|精品久久综合一区二区|久久久亚州AV成人网站|手机看片精品高清国产日韩|国产剧情福利AV一区二区|九九热线精品视频16首页|国产精品亚洲玖玖玖在线靠爱|国产一区日韩欧美高清在线观看

用戶名:
密碼:
類型:
注冊
 設(shè)為首頁   加入收藏   聯(lián)系我們
 
 
 
環(huán)渤海建材網(wǎng)

招聘企業(yè)

招聘職位

日期
唐山鑫淼金 電工兼職IT 2013/3/30
唐山創(chuàng)元教 網(wǎng)站推廣 2013/2/17
唐山創(chuàng)元教 網(wǎng)站編輯 2013/2/17
唐山瑞津酒 酒店實(shí)習(xí)生 2012/12/14
哈爾濱哈飛 鉗工 2012/8/20
勞聯(lián)環(huán)球國 誠聘裝配工 2012/8/4
灤縣友朋汽 汽車維修技師 2012/7/15
河北元道通 移動基站維護(hù) 2012/6/26
唐山水峰商 店面銷售 2012/6/19
      您的位置:唐山技校網(wǎng)>> 其他 >>IT公司筆試題總結(jié)(二)——北大青鳥


IT公司筆試題總結(jié)(二)——北大青鳥

IT公司筆試題總結(jié)(二)——北大青鳥報(bào)名 已閱[3748]次[2012/10/17]

內(nèi)容摘要:
隨著IT產(chǎn)業(yè)的迅速發(fā)展,學(xué)習(xí)IT專業(yè)人員的迅速增多,大量IT相關(guān)專業(yè)人才的流入職場,使就業(yè)壓力不斷增大,下面北大青鳥為你總結(jié)了一些IT公司筆試題,希望對你的面試有幫助。
正文:
      北大青鳥為你總結(jié)了一些IT公司筆試題

  1. 找錯(cuò)

  試題1:

  Void test1()
  {
  char string[10];
  char* str1="0123456789";
  strcpy(string, str1);
  }

  試題2:

  Void test2()
  {
  char string[10], str1[10];
  for(I=0; I<10;I++)
  {
  str1[i] ='a';
  }
  strcpy(string, str1);
  }

  試題3:

  Void test3(char* str1)
  {
  char string[10];
  if(strlen(str1) <= 10)
  {
  strcpy(string, str1);
  }
  }

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

  解答:
  test1: 字符串str1需要11個(gè)字節(jié)才能存放下(包括末尾的'\0'),而string只有10個(gè)字節(jié)的空間,strcpy會導(dǎo)致數(shù)組越界

  test2: 如果面試者指出字符數(shù)組str1不能在數(shù)組內(nèi)結(jié)束可以給3分;如果面試者指出strcpy(string, str1)調(diào)用使得從str1內(nèi)存起復(fù)制到string內(nèi)存起所復(fù)制的字節(jié)數(shù)具有不確定性可以給7分,在此基礎(chǔ)上指出庫函數(shù)strcpy工作方式的給10分

  test3: if(strlen(str1) <= 10)應(yīng)改為if(strlen(str1) < 10),因?yàn)閟trlen的結(jié)果未統(tǒng)計(jì)'\0'所占用的1個(gè)字節(jié)

  剖析:

  考查對基本功的掌握:
  (1)字符串以'\0'結(jié)尾;
  (2)對數(shù)組越界把握的敏感度;
  (3)庫函數(shù)strcpy的工作方式,如果編寫一個(gè)標(biāo)準(zhǔn)strcpy函數(shù)的總分值為10,下面給出幾個(gè)不同得分的答案:

  2分
  void strcpy( char *strDest, char *strSrc )
  {
  while( (*strDest++ = * strSrc++) != '\0' );
  }

  4分
  void strcpy( char *strDest, const char *strSrc )
  //將源字符串加const,表明其為輸入?yún)?shù),加2分
  {
  while( (*strDest++ = * strSrc++) != '\0' );
  }

  7分
  void strcpy(char *strDest, const char *strSrc)
  {
  //對源地址和目的地址加非0斷言,加3分
  assert( (strDest != NULL) && (strSrc != NULL) );
  while( (*strDest++ = * strSrc++) != '\0' );
  }

  10分
  //為了實(shí)現(xiàn)鏈?zhǔn)讲僮,將目的地址返回,?分!

  char * strcpy( char *strDest, const char *strSrc )
  {
  assert( (strDest != NULL) && (strSrc != NULL) );
  char *address = strDest;
  while( (*strDest++ = * strSrc++) != '\0' );
  return address;
  }
  (4)對strlen的掌握,它沒有包括字符串末尾的'\0'。
  讀者看了不同分值的strcpy版本,應(yīng)該也可以寫出一個(gè)10分的strlen函數(shù)了,完美的版本為

  int strlen( const char *str ) //輸入?yún)?shù)const

  {
  assert( strt != NULL ); //斷言字符串地址非0

  int len;
  while( (*str++) != '\0' )
  {
  len++;
  }
  return len;
  }

  試題4:

  void GetMemory( char *p )
  {
  p = (char *) malloc( 100 );
  }

  void Test( void )
  {
  char *str = NULL;
  GetMemory( str );
  strcpy( str, "hello world" );
  printf( str );
  }

  試題5:

  char *GetMemory( 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( &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)的局部自動變量,在函數(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) 良好的動態(tài)內(nèi)存申請和釋放習(xí)慣。

  再看看下面的一段程序有什么錯(cuò)誤:

  swap( int* p1,int* p2 )
  {
  int *p;
  *p = *p1;
  *p1 = *p2;
  *p2 = *p;
  }

  swap( int* p1,int* p2 )
  {
  int p;
  p = *p1;
  *p1 = *p2;
  *p2 = p;
  }

  2. 內(nèi)功題

  試題1:分別給出BOOL,int,float,指針變量 與“零值”比較的 if 語句(假設(shè)變量名為var)

  解答:

  BOOL型變量:if(!var)
  int型變量: if(var==0)
  float型變量:const float EPSINON = 0.00001;   if ((x >= - EPSINON) && (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 == 0.0),則判為錯(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è)指針;在失去其內(nèi)涵的同時(shí),它還失去了其常量特性,可以作自增、自減等操作,可以被修改。

  數(shù)組名的本質(zhì)如下:

  (1) 數(shù)組名指代一種數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)就是數(shù)組;

  例如:

  char str[10];
  cout << sizeof(str) << endl;

  輸出結(jié)果為10,str指代數(shù)據(jù)結(jié)構(gòu)char[10]。

  (2) 數(shù)組名可以轉(zhuǎn)換為指向其指代實(shí)體的指針,而且是一個(gè)指針常量,不能作自增、自減等操作,不能被修改;

  char str[10];
  str++; //編譯出錯(cuò),提示str不是左值

  (3) 數(shù)組名作為函數(shù)形參時(shí),淪為普通指針。

  Windows NT 32位平臺下,指針的長度(占用內(nèi)存的大。4字節(jié),故sizeof( str ) 、sizeof ( p ) 都為4。


  學(xué)校地址:唐山市路北區(qū)華北煤炭醫(yī)學(xué)院西校區(qū)籃球場以南,北大青鳥(唐山弘基)授權(quán)培訓(xùn)中心。

  乘車路線:市內(nèi)乘7、16、61、41、114、35、77路等建設(shè)路沿線公交車均可到達(dá),煤醫(yī)道口站下車

  聯(lián)系電話:15132527389   13832811994

  聯(lián)系QQ:736798197


全國統(tǒng)一咨詢熱線: 400-808-8566



熱門標(biāo)簽:
唐山,北大青鳥,IT



 網(wǎng)上報(bào)名(請?jiān)敿?xì)填寫聯(lián)系方式,專業(yè)老師會盡快與你聯(lián)系,做詳細(xì)的解答!)
 學(xué)校名稱: *  所報(bào)專業(yè): *
 姓    名: *  Q     Q: *(注意:只能在此處輸入數(shù)字!)
 性    別: *  文化程度: *
 聯(lián)系電話: *(注意:只能在此處輸入數(shù)字!)
身 份 證:
 家庭住址: *
 驗(yàn)證碼: *
 
 相關(guān)技校
  ·唐山長寧中專——吉林醫(yī)藥學(xué)院2013年成人高等教育招生簡章   ·將飲食作為一種生活   ·“食譜”新定位——短期營養(yǎng)配餐培訓(xùn)   ·西式面點(diǎn)學(xué)習(xí)到唐山勞動高級技工學(xué)校(技師學(xué)院)   ·唐山在崗人員培訓(xùn)應(yīng)該去哪里   ·高級烹調(diào)師從唐山勞動高級技工學(xué)校起步   ·唐山勞動高級技工學(xué)校(技師學(xué)院)精品課程   ·唐山勞動高級技工學(xué)校(技師學(xué)院)開設(shè)專業(yè)  

更多技!


 相關(guān)專業(yè)技校

·唐山焊工專修學(xué)校  

·唐山實(shí)力電腦學(xué)校   辦公自動化, 平面設(shè)計(jì), 室內(nèi)裝潢

·唐山今典裝飾設(shè)計(jì)專修學(xué)校(唐山今典電腦)   平面設(shè)計(jì), 室內(nèi)裝潢, 建筑設(shè)計(jì)

·木林樹人動漫培訓(xùn)學(xué)校   影視動畫

·唐山東波威娜美容美發(fā)化妝藝術(shù)學(xué)校2011招生簡章  

·唐山秀芳四姐妹美容美發(fā)學(xué)校   美容美發(fā)

·唐山公路技工學(xué)校   工程造價(jià), 土木工程, 會計(jì)電算化

·唐山工貿(mào)中等專業(yè)學(xué)校   機(jī)電一體化, 數(shù)控車工, 廚師,

更多技!


技校 | 關(guān)于技校網(wǎng) | 技校網(wǎng)廣告服務(wù)| 技校網(wǎng)匯款信息 | 技校網(wǎng)會員服務(wù) | 技校網(wǎng)免責(zé)聲明 |
CopyRight 2009-2010 All rights reserved 版權(quán)所有 唐山創(chuàng)元教育咨詢有限公司 未經(jīng)允許 請勿復(fù)制或鏡像 技校網(wǎng)備案序號: 冀ICP備11020808號-5 冀公網(wǎng)安備 13024002000223號
電話:400-808-8566 傳真:0315-3859044
400-8088-566 0315-3859044 工作日:8:00-21:30
周六日:8:00-21:30