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

用戶名:
密碼:
類型:
注冊
 設為首頁   加入收藏   聯(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
唐山瑞津酒 酒店實習生 2012/12/14
哈爾濱哈飛 鉗工 2012/8/20
勞聯(lián)環(huán)球國 誠聘裝配工 2012/8/4
灤縣友朋汽 汽車維修技師 2012/7/15
河北元道通 移動基站維護 2012/6/26
唐山水峰商 店面銷售 2012/6/19
      您的位置:唐山技校網(wǎng)>> 其他 >>IT公司筆試題總結(二)——北大青鳥


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

IT公司筆試題總結(二)——北大青鳥報名 已閱[3736]次[2012/10/17]

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

  1. 找錯

  試題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是一個“野”指針,有可能指向系統(tǒng)區(qū),導致程序運行的崩潰。在VC++中DEBUG運行時提示錯誤“Access Violation”。該程序應該改為:

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

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

  test3: if(strlen(str1) <= 10)應改為if(strlen(str1) < 10),因為strlen的結果未統(tǒng)計'\0'所占用的1個字節(jié)

  剖析:

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

  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分
  //為了實現(xiàn)鏈式操作,將目的地址返回,加3分!

  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版本,應該也可以寫出一個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)被釋放。這是許多程序員常犯的錯誤,其根源在于不理解變量的生存期。

  試題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( int* p1,int* p2 )
  {
  int p;
  p = *p1;
  *p1 = *p2;
  *p2 = p;
  }

  2. 內(nèi)功題

  試題1:分別給出BOOL,int,float,指針變量 與“零值”比較的 if 語句(假設變量名為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),上述寫法雖然程序都能正確運行,但是未能清晰地表達程序的意思。

  一般的,如果想讓if判斷一個變量的“真”、“假”,應直接使用if(var)、if(!var),表明其為“邏輯”判斷;如果用if判斷一個數(shù)值型變 量(short、int、long等),應該用if(var==0),表明是與0進行“數(shù)值”上的比較;而判斷指針則適宜用if(var==NULL), 這是一種很好的編程習慣。

  浮點型變量并不精確,所以不可將float變量用“==”或“!=”與數(shù)字比較,應該設法轉化成“>=”或“<=”形式。如果寫成if (x == 0.0),則判為錯,得0分。

  試題2:以下為Windows NT下的32位C++程序,請計算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ù)體內(nèi),數(shù)組名失去了本身的內(nèi)涵,僅僅只是一個指針;在失去其內(nèi)涵的同時,它還失去了其常量特性,可以作自增、自減等操作,可以被修改。

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

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

  例如:

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

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

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

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

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

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


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

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

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

  聯(lián)系QQ:736798197


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



熱門標簽:
唐山,北大青鳥,IT



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

更多技!


 相關專業(yè)技校

·唐山焊工專修學校  

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

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

·木林樹人動漫培訓學校   影視動畫

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

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

·唐山公路技工學校   工程造價, 土木工程, 會計電算化

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

更多技!


技校 | 關于技校網(wǎng) | 技校網(wǎng)廣告服務| 技校網(wǎng)匯款信息 | 技校網(wǎng)會員服務 | 技校網(wǎng)免責聲明 |
CopyRight 2009-2010 All rights reserved 版權所有 唐山創(chuàng)元教育咨詢有限公司 未經(jīng)允許 請勿復制或鏡像 技校網(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
东辽县| 汉寿县| 化德县| 济宁市| 城口县| 景谷| 永顺县| 临朐县| 普陀区| 金华市| 长兴县| 师宗县| 册亨县| 白水县| 鲁山县| 大同县| 东城区| 樟树市| 牙克石市| 阿拉尔市| 招远市| 绥滨县| 成都市| 临高县| 孝义市| 武城县| 漳浦县| 东辽县| 关岭| 凉城县| 那曲县| 成安县| 昭苏县| 和平县| 台安县| 安义县| 藁城市| 偏关县| 图木舒克市| 江川县| 桓台县|