一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

成語(yǔ)故事典故以及釋讀

時(shí)間:2025-11-28 11:13:32 成語(yǔ)故事 我要投稿

成語(yǔ)故事典故以及釋讀

  一、問(wèn)答題:50分

成語(yǔ)故事典故以及釋讀

  1、寫(xiě)出new和malloc、delete和free的區別

  從面向對象來(lái)說(shuō),new/delete和malloc/free的區別是:malloc/free只是單純的進(jìn)行內存空間的分配和釋放,而使用new/delete時(shí),不僅分配了內存空間,若new/delete的是一個(gè)類(lèi),還會(huì )調用類(lèi)(經(jīng)測試,基本類(lèi)型好像不會(huì )進(jìn)行默認初始化)的構造函數或析構函數。

  簡(jiǎn)單來(lái)說(shuō),兩者的區別主要有:

  1. malloc與free是C++/C語(yǔ)言的標準庫函數,new/delete是C++的運算符,與”+“、”-“、”*“、”/“有一樣的地位。

  2. new/delete是可以重載的,而重載之后,就成為了函數。

  3. malloc在申請內存的時(shí)候,必須要提供申請的長(cháng)度,而且返回的指針是void*型,必須要強轉成需要的類(lèi)型。

  4. 當new/delete在類(lèi)中被重載的時(shí)候,可以自定義申請過(guò)程,比如記錄所申請內存的總長(cháng)度,以及跟蹤每個(gè)對象的指針。

  5. new/delete,其實(shí)內部也調用了malloc/free。

  兩者的共同點(diǎn)有:

  1. 都必須配對使用,防止內存泄露。

  2. 都可用于申請動(dòng)態(tài)內存和釋放內存,都是在堆中分配內存。

  3. free和delete可以釋放NULL指針。

  2、寫(xiě)兩個(gè)繼承類(lèi),解釋虛表指針和虛表的作用

  每一個(gè)類(lèi)都有虛表。

  虛表可以繼承,如果子類(lèi)沒(méi)有重寫(xiě)虛函數,那么子類(lèi)虛表中仍然會(huì )有該函數的地址,只不過(guò)這個(gè)地址指向的是基類(lèi)的虛函數實(shí)現。如果基類(lèi)有3個(gè)虛函數,那么基類(lèi)的虛表中就有三項(虛函數地址),派生類(lèi)也會(huì )有虛表,至少有三項,如果重寫(xiě)了相應的虛函數,那么虛表中的地址就會(huì )改變,指向自身的虛函數實(shí)現。如果派生類(lèi)有自己的虛函數,那么虛表中就會(huì )添加該項。

  派生類(lèi)的虛表中虛函數地址的排列順序和基類(lèi)的虛表中虛函數地址排列順序相同。

  3、寫(xiě)出static的用法和作用

  static 是C++中很常用的修飾符,它被用來(lái)控制變量的存儲方式和可見(jiàn)性。函數內部定義的變量,在程序執行到它的定義處時(shí),編譯器為它在

  棧上分配空間,大家知道,函數在棧上分配的空間在此函數執行結束時(shí)會(huì )釋放掉,這樣就產(chǎn)生了一個(gè)問(wèn)題: 如果想將函數中此變量的值保存至

  下一次調用時(shí),如何實(shí)現? 最容易想到的方法是定義一個(gè)全局的變量,但定義為一個(gè)全局變量有許多缺點(diǎn),最明顯的缺點(diǎn)是破壞了此變量的

  訪(fǎng)問(wèn)范圍(使得在此函數中定義的變量,不僅僅受此函數控制)。 需要一個(gè)數據對象為整個(gè)類(lèi)而非某個(gè)對象服務(wù),同時(shí)又力求不破壞類(lèi)的封裝

  性,即要求此成員隱藏在類(lèi)的內部,對外不可見(jiàn)。

  4、寫(xiě)出計算機的存儲器層次,及原因

  以處理器為中心,計算機系統的存儲依次為寄存器、高速緩存、主存儲器、磁盤(pán)緩存、磁盤(pán)和可移動(dòng)存儲介質(zhì)等7個(gè)層次。距離處理器越近的存儲工作速度越高,容量越小。其中,寄存器、高速緩存、主存儲器為操作系統存儲管理的管轄范圍,磁盤(pán)和可移動(dòng)存儲介質(zhì)屬于操作系統設備管理的管轄范圍。

  5、寫(xiě)出對windows中的句柄的理解

  所謂句柄實(shí)際上是一個(gè)數據,是一個(gè)Long (整長(cháng)型)的數據。

  句柄是WONDOWS用來(lái)標識被應用程序所建立或使用的對象的唯一整數,WINDOWS使用各種各樣的句柄標識諸如應用程序實(shí)例,窗口,控制,位圖,GDI對象等等。WINDOWS句柄有點(diǎn)象C語(yǔ)言中的文件句柄。

  二、算法題:30分

  1、計算字符串的相似度-《編程之美》3.3

  int calStringDis(string strA, int pABegin,int pAEnd,string strB, int pBBegin,int pBEnd)

  {

  if (pABegin > pAEnd)

  {

  if (pBBegin > pBEnd)

  return 0;

  else

  return pBEnd – pBBegin + 1;

  }

  if (pBBegin > pBEnd)

  {

  if(pABegin > pAEnd)

  return 0;

  else

  return pAEnd – pABegin + 1;

  }

  if (strA[pABegin] == strB[pBBegin])

  {

  return calStringDis(strA,pABegin+1,pAEnd,strB,pBBegin+1,pBEnd);

  }

  else

  {

  int t1 = calStringDis(strA,pABegin+1,pAEnd,strB,pBBegin+2,pBEnd);

  int t2 = calStringDis(strA,pABegin+2,pAEnd,strB,pBBegin+1,pBEnd);

  int t3 = calStringDis(strA,pABegin+2,pAEnd,strB,pBBegin+2,pBEnd);

  return minValue(t1,t2,t3)+1;

  }

  }

  2、判斷鏈表是否存在閉環(huán)

  /pic/p>

  /pic/p>

  int HasLoop(LinkList L)

  {

  int step1 = 1;

  int step2 = 2;

  LinkList p = L;

  LinkList q = L;

  /pic/p>

  while (p != NULL && q != NULL && q->next != NULL)

  {

  p = p->next;

  if (q->next != NULL)

  q = q->next->next;

  printf("p:%d, q:%d \n", p->data, q->data);

  if (p == q)

  return 1;

  }

  return 0;

  }

  三、系統設計題:選做一題 20分

  1、連連看游戲中,寫(xiě)出兩種算法的大致原理,來(lái)判斷兩個(gè)圖案是否能夠連線(xiàn)。并詳細解釋?zhuān)瑢?xiě)出其中一個(gè)算法的偽代碼。

  2、解釋 延遲過(guò)程調用deferred procedure call (DPC)和異步過(guò)程調用asynchronous procdure call (APC)的工作機制。詳細描述利用APC實(shí)現DLL注入。

【成語(yǔ)故事典故以及釋讀】相關(guān)文章:

指鹿為馬的成語(yǔ)故事典故08-31

關(guān)于智謀典故成語(yǔ)故事05-11

關(guān)于動(dòng)物的成語(yǔ)故事典故06-03

成語(yǔ)故事之大義滅親的典故09-05

歷史的典故09-20

經(jīng)典的歷史典故05-29

經(jīng)典的歷史典故02-06

歷史典故11-17

歷史典故:外國典故32個(gè)02-06

酒的歷史典故10-10

  • 相關(guān)推薦
一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看