1. 圣石小子粤语,别样幸福全集,箭在弦上大结局,我想打死你,星光灿烂猪八戒,菲律宾美人鱼50集国语,神探夏洛克 第四季,市委书记晚上不打招呼调研被拦
      求職寶典

      6.2 筆試真題 & 詳解

      題目一:

      1.燒一根不均勻的繩子,從頭燒到尾總共需要 1 個小時,問如何用燒繩子的方法來確定半小時的時間呢?

      2.10 個海盜搶到了100 顆寶石,每一顆都一樣大小且價值連城。他們決定這么分:

      (1)抽簽決定自己的號碼(1~10);

      (2)首先,由1 號提出分配方案,然后大家表決,當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔進大海喂鯊魚;

      (3)如果1 號死后,再由2 號提出分配方案,然后剩下的4 個人進行表決,當且僅當超過半數的人同意時,按照他的方案進行分配,否則將被扔入大海喂鯊魚;

      (4)依此類推

      條件:每個海盜都是很聰明的人,都能很理智地做出判斷,從而做出選擇。

      問題:第一個海盜提出怎樣的分配方案才能使自己的收益最大化?

      3.為什么下水道的蓋子是圓的?

      4.中國有多少輛汽車?

      5.你讓工人為你工作7 天,回報是一根金條,這根金條平分成相連的7 段,你必須在每天結束的時候給他們一段金條。如果只允許你兩次把金條弄斷,你如何給你的工人付費?

      6.有一輛火車以每小時15 公里的速度離開北京直奔廣州,同時另一輛火車以每小時20 公里的速度從廣州開往北京。如果有一只鳥,以30 公里每小時的速度和兩輛火車同時啟動,從北京出發,碰到另一輛車后就向相反的方向返回去飛,就這樣依次在兩輛火車之間來回地飛,直到兩輛火車相遇。請問, 這只鳥共飛行了多長的距離?

      7.你有兩個罐子以及50 個紅色彈球和50 個藍色彈球,隨機選出一個罐子,隨機選出一個彈球放入罐子,怎樣給出紅色彈球最大的選中機會?在你的計劃里,得到紅球的幾率是多少?

      8.想像你站在鏡子前,請問,為什么鏡子中的影像可以左右顛倒,卻不能上下顛倒呢?

      9.如果你有無窮多的水,一個3 公升的提捅,一個5 公升的提捅,兩只提捅形狀上下都不均勻,問你如何才能準確稱出4 公升的水?

      10.你有一桶果凍,其中有黃色、綠色、紅色三種,閉上眼睛抓取同種顏色的兩個。抓取多少次就可以確定你肯定有兩個同一顏色的果凍?

      11.連續整數之和為1000 的共有幾組?

      12.從同一地點出發的相同型號的飛機,可是每架飛機裝滿油只能繞地球飛半周,飛機之間可以加油,加完油的飛機必須回到起點。問至少要多少架次,才能滿足有一架繞地球一周。

      參考答案:

      1.兩邊一起燒。

      2.96,0,1,0,1,0,1,0,1,0。

      3.因為口是圓的。

      4.很多。

      5.分1,2,4。

      6.6/7 北京到廣州的距離。

      7.100%。

      8.平面鏡成像原理(或者是“眼睛是左右長的”)。

      9.3 先裝滿,倒在5 里,再把3 裝滿,倒進5 里。把5 里的水倒掉,把3 里

      剩下的水倒進5 里,再把3 裝滿,倒進5 里,ok!

      10.一次。

      11.首先1000 為一個解。連續數的平均值設為x,1000 必須是x 的整數倍。

      假如連續數的個數為偶數個,x 就不是整數了。x 的2 倍只能是5,25,125 才行。

      因為平均值為12.5,要連續80 個達不到。125/2=62.5 是可以的。即62,63,61,

      64,等等。連續數的個數為奇數時,平均值為整數。1000 為平均值的奇數倍。

      1000=2×2×2×5×5×5;x 可以為2,4,8,40,200 排除后剩下40 和200 是可以的。所以答案為平均值為62.5,40,200,1000 的4 組整數。

      12.答案是5 架次。一般的解法可以分為如下兩個部分:

      (1)直線飛行

      一架飛機載滿油飛行距離為1,n 架飛機最遠能飛多遠?在不是兜圈沒有迎頭接應的情況,這問題就是n 架飛機能飛多遠?存在的極值問題是不要重復飛行,比如兩架飛機同時給一架飛機加油且同時飛回來即可認為是重復,或者換句話說,離出發點越遠,在飛的飛機就越少,這個極值條件是顯然的,因為n 架飛機帶的油是一定的,如重復,則浪費的油就越多。比如最后肯定是只有一架飛機全程飛行,注意“全程”這兩個字,也就是不要重復的極值條件。如果是兩架飛機的話,肯定是一架給另一架加滿油,并使剩下的油剛好能回去,就說第二架飛機帶的油耗在3 倍于從出發到加油的路程上,有三架飛機第三架帶的油耗在倍于從出發到其加油的路程上,所以n 架飛機最遠能飛行的距離為s=1+1/3+?+1/(2n+1)這個級數是發散的,所以理論上只要飛機足夠多最終可以使一架飛機飛到無窮遠,當然實際上不可能一架飛機在飛行1/(2n+1)時間內同時給n個飛機加油。

      (2)可以迎頭接應加油

      一架飛機載滿油飛行距離為1/2,最少幾架飛機能飛行距離1?也是根據不要重復飛行的極值條件,得出最遠處肯定是只有一架飛機飛行,這樣得出由1/2處對稱兩邊1/4 肯定是一架飛機飛行,用上面的公式即可知道一邊至少需要兩架飛機支持,(1/3+1/5)/2>1/4(左邊除以2 是一架飛機飛行距離為1/2),但是有一點點剩余,所以想像為一個滑輪(中間一個飛機是個繩子,兩邊兩架飛機是個棒)的話,可以滑動一點距離,就說加油地點可以在一定距離內變動(很容)易算出來每架飛機的加油地點和加油數量,等等

      題目二:

      1寫出下列算法的時間復雜度。

      (1)冒泡排序;

      (2)選擇排序;

      (3)插入排序;

      (4)快速排序;

      (5)堆排序;

      (6)歸并排序;

      2寫出下列程序在X86上的運行結果。

      struct mybitfields

      {

      unsigned short a : 4;

      unsigned short b : 5;

      unsigned short c : 7;

      }test

      void main(void)

      {

      int i;

      test.a=2;

      test.b=3;

      test.c=0;

      i=*((short *)&test);

      printf("%d\n",i);

      }

      3寫出下列程序的運行結果。

      unsigned int i=3;

      cout<<i * -1;

      4寫出下列程序所有可能的運行結果。

      int a;

      int b;

      int c;

      void F1()

      {

      b=a*2;

      a=b;

      }

      void F2()

      {

      c=a+1;

      a=c;

      }

      main()

      {

      a=5;

      //Start F1,F2 in parallel

      F1(); F2();

      printf("a=%d\n",a);

      }

      5考察了一個CharPrev()函數的作用。

      6對 16 Bits colors的處理,要求:

      (1)Byte轉換為RGB時,保留高5、6bits;

      (2)RGB轉換為Byte時,第2、3位置零。

      7一個鏈表的操作,注意代碼的健壯和安全性。要求:

      (1)增加一個元素;

      (2)獲得頭元素;

      (3)彈出頭元素(獲得值并刪除)。

      8一個給定的數值由左邊開始升位到右邊第N位,如 0010<<1 == 0100 或者 0001 0011<<4 == 0011 0000

      請用C或者C++或者其他X86上能運行的程序實現。

      附加題(只有在完成以上題目后,才獲準回答)

      In C++, what does "explicit" mean? what does "protected" mean?

      題目三:

      某棟寫字樓6層,有1部電梯,請編寫一個電梯仿真程序

      A.考慮如下條件

      1.每層樓都有上行和下行兩個按鍵

      2. 電梯一開始停在1層

      3. 電梯可以容納8個人

      4. 乘坐電梯的客人的請求頻率,時間間隔和到達樓層是隨機的

      5. 電梯的上下一層需要1秒

      6. 電梯空間有限,同時只能容納一定數量的客人,如果已經達到人數額度,電梯將不理會任何請求

      7.不考慮客人請求當前樓層和不請求樓層的情況

      8. 電梯的響應延遲為0(比如,電梯往3樓上行,3樓的客人在電梯到達3樓之前按上行鍵,程序有權調度電梯在3樓開門)

      9. 電梯的開關門時間和客人上下電梯時間為0,勻速運行

      10. 電梯調度算法不能預讀尚未發生的請求(比如在10秒的時候電梯無法預知11秒時某層客人的請求)

      11.客人請求發生在整數秒

      B.目標

      1. 在運送所有客人到達目標樓層的前提下電梯的總行程盡可能小

      2. 設計一個接口,實現調度算法的可替換性(比如,通過重新實現該接口可以使系統使用其它算法)

      C. 輸入和輸出

      輸入:

      input.txt

      客人的請求序列,格式為到達時間,所在樓層,請求樓層,假設該輸入是按照時間遞增的

      比如:

      input.txt

      1 2 3

      2 3 1

      在1秒的時候有客人請求從2層到3層,2秒的時候有客人請求從3層到1層

      輸出: 設計一種簡單實用的輸出可以清晰地反映電梯的運轉情況

      題目四:

      選擇題部分

      1. 以下哪些不是棧的基本操作

      A. push

      B. pop

      C. 判斷棧是否為空

      D. 棧排序

      2.兩個有序數組 大小都是 n,現在要對它們進行合并排序。 問最壞情況下,需要比較多少次?

      A. 2n+1

      B. 2n

      C.2n-1

      D…記不清了

      3. (an 表示第 n 個常數, x^5 表示 x 的 5 次方)

      f(x)= a0*x^0 + a1*x^1+a2*x^2+……an*x^n

      對于固定的 n,f(x)的時間復雜度以及空間復雜度分別是多少?

      A. o(n^2),o(n)

      B.o(n),o(1)

      C

      D 都記不住了

      4.是個概率題,大概意思是這樣的

      現在有 800 個人,但是只有 400 份獎品,有一對夫婦都參加抽獎,但是他們最多抽到一份獎,現在問

      他們倆能抽到一份獎的概率是多少?

      A.0.5

      B.0.75

      C. (0.5,0.75)

      D. (0.75,1)

      5. 現有一鏈表當前指示節點為 currentNode, 生成了一個新節點 newNode,問要把 newNode 插入到currentNode 之后 ,該怎么做?

      A…

      B…

      C. newNode->next = currentNode->next, currentNode->next = newNode.

      D…

      6. 問以下哪些特征不是 interpreted language(解釋型語言)所獨有的:

      (我們知道一般分為兩種:解釋型語言 VB,Shell,批處理等;編譯型語言,C,java 等。各有優點 )

      A. 平臺無關性。(明顯不對,因為 java 才是平臺無關的)

      B. 執行速度較快(這個問題,以前做作業時就沒爭論清楚,自己感覺解釋型語言不需要編譯,速度能快一些,但是重復執行時,編譯型語言只需要編譯一次,效率高……)

      C. 可以定義動態變量(應該兩種都可以)

      D.以上都不對

      7.給了一個二叉樹,讓求后序遍歷的結果。

      這個題如果知道后序遍歷,肯定就可以做出來了。

      盡管不難 還是要搞清楚三者的區別(哈哈)

      先序 左根右

      中序 根左右

      后序 左右根

      8.問以下幾種排序方法,在最壞情況下時間復雜度小于 o(n^2)的是哪一種(這個題目記得不是很清楚了)

      A.快排

      B.插入排序

      C.合并排序

      D.棧排序

      9. 現有 n+1 這么大的存儲空間(可以理解有這么一個大小為 n+1 的數組),中間存了[1,n+1]范圍內的n 個數,說明丟失了一個數,現在要找出這個丟失的數,問最好情況下時間復雜度是多少

      A.o(1)

      B.o(n)

      C.o(n^2)

      D.o(nlogn)

      10.是一道程序題,由于太長,無從記憶……

      編程題部分用 C,C++,C#,或 Java 中的一種來編寫以下程序。

      現在給你一個 字符串,其中特殊的字符只有兩種 space(空格)(" "),newline(換行)(/n)。 現在讓你來去除其中多余的空格。具體要求

      1.連續的空格只能當保留其中一個

      2. 該字符串的開頭不能有空格

      3. 該字符串的結尾不能有空格

      4. 任何/n 的前面或才后面都不能存在多余的空格

      為了得到很高的分數,還需要滿足以下條件

      1.不能申請新的字符串空間

      2.對給出的字符串只能遍歷一遍

      不能使用任何庫函數。

      我們給了兩個供你調用的函數

      int intIsSpace(char str)()

      當字符不為空格時,將返回 0

      當字符為空格時,將返回其它任意非 0 值

      int intIsNewLine(char str)()當字符不為換行時,將返回 0

      當字符為換行時,將返回其它任意非 0 值

      程序編寫完成后,請編寫測試用例,并說明它完成的作用。

      題目五:

      Questions #1

      1) How would you calculate the hash value of a string?

      2) List two major requirements of a hashing function

      Questions #2: Logical expressions

      Assuming A, B, C are conditions. You can write logical expression that yields specific results. For example,

      A

      B

      Result

      0

      0

      0

      0

      1

      1

      1

      0

      1

      1

      1

      1

      Expression “

      A or B” will give above result

      A

      B

      Result

      0

      0

      0

      0

      1

      1

      1

      0

      0

      1

      1

      0

      Expression “

      (not A) and B” will give above result

      Please write the simplest logical expression that will give the following results (using only

      and, or, not operators)

      A

      B

      C

      Result

      0

      0

      0

      0

      0

      0

      1

      1

      0

      1

      0

      1

      0

      1

      1

      0

      1

      0

      0

      1

      1

      0

      1

      0

      1

      1

      0

      0

      1

      1

      1

      1

      Expression:

      A

      B

      C

      Result

      0

      0

      0

      0

      0

      0

      1

      0

      0

      1

      0

      1

      0

      1

      1

      1

      1

      0

      0

      0

      1

      0

      1

      1

      1

      1

      0

      0

      1

      1

      1

      1

      Expression:

      Please rewrite the following If statements (in C) into just one If statement

      For example,

      if ( a > 10 )

      {

      if ( b < 5 )

      {

      Run();

      }

      }

      can be rewritten as if ( a > 10 && b < 5 ) { Run(); }

      Please rewrite the following if statement:

      if ( a > 10 && b < 5)

      {

      if ( a > 15 )

      {

      Run();

      }

      }

      else if ( b > 6 )

      {

      Run();

      }


      Questions #3

      Please write a function in C to copy one string to another, while return the largest letter in the string. Please do not use any C runtime function.

      char StringCopy( char *pszSrc, char *pszDst, int maxSize )

      pszSrc: points to the source string

      pszDst: points to the target string, where source string will be copied to

      maxSize: max. number of characters allowed to be copied

      The following code will display “Z”

      char sz[100];

      char ch;

      ch = StringCopy( “Test Zoo”, sz );

      printf( ch );

      Questions #4

      Binary tree can be used for storing and searching data. Please draw a binary tree, constructed by entering the following numbers in sequence:

      8, 3, 10, 50, 9, 20, 1, -5, 2, 70, 35, 45, -10, 49, 0

      Please draw a balanced binary tree using the same set of numbers as above.

      Questions #5

      Please define the data structure required to store a linked list of integer and write a routine to delete an integer from a given linked list of integers.

      Questions #6

      Please explain the difference between array and link-list.

      If you are asked to implement a stack, will you use array, or link-list, or both? What are the limitations of using each one?

      Questions #7 (Windows Programming)

      What is a message pump in Windows?

      Please list names of Windows message that is sent when:

      • A window is created: ______________________
      • A window needs to be painted: ______________________
      • A window is destroyed: ______________________

      題目六:

      1.改錯

      #include <stdio.h>

      #include <String.h>

      class CBuffer

      {

      char * m_pBuffer;

      int m_size;

      public:

      CBuffer()

      {

      m_pBuffer=NULL;

      }

      ~CBuffer()

      {

      Free();

      }

      void Allocte(int size) (3) {

      m_size=size;

      m_pBuffer= new char[size];

      }

      private:

      void Free()

      {

      if(m_pBuffer!=NULL)

      {

      delete m_pBuffer;

      m_pBuffer=NULL;

      }

      }

      public:

      void SaveString(const char* pText) const

      {

      strcpy(m_pBuffer, pText);

      }

      char* GetBuffer() const

      {

      return m_pBuffer;

      }};

      void main (int argc, char* argv[])

      {

      CBuffer buffer1;

      buffer1.SaveString("Microsoft");

      printf(buffer1.GetBuffer());

      }

      答:改正后

      主要改正 SaveString 函數

      void SaveString(const char* pText) const

      {

      strcpy(m_pBuffer, pText);

      }

      改為

      void SaveString(const char* pText) (1)

      {

      Allocte(strlen(pText)+1); (2)

      strcpy(m_pBuffer, pText);

      }

      原因:

      (1) const 成員函數表示不會修改數據成員,而 SaveString 做不到,去掉 const 聲明

      (2) m_pBuffer 指向 NULL,必須用 Allocte 分配空間才能賦值。

      (3) 另外需要將 Allocte 成員函數聲明為私有成員函數更符合實際

      2.下來程序想打印“Welcome MSR Asia”,改正錯誤

      #include <stdio.h>

      #include <string.h>

      char * GetName (void)

      {

      //To return “MSR Asia” String

      char name[]="MSR Asia";

      return name;

      }

      void main(int argc, char* argv[])

      {

      char name[32];

      //Fill in zeros into name

      for(int i=0;i<=32;i++)

      {

      name[i]='\0';}

      //copy “Welcome” to name

      name="Welcome";

      //Append a blank char

      name[8]=" ";

      //Append string to name

      strcat(name,GetName());

      //print out

      printf(name);

      }

      答:改正后為

      #include <stdio.h>

      #include <string.h>

      char * GetName (void)

      {

      //To return “MSR Asia” String

      //char name[]="MSR Asia"; (1)

      char *name=(char *)malloc(strlen("MSR Asia")+1);

      strcpy(name,"MSR Asia");

      return name;

      }

      void main(int argc, char* argv[])

      {

      char name[32];

      //Fill in zeros into name

      for(int i=0;i<=32;i++)

      {

      name[i]='\0';

      }

      //copy “Welcome” to name

      //name="Welcome"; (2)

      strcat(name,"Welcome ");

      //Append a blank char

      // name[8]=' '; (3)

      //Append string to name

      char *p=GetName(); (4)

      strcat(name,p);

      free (p);

      //print out

      printf(name);

      }

      原因:(1)在函數內部定義的變量在函數結束時就清空了,必須動態分配內存(2)字符串賦值語句錯誤,應該用 strcat

      (3)該語句無效,可去掉

      (4)定義一個指針指向動態分配的內存,用完后需用 free 語句釋放

      3.寫出下面程序的輸出結果

      #include <stdio.h>

      class A

      {

      public:

      void FuncA()

      {

      printf("FuncA called\n");

      }

      virtual void FuncB()

      {

      printf("FuncB called\n");

      }

      };

      class B: public A

      {

      public:

      void FuncA()

      {

      A::FuncA();

      printf("FuncAB called\n");

      }

      virtual void FuncB()

      {

      printf("FuncBB called\n");

      }

      };

      void main(void)

      {

      B b;

      A *pa;

      pa=&b;

      A *pa2=new A;

      b.FuncA(); (1)

      b.FuncB(); (2)

      pa->FuncA(); (3)pa->FuncB(); (4)

      pa2->FuncA(); (5)

      pa2->FuncB();

      delete pa2;

      }

      答:

      1.b.FuncA(); 輸出

      FuncA called

      FuncAB called

      2.b.FuncB();輸出

      FuncBB called

      上兩者好理解,直接調用類 B 的相應成員函數

      3.pa->FuncA();輸出

      FuncA called 調用類 A 的 FuncA()

      4.pa->FuncB();輸出

      FuncBB called 調用類 B 的 FuncB(),原因是 C++的動態決議機制,當基類函數聲明為 virtual 時,指向派生

      類對象的基類指針來調用該函數會選擇派生類的實現,除非派生類沒有才調用基類的虛函數。還有一點注

      意的是:指向基類類型的指針可以指向基類對象也可以指向派生類對象,如 pa=&b;

      5. pa2->FuncA();

      pa2->FuncB();輸出

      FuncA called

      FuncB called

      這也好理解,直接調用類 A 的相應成員函數

      4.In the main() function, after ModifyString(text) is called, what’s the value of ‘text’?

      #include <stdio.h>

      #include <string.h>

      int FindSubString(char* pch)

      {

      int count=0;

      char* p1=pch;

      while(*p1!='\0')

      {

      if(*p1==p1[1]-1)

      {

      p1++;

      count++;

      }

      else

      {

      break;

      }

      }int count2=count;

      while(*p1!='\0')

      {

      if(*p1==p1[1]+1)

      {

      p1++;

      count2--;

      }

      else

      {

      break;

      }

      }

      if(count2==0)

      return count;

      return 0;

      }

      void ModifyString(char* pText)

      {

      char* p1=pText;

      char* p2=p1;

      while(*p1!='\0')

      {

      int count=FindSubString(p1);

      if(count>0){

      *p2++=*p1;

      sprintf(p2, "%I", count);

      while(*p2!= '\0')

      {

      p2++;

      }

      p1+=count+count+1;

      }

      else{

      *p2++=*p1++;

      }}

      void main(void)

      {

      char text[32]="XYBCDCBABABA";

      ModifyString(text);

      printf(text);

      }

      答:我不知道這個結構混亂的程序到底想考察什么,只能將最后運行結果寫出來是 XYBCDCBAIBAAP1912

      給定一單鏈表的表頭指針和指向其中一個節點的指針,要求以該指針為頭將原鏈表逆序排列,例如:

      N1->N2->N3->N4->N5->NULL pHEAD = N1,pSTART = N3,返回 N3->N2->N1->N5->N4->NULL

      N1->N2->N3->N4->N5->NULL pHEAD = N1,pSTART = N5,返回這個 N5->N4->N3->N2->N1->NULL

      N1->N2->N3->N4->N5->NULL pHEAD = N1,pSTART = N1,返回這個 N1->N5->N4->N3->N2->NULL

      不允許額外分配存儲空間,不允許遞歸,可以使用臨時變量。

      typedef struct node {

      int value;

      struct node *next;

      } node;

      void ReverseList(node **pHead, node *pStart){

      node *t1, *t2, *it=*pHead;

      t1 = it->next;

      while(t1 != 0){

      t2 = t1->next;

      t1->next = (it == pStart?0:it);

      it = t1;

      t1 = t2;

      }

      (*pHead)->next = it;

      *pHead = pStart;

      }附加了測試代碼后的完整程序,抄了一部分 chaoslawful 的,呵呵

      #include <stdio.h>

      #include <stdarg.h>

      #include <stdlib.h>

      typedef struct node {

      int value;struct node *next;

      } node;

      void ReverseList(node **pHead, node *pStart){

      node *t1, *t2, *it=*pHead;

      t1 = it->next;

      while(t1 != 0){

      t2 = t1->next;

      t1->next = (it == pStart?0:it);

      it = t1;

      t1 = t2;

      }

      (*pHead)->next = it;

      *pHead = pStart;

      }

      void PrintList(node *pHead){

      node *it=pHead;

      while(it){

      printf("%d ",it->value);

      it=it->next;

      }

      }

      void ConstructList(node **pHead,...)

      {

      node *q=0;

      va_list ap;

      int i;

      va_start(ap, pHead);

      while (1){

      i = va_arg(ap,int);

      if(i<0)

      break;

      if(!q){

      *pHead=q=(node *)malloc(sizeof(node));

      q->value=i;

      q->next=0;

      } else {

      q->next=(node *)malloc(sizeof(node));

      q=q->next;

      q->value=i;

      q->next=0;

      }}

      }

      void SetStart(node *it, node **pStart, int i)

      {

      while(i-- > 0 && it->next != 0){

      it = it->next;

      }

      *pStart = it;

      }

      int main(){

      node *pHead=(node *)malloc(sizeof(node *));

      node *pStart=(node *)malloc(sizeof(node *));

      ConstructList(&pHead,1,2,3,4,5,-1);

      PrintList(pHead);

      SetStart(pHead, &pStart, 2);

      ReverseList(&pHead, pStart);

      PrintList(pHead);

      return 1;

      }

      題目七:

      1.寫出 a*(b-c*d)+e-f/g*(h+i*j-k)的逆波蘭表達式

      2.面向對象語言中 public,proteced,private 的區別

      3.SAX 和 DOM 的區別以及各自優缺點

      4.進程和線程區別

      5.假設現有一個功能,用戶點擊一個按鈕后就會自動發送一封郵件到用戶的郵箱。現在

      用戶反映沒有受到郵件。你怎么去發現并解決問題

      6.用 Java 寫一個 Singleton 類

      7.2 個有序 List,請用 Java 寫一個合并函數合并他們,返回一個有序 List

      public List Merge(List a,List b){

      }

      題目八:

      1.求下面函數的返回值(微軟)

      int func(x)

      {

      int countx = 0;

      while(x)

      {

      countx ++;

      x = x&(x-1);

      }

      return countx;

      }

      假定 x = 9999。 答案:8

      思路:將 x 轉化為 2 進制,看含有的 1 的個數。

      2. 什么是“引用”?申明和使用“引用”要注意哪些問題?

      答:引用就是某個目標變量的“別名”(alias),對應用的操作與對變量直接操作效果完全相同。

      申明一個引用的時候,切記要對其進行初始化。引用聲明完畢后,相當于目標變量名有兩個名稱,即該目標原名稱和引用名,不能再把該引用名作為其他變量名的別名。聲明一個引用,不是新定義了一個變量,它只表示該引用名是目標變量名的一個別名,它本身不是一種數據類型,因此引用本身不占存儲單元,系統也不給引用分配存儲單元。不能建立數組的引用。

      3. 將“引用”作為函數參數有哪些特點?

      (1)傳遞引用給函數與傳遞指針的效果是一樣的。這時,被調函數的形參就成為原來主調函數中的實參變量或對象的一個別名來使用,所以在被調函數中對形參變量的操作就是對其相應的目標對象(在主調函數中)的操作。

      (2)使用引用傳遞函數的參數,在內存中并沒有產生實參的副本,它是直接對實參操作;而使用一般變量傳遞函數的參數,當發生函數調用時,需要給形參分配存儲單元,形參變量是實參變量的副本;如果傳遞的是對象,還將調用拷貝構造函數。因此,當參數傳遞的數據較大時,用引用比用一般變量傳遞參數的效率和所占空間都好。

      (3)使用指針作為函數的參數雖然也能達到與使用引用的效果,但是,在被調函數中同樣要給形參分配存儲單元,且需要重復使用"*指針變量名"的形式進行運算,這很容易產生錯誤且程序的閱讀性較差;另一方面,在主調函數的調用點處,必須用變量的地址作為實參。而引用更容易使用,更清晰。

      4. 在什么時候需要使用“常引用”?

      如果既要利用引用提高程序的效率,又要保護傳遞給函數的數據不在函數中被改變,就應使用常引用。常引用聲明方式:const 類型標識符 &引用名=目標變量名;

      例 1

      int a ;

      const int &ra=a;

      ra=1; //錯誤

      a=1; //正確

      例 2

      string foo( );

      void bar(string & s);

      那么下面的表達式將是非法的:

      bar(foo( ));bar("hello world");

      原因在于 foo( )和"hello world"串都會產生一個臨時對象,而在 C++中,這些臨時對象都是const 類型的。因此上面的表達式就是試圖將一個 const 類型的對象轉換為非 const 類型,這是非法的。

      引用型參數應該在能被定義為 const 的情況下,盡量定義為 const 。

      5. 將“引用”作為函數返回值類型的格式、好處和需要遵守的規則?

      格式:類型標識符 &函數名(形參列表及類型說明){ //函數體 }

      好處:在內存中不產生被返回值的副本;(注意:正是因為這點原因,所以返回一個局部變量的引用是不可取的。因為隨著該局部變量生存期的結束,相應的引用也會失效,產生runtime error!

      注意事項:

      (1)不能返回局部變量的引用。這條可以參照 Effective C++[1]的 Item 31。主要原因是局部變量會在函數返回后被銷毀,因此被返回的引用就成為了"無所指"的引用,程序會進入未知狀態。

      (2)不能返回函數內部 new 分配的內存的引用。這條可以參照 Effective C++[1]的 Item 31。

      雖然不存在局部變量的被動銷毀問題,可對于這種情況(返回函數內部 new 分配內存的引用),又面臨其它尷尬局面。例如,被函數返回的引用只是作為一個臨時變量出現,而沒有被賦予一個實際的變量,那么這個引用所指向的空間(由new分配)就無法釋放,造成memory leak。

      (3)可以返回類成員的引用,但最好是 const。這條原則可以參照 Effective C++[1]的 Item 30。

      主要原因是當對象的屬性是與某種業務規則(business rule)相關聯的時候,其賦值常常與某些其它屬性或者對象的狀態有關,因此有必要將賦值操作封裝在一個業務規則當中。如果其它對象可以獲得該屬性的非常量引用(或指針),那么對該屬性的單純賦值就會破壞業務規則的完整性。

      (4)流操作符重載返回值申明為“引用”的作用:

      流操作符<<和>>,這兩個操作符常常希望被連續使用,例如:cout << "hello" << endl; 因此這兩個操作符的返回值應該是一個仍然支持這兩個操作符的流引用。可選的其它方案包括:返回一個流對象和返回一個流對象指針。但是對于返回一個流對象,程序必須重新(拷貝)構造一個新的流對象,也就是說,連續的兩個<<操作符實際上是針對不同對象的!這無法讓人接受。對于返回一個流指針則不能連續使用<<操作符。因此,返回一個流對象引用是惟一選擇。這個唯一選擇很關鍵,它說明了引用的重要性以及無可替代性,也許這就是 C++語言中引入引用這個概念的原因吧。 賦值操作符=。這個操作符象流操作符一樣,是可以連續使用的,例如:x = j = 10;或者(x=10)=100;賦值操作符的返回值必須是一個左值,以便可以被繼續賦值。因此引用成了這個操作符的惟一返回值選擇。

      例 3

      #i nclude <iostream.h>

      int &put(int n);

      int vals[10];

      int error=-1;

      void main()

      {

      put(0)=10; //以 put(0)函數值作為左值,等價于 vals[0]=10;

      put(9)=20; //以 put(9)函數值作為左值,等價于 vals[9]=20;

      cout<<vals[0];cout<<vals[9];

      }

      int &put(int n)

      {

      if (n>=0 && n<=9 ) return vals[n];

      else { cout<<"subscript error"; return error; }

      }

      (5)在另外的一些操作符中,卻千萬不能返回引用:+-*/ 四則運算符。它們不能返回引用,Effective C++[1]的 Item23 詳細的討論了這個問題。主要原因是這四個操作符沒有 side effect,因此,它們必須構造一個對象作為返回值,可選的方案包括:返回一個對象、返回一個局部變量的引用,返回一個 new 分配的對象的引用、返回一個靜態對象引用。根據前面提到的引用作為返回值的三個規則,第 2、3 兩個方案都被否決了。靜態對象的引用又因為((a+b) ==(c+d))會永遠為 true 而導致錯誤。所以可選的只剩下返回一個對象了。

      6. “引用”與多態的關系?

      引用是除指針外另一個可以產生多態效果的手段。這意味著,一個基類的引用可以指向它的派生類實例。

      例 4

      Class A; Class B : Class A{...}; B b; A& ref = b;

      7. “引用”與指針的區別是什么?

      指針通過某個指針變量指向一個對象后,對它所指向的變量間接操作。程序中使用指針,程序的可讀性差;而引用本身就是目標變量的別名,對引用的操作就是對目標變量的操作。此外,就是上面提到的對函數傳 ref 和 pointer 的區別。

      8. 什么時候需要“引用”?

      流操作符<<和>>、賦值操作符=的返回值、拷貝構造函數的參數、賦值操作符=的參數、其它情況都推薦使用引用。

      以上 2-8 參考:https://blog.csdn.net/wfwd/archive/2006/05/30/763551.aspx

      9. 結構與聯合有和區別?

      1. 結構和聯合都是由多個不同的數據類型成員組成, 但在任何同一時刻, 聯合中只存放了一個被選中的成員(所有成員共用一塊地址空間), 而結構的所有成員都存在(不同成員的存放地址不同)。

      2. 對于聯合的不同成員賦值, 將會對其它成員重寫, 原來成員的值就不存在了, 而對于結構的不同成員賦值是互不影響的。

      10. 下面關于“聯合”的題目的輸出?

      a)

      #i nclude <stdio.h>

      union

      {

      int i;

      char x[2];

      }a;

      void main()

      {

      a.x[0] = 10;a.x[1] = 1;

      printf("%d",a.i);

      }

      答案:266 (低位低地址,高位高地址,內存占用情況是 Ox010A)

      b)

      main()

      {

      union{ /*定義一個聯合*/

      int i;

      struct{ /*在聯合中定義一個結構*/

      char first;

      char second;

      }half;

      }number;

      number.i=0x4241; /*聯合成員賦值*/

      printf("%c%c\n", number.half.first, mumber.half.second);

      number.half.first='a'; /*聯合中結構成員賦值*/

      number.half.second='b';

      printf("%x\n", number.i);

      getch();

      }

      答案: AB (0x41 對應'A',是低位;Ox42 對應'B',是高位)

      6261 (number.i 和 number.half 共用一塊地址空間)

      11. 已知 strcpy 的函數原型:char *strcpy(char *strDest, const char *strSrc)其中 strDest 是目的字符串,strSrc 是源字符串。不調用 C++/C 的字符串庫函數,請編寫函數 strcpy。

      答案:

      char *strcpy(char *strDest, const char *strSrc)

      {

      if ( strDest == NULL || strSrc == NULL)

      return NULL ;

      if ( strDest == strSrc)

      return strDest ;

      char *tempptr = strDest ;

      while( (*strDest++ = *strSrc++) != \0 )

      ;

      return tempptr ;

      }

      12. 已知 String 類定義如下:

      class String

      {

      public:

      String(const char *str = NULL); // 通用構造函數

      String(const String &another); // 拷貝構造函數~ String(); // 析構函數

      String & operater =(const String &rhs); // 賦值函數

      private:

      char *m_data; // 用于保存字符串

      };

      嘗試寫出類的成員函數實現。

      答案:

      String::String(const char *str)

      {

      if ( str == NULL ) //strlen 在參數為 NULL 時會拋異常才會有這步判斷

      {

      m_data = new char[1] ;

      m_data[0] = '\0' ;

      }

      else

      {

      m_data = new char[strlen(str) + 1];

      strcpy(m_data,str);

      }

      }

      String::String(const String &another)

      {

      m_data = new char[strlen(another.m_data) + 1];

      strcpy(m_data,other.m_data);

      }

      String& String::operator =(const String &rhs)

      {

      if ( this == &rhs)

      return *this ;

      delete []m_data; //刪除原來的數據,新開一塊內存

      m_data = new char[strlen(rhs.m_data) + 1];

      strcpy(m_data,rhs.m_data);

      return *this ;

      }

      String::~String()

      {

      delete []m_data ;

      }

      13. .h 頭文件中的 ifndef/define/endif 的作用?

      答:防止該頭文件被重復引用。

      14. #i nclude<file.h> 與 #i nclude "file.h"的區別?

      答:前者是從 Standard Library 的路徑尋找和引用 file.h,而后者是從當前工作路徑搜尋并引用 file.h。

      15.在 C++ 程序中調用被 C 編譯器編譯后的函數,為什么要加 extern “C”?

      首先,作為 extern 是 C/C++語言中表明函數和全局變量作用范圍(可見性)的關鍵字,該關鍵字告訴編譯器,其聲明的函數和變量可以在本模塊或其它模塊中使用。

      通常,在模塊的頭文件中對本模塊提供給其它模塊引用的函數和全局變量以關鍵字 extern聲明。例如,如果模塊 B 欲引用該模塊 A 中定義的全局變量和函數時只需包含模塊 A 的頭文件即可。這樣,模塊 B 中調用模塊 A 中的函數時,在編譯階段,模塊 B 雖然找不到該函數,但是并不會報錯;它會在連接階段中從模塊 A 編譯生成的目標代碼中找到此函數extern "C"是連接申明(linkage declaration),被 extern "C"修飾的變量和函數是按照 C 語言方式編譯和連接的,來看看 C++中對類似 C 的函數是怎樣編譯的:

      作為一種面向對象的語言,C++支持函數重載,而過程式語言 C 則不支持。函數被 C++編譯后在符號庫中的名字與 C 語言的不同。例如,假設某個函數的原型為:void foo( int x, int y );該函數被 C 編譯器編譯后在符號庫中的名字為_foo,而 C++編譯器則會產生像_foo_int_int之類的名字(不同的編譯器可能生成的名字不同,但是都采用了相同的機制,生成的新名字稱為“mangled name”)。

      _foo_int_int 這樣的名字包含了函數名、函數參數數量及類型信息,C++就是靠這種機制來實現函數重載的。例如,在 C++中,函數 void foo( int x, int y )與 void foo( int x, float y )編譯生成的符號是不相同的,后者為_foo_int_float。

      同樣地,C++中的變量除支持局部變量外,還支持類成員變量和全局變量。用戶所編寫程序的類成員變量可能與全局變量同名,我們以"."來區分。而本質上,編譯器在進行編譯時,與函數的處理相似,也為類中的變量取了一個獨一無二的名字,這個名字與用戶程序中同名的全局變量名字不同。

      未加 extern "C"聲明時的連接方式

      假設在 C++中,模塊 A 的頭文件如下:

      // 模塊 A 頭文件 moduleA.h

      #ifndef MODULE_A_H

      #define MODULE_A_H

      int foo( int x, int y );

      #endif

      在模塊 B 中引用該函數:

      // 模塊 B 實現文件 moduleB.cpp

      #i nclude "moduleA.h"

      foo(2,3);

      實際上,在連接階段,連接器會從模塊 A 生成的目標文件 moduleA.obj 中尋找_foo_int_int這樣的符號!

      加 extern "C"聲明后的編譯和連接方式加 extern "C"聲明后,模塊 A 的頭文件變為:

      // 模塊 A 頭文件 moduleA.h

      #ifndef MODULE_A_H

      #define MODULE_A_H

      extern "C" int foo( int x, int y );

      #endif

      在模塊 B 的實現文件中仍然調用 foo( 2,3 ),其結果是:

      (1)模塊 A 編譯生成 foo 的目標代碼時,沒有對其名字進行特殊處理,采用了 C 語言的方式;

      (2)連接器在為模塊 B 的目標代碼尋找 foo(2,3)調用時,尋找的是未經修改的符號名_foo。如果在模塊 A 中函數聲明了 foo 為 extern "C"類型,而模塊 B 中包含的是 extern int foo( int x,int y ) ,則模塊 B 找不到模塊 A 中的函數;反之亦然。

      所以,可以用一句話概括 extern “C”這個聲明的真實目的(任何語言中的任何語法特性的誕生都不是隨意而為的,來源于真實世界的需求驅動。我們在思考問題時,不能只停留在這個語言是怎么做的,還要問一問它為什么要這么做,動機是什么,這樣我們可以更深入地理解許多問題):實現 C++與 C 及其它語言的混合編程。

      明白了 C++中 extern "C"的設立動機,我們下面來具體分析 extern "C"通常的使用技巧:extern "C"的慣用法

      (1)在 C++中引用 C 語言中的函數和變量,在包含 C 語言頭文件(假設為 cExample.h)時,需進行下列處理:

      extern "C"

      {

      #i nclude "cExample.h"

      }

      而在 C 語言的頭文件中,對其外部函數只能指定為 extern 類型,C 語言中不支持 extern "C"

      聲明,在.c 文件中包含了 extern "C"時會出現編譯語法錯誤。

      C++引用 C 函數例子工程中包含的三個文件的源代碼如下:

      /* c 語言頭文件:cExample.h */

      #ifndef C_EXAMPLE_H

      #define C_EXAMPLE_H

      extern int add(int x,int y);

      #endif

      /* c 語言實現文件:cExample.c */

      #i nclude "cExample.h"

      int add( int x, int y )

      {

      return x + y;

      }// c++實現文件,調用 add:cppFile.cpp

      extern "C"

      {

      #i nclude "cExample.h"

      }

      int main(int argc, char* argv[])

      {

      add(2,3);

      return 0;

      }

      如果 C++調用一個 C 語言編寫的.DLL 時,當包括.DLL 的頭文件或聲明接口函數時,應加extern "C" { }。

      (2)在 C 中引用 C++語言中的函數和變量時,C++的頭文件需添加 extern "C",但是在 C語言中不能直接引用聲明了extern "C"的該頭文件,應該僅將C文件中將C++中定義的extern"C"函數聲明為 extern 類型。

      C 引用 C++函數例子工程中包含的三個文件的源代碼如下:

      //C++頭文件 cppExample.h

      #ifndef CPP_EXAMPLE_H

      #define CPP_EXAMPLE_H

      extern "C" int add( int x, int y );

      #endif

      //C++實現文件 cppExample.cpp

      #i nclude "cppExample.h"

      int add( int x, int y )

      {

      return x + y;

      }

      /* C 實現文件 cFile.c

      /* 這樣會編譯出錯:#i nclude "cExample.h" */

      extern int add( int x, int y );

      int main( int argc, char* argv[] )

      {

      add( 2, 3 );

      return 0;

      }

      15 題目的解答請參考《C++中 extern “C”含義深層探索》注解:

      16. 關聯、聚合(Aggregation)以及組合(Composition)的區別?

      涉及到 UML 中的一些概念:關聯是表示兩個類的一般性聯系,比如“學生”和“老師”就是一種關聯關系;聚合表示 has-a 的關系,是一種相對松散的關系,聚合類不需要對被聚合類負責,如下圖所示,用空的菱形表示聚合關系:從實現的角度講,聚合可以表示為:class A {...} class B { A* a; .....}

      而組合表示 contains-a 的關系,關聯性強于聚合:組合類與被組合類有相同的生命周期,組合類要對被組合類負責,采用實心的菱形表示組合關系:

      實現的形式是:

      class A{...} class B{ A a; ...}

      參考文章:https://blog.csdn.net/wfwd/archive/2006/05/30/763753.aspx

      https://blog.csdn.net/wfwd/archive/2006/05/30/763760.aspx

      17.面向對象的三個基本特征,并簡單敘述之?

      1. 封裝:將客觀事物抽象成類,每個類對自身的數據和方法實行 protection(private,protected,public)

      2. 繼承:廣義的繼承有三種實現形式:實現繼承(指使用基類的屬性和方法而無需額外編碼的能力)、可視繼承(子窗體使用父窗體的外觀和實現代碼)、接口繼承(僅使用屬性和方法,實現滯后到子類實現)。前兩種(類繼承)和后一種(對象組合=>接口繼承以及純虛函數)構成了功能復用的兩種方式。

      3. 多態:是將父對象設置成為和一個或更多的他的子對象相等的技術,賦值之后,父對象就可以根據當前賦值給它的子對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針。

      18. 重載(overload)和重寫(overried,有的書也叫做“覆蓋”)的區別?

      常考的題目。

      從定義上來說:重載:是指允許存在多個同名函數,而這些函數的參數表不同(或許參數個數不同,或許參數類型不同,或許兩者都不同)。

      重寫:是指子類重新定義復類虛函數的方法。

      從實現原理上來說:

      重載:編譯器根據函數不同的參數表,對同名函數的名稱做修飾,然后這些同名函數就成了不同的函數(至少對于編譯器來說是這樣的)。如,有兩個同名函數: functionfunc(p:integer):integer;和 function func(p:string):integer;。那么編譯器做過修飾后的函數名稱可能是這樣的:int_func、str_func。對于這兩個函數的調用,在編譯器間就已經確定了,是靜態的。也就是說,它們的地址在編譯期就綁定了(早綁定),因此,重載和多態無關!

      重寫:和多態真正相關。當子類重新定義了父類的虛函數后,父類指針根據賦給它的不同的子類指針,動態的調用屬于子類的該函數,這樣的函數調用在編譯期間是無法確定的(調用的子類的虛函數的地址無法給出)。因此,這樣的函數地址是在運行期綁定的(晚綁定)。

      19. 多態的作用?

      主要是兩個:1. 隱藏實現細節,使得代碼能夠模塊化;擴展代碼模塊,實現代碼重用;2. 接口重用:為了類在繼承和派生的時候,保證使用家族中任一類的實例的某一屬性時的正確調用。

      20. Ado 與 Ado.net 的相同與不同?

      除了“能夠讓應用程序處理存儲于 DBMS 中的數據“這一基本相似點外,兩者沒有太多共同之處。但是 Ado 使用 OLE DB 接口并基于微軟的 COM 技術,而 ADO.NET 擁有自己的

      ADO.NET 接口并且基于微軟的.NET 體系架構。眾所周知.NET 體系不同于 COM 體系,ADO.NET 接口也就完全不同于 ADO 和 OLE DB 接口,這也就是說 ADO.NET 和 ADO 是兩種數據訪問方式。ADO.net 提供對 XML 的支持。

      21. New delete 與 malloc free 的聯系與區別?

      答案:都是在堆(heap)上進行動態的內存操作。用 malloc 函數需要指定內存分配的字節數并且不能初始化對象,new 會自動調用對象的構造函數。delete 會調用對象的 destructor,而free 不會調用對象的 destructor.

      22. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?

      答案:i 為 30。

      23. 有哪幾種情況只能用 intialization list 而不能用 assignment?

      答案:當類中含有 const、reference 成員變量;基類的構造函數都需要初始化表。

      24. C++是不是類型安全的?

      答案:不是。兩個不同類型的指針之間可以強制轉換(用 reinterpret cast)。C#是類型安全的。

      25. main 函數執行以前,還會執行什么代碼?

      答案:全局對象的構造函數會在 main 函數之前執行。

      26. 描述內存分配方式以及它們的區別?

      1) 從靜態存儲區域分配。內存在程序編譯的時候就已經分配好,這塊內存在程序的整個運行期間都存在。例如全局變量,static 變量。

      2) 在棧上創建。在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧內存分配運算內置于處理器的指令集。

      3) 從堆上分配,亦稱動態內存分配。程序在運行的時候用 malloc 或 new 申請任意多少的內存,程序員自己負責在何時用 free 或 delete 釋放內存。動態內存的生存期由程序員決定,使用非常靈活,但問題也最多。

      27.struct 和 class 的區別

      答案:struct 的成員默認是公有的,而類的成員默認是私有的。struct 和 class 在其他方面是功能相當的。

      從感情上講,大多數的開發者感到類和結構有很大的差別。感覺上結構僅僅象一堆缺乏封裝和功能的開放的內存位,而類就象活的并且可靠的社會成員,它有智能服務,有牢固的封裝屏障和一個良好定義的接口。既然大多數人都這么認為,那么只有在你的類有很少的方法并且有公有數據(這種事情在良好設計的系統中是存在的!)時,你也許應該使用 struct 關鍵字,否則,你應該使用 class 關鍵字。

      28.當一個類 A 中沒有生命任何成員變量與成員函數,這時 sizeof(A)的值是多少,如果不是零,請解釋一下編譯器為什么沒有讓它為零。(Autodesk)

      答案:肯定不是零。舉個反例,如果是零的話,聲明一個 classA[10]對象數組,而每一個對象占用的空間是零,這時就沒辦法區分 A[0],A[1] 了。

      29. 在 8086 匯編下,邏輯地址和物理地址是怎樣轉換的?(Intel)

      答案:通用寄存器給出的地址,是段內偏移地址,相應段寄存器地址*10H+通用寄存器內地址,就得到了真正要訪問的地址。

      30. 比較 C++中的 4 種類型轉換方式?

      請參考:https://blog.csdn.net/wfwd/archive/2006/05/30/763785.aspx,重點是static cast, dynamic cast 和 reinterpret cast 的區別和應用。

      31.分別寫出 BOOL,int,float,指針類型的變量 a 與“零”的比較語句。

      答案:BOOL : if ( !a ) or if(a)

      int : if ( a == 0)

      float : const EXPRESSION EXP = 0.000001

      if ( a < EXP && a >-EXP)

      pointer : if ( a != NULL) or if(a == NULL)

      32.請說出 const 與#define 相比,有何優點?

      答案:1) const 常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產生意料不到的錯誤。

      2) 有些集成化的調試工具可以對 const 常量進行調試,但是不能對宏常量進行調試。

      33.簡述數組與指針的區別?

      數組要么在靜態存儲區被創建(如全局數組),要么在棧上被創建。指針可以隨時指向任意類型的內存塊。

      (1)修改內容上的差別

      char a[] = “hello”;

      a[0] = ‘X’;

      char *p = “world”; // 注意 p 指向常量字符串

      p[0] = ‘X’; // 編譯器不能發現該錯誤,運行時錯誤

      (2) 用運算符 sizeof 可以計算出數組的容量(字節數)。sizeof(p),p 為指針得到的是一個指針變量的字節數,而不是 p 所指的內存容量。C++/C 語言沒有辦法知道指針所指的內存容量,除非在申請內存時記住它。注意當數組作為函數的參數進行傳遞時,該數組自動退化為同類型的指針。

      char a[] = "hello world";

      char *p = a;

      cout<< sizeof(a) << endl; // 12 字節

      cout<< sizeof(p) << endl; // 4 字節

      計算數組和指針的內存容量

      void Func(char a[100])

      {

      cout<< sizeof(a) << endl; // 4 字節而不是 100 字節

      }

      34.類成員函數的重載、覆蓋和隱藏區別?

      答案:

      a.成員函數被重載的特征:

      (1)相同的范圍(在同一個類中);

      (2)函數名字相同;

      (3)參數不同;

      (4)virtual 關鍵字可有可無。

      b.覆蓋是指派生類函數覆蓋基類函數,特征是:

      (1)不同的范圍(分別位于派生類與基類);

      (2)函數名字相同;

      (3)參數相同;

      (4)基類函數必須有 virtual 關鍵字。c.“隱藏”是指派生類的函數屏蔽了與其同名的基類函數,規則如下:

      (1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無 virtual 關鍵字,

      基類的函數將被隱藏(注意別與重載混淆)。

      (2)如果派生類的函數與基類的函數同名,并且參數也相同,但是基類函數沒有 virtual 關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆)

      35. There are two int variables: a and b, don’t use “if”, “? :”, “switch” or other judgement statements, find out the biggest one of the two numbers.

      答案:( ( a + b ) + abs( a - b ) ) / 2

      36. 如何打印出當前源文件的文件名以及源文件的當前行號?

      答案:

      cout << __FILE__ ;

      cout<<__LINE__ ;

      __FILE__和__LINE__是系統預定義宏,這種宏并不是在某個文件中定義的,而是由編譯器定義的。

      37. main 主函數執行完畢后,是否可能會再執行一段代碼,給出說明?

      答案:可以,可以用_onexit 注冊一個函數,它會在 main 之后執行 int fn1(void), fn2(void), fn3(void), fn4 (void);

      void main( void )

      {

      String str("zhanglin");

      _onexit( fn1 );

      _onexit( fn2 );

      _onexit( fn3 );

      _onexit( fn4 );

      printf( "This is executed first.\n" );

      }

      int fn1()

      {

      printf( "next.\n" );

      return 0;

      }

      int fn2()

      {

      printf( "executed " );

      return 0;

      }

      int fn3()

      {

      printf( "is " );

      return 0;

      }

      int fn4()

      {

      printf( "This " );return 0;

      }

      The _onexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.

      38. 如何判斷一段程序是由 C 編譯程序還是由 C++編譯程序編譯的?

      答案:

      #ifdef __cplusplus

      cout<<"c++";

      #else

      cout<<"c";

      #endif

      39.文件中有一組整數,要求排序后輸出到另一個文件中

      答案:

      #i nclude<iostream>

      #i nclude<fstream>

      using namespace std;

      void Order(vector<int>& data) //bubble sort

      {

      int count = data.size() ;

      int tag = false ; // 設置是否需要繼續冒泡的標志位

      for ( int i = 0 ; i < count ; i++)

      {

      for ( int j = 0 ; j < count - i - 1 ; j++)

      {

      if ( data[j] > data[j+1])

      {

      tag = true ;

      int temp = data[j] ;

      data[j] = data[j+1] ;

      data[j+1] = temp ;

      }

      }

      if ( !tag )

      break ;

      }

      }

      void main( void )

      {

      vector<int>data;

      ifstream in("c:\\data.txt");

      if ( !in){

      cout<<"file error!";

      exit(1);

      }

      int temp;

      while (!in.eof())

      {

      in>>temp;

      data.push_back(temp);

      }

      in.close(); //關閉輸入文件流

      Order(data);

      ofstream out("c:\\result.txt");

      if ( !out)

      {

      cout<<"file error!";

      exit(1);

      }

      for ( i = 0 ; i < data.size() ; i++)

      out<<data[i]<<" ";

      out.close(); //關閉輸出文件流

      }

      40. 鏈表題:一個鏈表的結點結構

      struct Node

      {

      int data ;

      Node *next ;

      };

      typedef struct Node Node ;

      (1)已知鏈表的頭結點 head,寫一個函數把這個鏈表逆序 ( Intel)

      Node * ReverseList(Node *head) //鏈表逆序

      {

      if ( head == NULL || head->next == NULL )

      return head;

      Node *p1 = head ;

      Node *p2 = p1->next ;

      Node *p3 = p2->next ;

      p1->next = NULL ;

      while ( p3 != NULL )

      {

      p2->next = p1 ;

      p1 = p2 ;p2 = p3 ;

      p3 = p3->next ;

      }

      p2->next = p1 ;

      head = p2 ;

      return head ;

      }

      (2)已知兩個鏈表 head1 和 head2 各自有序,請把它們合并成一個鏈表依然有序。(保留所有

      結點,即便大小相同)

      Node * Merge(Node *head1 , Node *head2)

      {

      if ( head1 == NULL)

      return head2 ;

      if ( head2 == NULL)

      return head1 ;

      Node *head = NULL ;

      Node *p1 = NULL;

      Node *p2 = NULL;

      if ( head1->data < head2->data )

      {

      head = head1 ;

      p1 = head1->next;

      p2 = head2 ;

      }

      else

      {

      head = head2 ;

      p2 = head2->next ;

      p1 = head1 ;

      }

      Node *pcurrent = head ;

      while ( p1 != NULL && p2 != NULL)

      {

      if ( p1->data <= p2->data )

      {

      pcurrent->next = p1 ;

      pcurrent = p1 ;

      p1 = p1->next ;

      }

      else

      {

      pcurrent->next = p2 ;

      pcurrent = p2 ;

      p2 = p2->next ;}

      }

      if ( p1 != NULL )

      pcurrent->next = p1 ;

      if ( p2 != NULL )

      pcurrent->next = p2 ;

      return head ;

      }

      (3)已知兩個鏈表 head1 和 head2 各自有序,請把它們合并成一個鏈表依然有序,這次要求用遞歸方法進行。 (Autodesk)

      答案:

      Node * MergeRecursive(Node *head1 , Node *head2)

      {

      if ( head1 == NULL )

      return head2 ;

      if ( head2 == NULL)

      return head1 ;

      Node *head = NULL ;

      if ( head1->data < head2->data )

      {

      head = head1 ;

      head->next = MergeRecursive(head1->next,head2);

      }

      else

      {

      head = head2 ;

      head->next = MergeRecursive(head1,head2->next);

      }

      return head ;

      }

      41. 分析一下這段程序的輸出 (Autodesk)

      class B

      {

      public:

      B()

      {

      cout<<"default constructor"<<endl;

      }

      ~B()

      {

      cout<<"destructed"<<endl;

      }

      B(int i):data(i) //B(int) works as a converter ( int -> instance of B)

      {cout<<"constructed by parameter " << data <<endl;

      }

      private:

      int data;

      };

      B Play( B b)

      {

      return b ;

      }

      (1) results:

      int main(int argc, char* argv[]) constructed by parameter 5

      { destructed B(5)形參析構

      B t1 = Play(5); B t2 = Play(t1); destructed t1 形參析構

      return 0; destructed t2 注意順序!

      } destructed t1

      (2) results:

      int main(int argc, char* argv[]) constructed by parameter 5

      { destructed B(5)形參析構

      B t1 = Play(5); B t2 = Play(10); constructed by parameter 10

      return 0; destructed B(10)形參析構

      } destructed t2 注意順序!

      destructed t1

      42. 寫一個函數找出一個整數數組中,第二大的數 (microsoft)

      答案:

      const int MINNUMBER = -32767 ;

      int find_sec_max( int data[] , int count)

      {

      int maxnumber = data[0] ;

      int sec_max = MINNUMBER ;

      for ( int i = 1 ; i < count ; i++)

      {

      if ( data[i] > maxnumber )

      {

      sec_max = maxnumber ;

      maxnumber = data[i] ;

      }

      else

      {

      if ( data[i] > sec_max )

      sec_max = data[i] ;

      }

      }

      return sec_max ;}

      43. 寫一個在一個字符串(n)中尋找一個子串(m)第一個位置的函數。

      KMP 算法效率最好,時間復雜度是O(n+m)。

      44. 多重繼承的內存分配問題:

      比如有 classA: public class B, public class C {}

      那么 A 的內存結構大致是怎么樣的?

      這個是 compiler-dependent 的, 不同的實現其細節可能不同。

      如果不考慮有虛函數、虛繼承的話就相當簡單;否則的話,相當復雜。

      可以參考《深入探索 C++對象模型》,或者:

      https://blog.csdn.net/wfwd/archive/2006/05/30/763797.aspx

      45. 如何判斷一個單鏈表是有環的?(注意不能用標志位,最多只能用兩個額外指針)

      struct node { char val; node* next;}

      bool check(const node* head) {} //return false : 無環;true: 有環

      一種 O(n)的辦法就是(搞兩個指針,一個每次遞增一步,一個每次遞增兩步,如果有環

      的話兩者必然重合,反之亦然):

      bool check(const node* head)

      {

      if(head==NULL) return false;

      node *low=head, *fast=head->next;

      while(fast!=NULL && fast->next!=NULL)

      {

      low=low->next;

      fast=fast->next->next;

      if(low==fast) return true;

      }

      return false;

      }

      《微軟求職寶典》

      《微軟求職寶典Word下載》

      《微軟求職寶典PDF下載》

      Copyright©2006-2026應屆畢業生網yjbys.com版權所有

      主站蜘蛛池模板: rbd505| 高清杜塞未删减| 女版战狼10国语版| 《民间怪谈录》在线观看| 日本电影丈夫不在家,公公突然来拜访| 腾格尔没放过《爱你》| 二十世纪性格与x爱情| 电子政务概论| 真心想让你幸福免费观看全集| 一人之下第4季| 万古尊上短剧免费观看| 战狼5电影免费播放| 美术老师的放羊班| 丈姆娘来了全集| 翁虹《满清十大酷刑》| 单身男女免费高清电视剧推荐| 赌王出山| 洪湖赤卫队电视剧| 神代弓子| 新施公案剧情介绍| 克拉运河计划| 雪豹特战电视剧免费观看完整版| 厚颜无耻韩国动漫免费阅读观看 | 欧美大兵的寝室免费观看。| 全球最让人害羞的时装比赛 | 《模特人生》韩剧| 无法抗拒的他第四集| 天降女子动漫| 高清《战旗如画》电视剧| 伦理影片岳母厨房在线观看| 我们都是坏孩子电影| 电锯人蕾塞篇剧场版观看| 宁安如梦电视剧免费播放在线西瓜 | 天美传奇在线观看免费播放| 丧尸之地| 韩国维修工大尺度电影免费观看| 毒爱泰剧| 《法国空乘4》免费韩国小嫂子| 长安三万里在线播放免费| 何处寻真相电影| 和平年代 电视剧| 搬山道人免费观看完整版| 迅雷哥在线| 不良义姐在线观看| 三文鱼价格为何“跳水”| 十三号星期五| 我的离开也是爱 歌词| 麦乐迪马克斯女超人电影| 随时随地都能干的小镇I| 三年片观看免费观看西瓜影视剧| 日本剧情片修理工的艳遇| star-438| 禁忌满天星帕克| 春欲未删减版dvd| 公孚之手中字9| 伞娘传奇电视剧全集剧情| 特殊的保险推销员2中国| 为人民服务完整版免费观看| 完美世界全集在线观看| 铿锵锵锵免费观看在线观看| 孤男寡女免费观看电视剧下载| 《姐姐的朋友2》| 大叔在线观看| 酸豆角怎样腌制才好吃| 哇嘎国语电影在线观看| 东京卍复仇者| 白雪公主 韩剧| xl司令第二季全集免费观看| 广场舞喜乐年华| 小东西逃跑是要受到惩罚的| 掌中之物西班牙版| 海盗2:鬼怪的旗帜 电影在线观看| 樱桃小丸子动画片| 《我的游泳女教练》电影| 《蛇王波后》完整版| 梁佳芯国风按摩院在线观看| 高清《战旗如画》电视剧 | 女超人melody| 他母亲的房子| 高压监狱2在线观看完整| 离婚前规| 入库单格式| 凯登杰西斯托雅《荣誉法则》| 赘婿在线播放| 维修员的艳遇| 世界末日是哪一天| 电影神奇侠侣| 神州侠侣全集| 红警全能王2012| 回复术士118集真人版剧情介绍| 高清百鬼夜行抄未删减| 年轻的瘦子 5| 血战上海滩电影| 高清《单身男女》电影| 憧憬成为魔法少女第二季| 美丽高解像粤语全集| 八戒八戒八戒免费看电视剧大全八| 狙击蝴蝶电视剧在线观看| 高清年少轻狂 第五季| 高清侦探先生,你的背包开着呢| 复仇千金:手撕渣男贱女短剧全集| 壮志凌云凯登克劳斯版| 克隆丈夫| 我和房东在做爰电影| 战略大作战| 我的机器人男友短剧| 初恋时间动漫免费观看全集 | 新猛龙过江 电视剧| 八尺夫人在线观看| 雪中悍刀行40集免费| 已婚妇女火辣的下午电影| 奔跑吧第十一季免费观看| 妻情六欲| 唐探1900电影免费观看| 《老医馆》全集免费| 《金牌销售的秘密5》 | 满天星电影在线观看完整免费高清原声满天 | 娃娃脸完整观看| 中俄列车大劫案纪录片| 星座频道| 大军阀电影| 美国特别酒店3| 玩偶姐姐陪玩第四部片尾BGM| 电影《千金与佣人》完整版| 天若有情 刘德华| 《义子侵犯》北条麻妃在线观看| 鬼客韩剧在线播放免费观看全集| 爱神巧克力第一季免费观看全部| 明星大侦探第五季在线观看 | 爸爸的种子bd| 碧血蓝天电影免费观看完整版| 韩剧高级课程完整免费观看| 薄冰电视剧免费观看全集| 朋友的妈妈2020中字| 天柱县| 对口相声| 罗山县| 贪婪欲望之岛无删减版观看 | 天将雄师西瓜| 非常主播| 神探狄仁杰一部30完整版| 整容日记下载| 坎贝奇《品味人生憾》播放| 《无限城决战篇》免费观看| 郝板栗《千金小姐| 猫和老鼠东北方言版| 游泳池的特殊待遇电影| 七龙珠第一部| 风烟滚滚| 《机械师6》电影在线看| 我家三爷超宠的全集视频| 《姐妹牙医》完整版在线观看免费播放 | 电影登山的目的| 美国式保罗4| 璀璨人生下载| 喜爱夜蒲2国语| 丛林战争| 胡歌推着游本昌走红毯| 年轻的母亲2有线4| 徐梦桃高喊我是第一吗| 大考电视剧在线观看免费完整版| 娘亲舅大电视剧| 《私人航空》免费观看在线播放 | 又呈吴郎翻译| 乐至县| 丁冬影视| 外卖特邀员免费| 交谊舞中四舞曲| 浮之手中字12| 本草药王国语| 盲盒电影酒店免费观看 | 郭晶晶 红外| 战狼6免费观看在线观看下载 | 美国末日之战丧尸电影免费观看| 良医第一季| 扫黑风暴第21集| 满天星电影在线观看完整免费高清原声满天 | 妈妈发怒了国语版| 肛门犯罪电影在线观看| 熊出没之古宅探宝 2022| 高清《史前战纪 第三季》电视剧| 《农场主的三个女儿》| 乡村爱情故事小夜曲| 康体水疗看在线完整版| 电视剧亲爱的小孩| 黑白配国语版在线观看免费| 幸福最晴天| 钢琴曲梁祝| 一起来看流星雨电视剧| 你的老婆大结局| 妻子的妈妈双字ID| 狼行天下之钦差| 姊妹牙医| 监控还原39人遇难火灾经过| 在姨母家的客厅免费看吧| 中科院院士:长新冠是基本事实| 韩国三级男按摩师在线观看| 30而已| 白鸟ゆな| 美国达人秀第六季| 凹凸世界第四季免费观看| 陈宝莲《满天星绝版》免费看| 姐妹牙医赤板栗完整版在线播放免费| 《莫莉特别的酒店》免费观看| 黄沙武士2| 苍老师经典电影播放免费观看全 | 斗罗大陆免费完整观看204集| 孙子兵法与三十六计全集| 狂飙免费观看全集完整版高清| 盐津县| 金山鸿雁| 啄木鸟满天星凌云壮志百度云| 夺命佳人在线完整版| 护士的秘密电外国| 连麦kp录音原版mp3| 战狼6在线观看高清版免费完整版| 热带雨 完整版时长| 《鸿门宴》电影免费播放| 红楼之风月宝鉴| 错点鸳鸯 电视剧| 男与女电影| 爱的理想生活| 美食的俘虏370| 《请求救援》| 美容院特殊待遇2| 魔屋2009| 台湾《小凤新婚下》在线观看| 萧婷赵雷小说| 别向下看剧情介绍| 神墓在线观看全集免费观看动漫| 姜素拉电影在线播放| 倒霉熊第二季| 安斋拉拉电影完整版电影 | 3d 肉| 我在北京挺好的第6集| 不思议游戏全集| 火影忍者忍者之路完整免费观看| 沧元图动漫全集免费观看高清正版| 日本空姐2019满天星法版:星辉照耀下的职业光芒 | 贝多芬启蒙3电影在线观看免费版| 金瓶梅1---5全集| 别墅轮换在线观看免费完整版电视剧| 梅西疑似脚踝隆起大包| 警察故事3 超级警察| 龙帅都市归来:再掀风云短剧全集| 热播短剧《正当时》| 和空姐一起的日子剧情| 玩命追踪在线观看| 蒂凡尼的早餐迅雷下载| 西游记女儿国在线观看完整版高清| 官场初次尝了销魂少妇宋楚楚| 我亲爱的侄儿们1974剧情简介| 啦啦队长| 坎贝奇《品味人生》高清全集| 农奴电影| 满天星女版唐三藏| 模范出租车电视剧第一季| 麻花传剧无痕mv免费观看天美 | 雪中悍刀行2高清播放| 亲吻姐姐 第二季全集| 假面骑士极狐剧场版免费观看完整版| 沧元图60集在线观看| 御前四宝电视剧全集在线观看| 陪你到世界之巅免费观看全集| 高清《遇见你之前》电影| 《丛林肉搏》电影| 与恶魔有约百科| 《双乳丰满的女学生》在线| 不能和你分手歌词| 369你懂的视频| 一生一世在线观看免费版| 抵债的麦子3替夫还债演员表| 2对1:三人一次性体检韩国伦理| 急诊护士电影在线观看完整版| 凯登克罗斯合集免费观看| 珍惜彼此感情的句子| 酒店1-5集高清免费观看| 动画片 葫芦娃| 《over flower》1~8集动漫| 无间道1| 电影《牙医姊妹》免费播放在线观看 | 高清鲁邦三世:钱形与两个鲁邦| 《特殊美容院待遇》| 情圣是怎么练成的| 女部长做爰HD中字| 艳母动漫| 人皮灯笼电影| 旅途琪遇记| 刘欢 国际歌| 少年包青天3高清| 年轻的母亲节2| 壮志凌云女版满天星| 《部长来我家》| 大话西游之月光宝盒电影| 《四个混血大学生》2完整版| 结分谎情式粤语| 麦乐迪女超人在线观看完整免费高清原声满天星百度云 | 高清趣塔德庄园未删减| 海底小精灵| 小货SAO边洗澡边CAO你动漫| 爱情交叉点电影| 《美丽的小蜜桃5| 我心不死| 寄生兽生命的准则| 《我的瑜伽老师》大结局| 东宫电视剧全集免费观看完整版高清| 韩国少妇厨房激情做爰| 赤壁完整版| 初恋时间第一集在线观看免费高清| 春晚最美女观众| 兵人电影| 小妻太水嫩陆教授花式宠免费观看| 致敬张国荣| psycho-pass第二季| 夏娃电视剧在哪看| 美容院的待遇9| 谍影重重3国语| 未婚妻和部长出差韩国电影在线观看 | 保罗一家1--4美国版| 冬日的什么呀,春日的什么呢电视剧 | 在银行上班的老婆| tvb变身男女| 高庄监狱在线观看电影| 魔幻手机第一部| 女和尚满天星第三季在线观看| 黑帮大佬和我的365天第三部| 理妻子征服理发店| 美女食神粤语| 多人轮换电影中字 | 欢乐颂3在线观看免费| 山神电影完整版免费观看| 同桌露出了她粉嫩的那一个| 特殊精华油1-6集免费观看电视剧西瓜| 热带雨电影| 女篮坎贝奇无憾 在线观看| 逆流而上的你免费观看完整版 | 东京复仇者真人版在线观看| 欢乐元帅1| 克隆丈夫| 《奇怪的美容院2》中文翻译 | 固安县| 穷途鼠的奶酪梦| 璀璨人生一共多少集| 美人天下大结局| 超级变变变国语全集| 电视剧《轻年》32集完整版 | 高清《蜜桃成熟时5》国语| 你的孩子不是你的孩子电视剧| 水咲萝拉 白妖精| 赌神秘笈之赌魔| 困惑的浪漫在线观看| 时间都知道 电视剧免费观看| 窃听风云2电影| 韩国电影老公的上司来家里| 恶魔少爷别吻我电视剧第二季| 韩国维修工大尺度电影免费观看| 小时代在线观看| 特派外卖员在线视频免费观看 | 四名少妇精油按摩| 蜜桃成熟时电影观看| 激战丛林之人袁泰山免费| 返老还童 在线看| 禁忌3年转一代中文字母 | 德国女子兵护卫队满天星| 神探狄仁杰第四部44| 牙医妹妹 电影在线观看| 靳东甄子丹当选全国政协委员| 维修工的老艳遇在线观看| 陈伟霆演的鸭的电影名字| 《品味人生》免费观看高清资源| 最新韩国电视剧| 俄罗斯黑白配| 中国机长电影免费版完整版| 向井蓝之特别护理的进展和趋势| 斗破苍穹在线观看全集免费播放| 满天星《八尺夫人》免费观看| 北上电视剧13| id002热门经典电影免费观看| 浓从暗中来| 林芝县| 午夜日皮| 黑蝎诱惑| 大内密探灵灵狗电影| 始作俑者的意思| 妻子丰胸按摩电影在线观看| 陷入黑暗电影免费观看| 《站着再来一次》| 结婚前规则电视剧免费观看高清| 电影《牙医姐妹》正片牙医姐妹电影 | 《需要爸爸播种美国》导演是谁 | 电视剧大秦赋| 还珠格格电视剧全集免费观看| 一本到高清视频免费观看| 《冰之城墙》| 葡萄姐姐| 天美传奇在线观看免费播放| 错点鸳鸯电视剧50集免费播放 | 倚天屠龙记 邓超版高清| 猎罪图鉴1免费看完整版| 苏染染追夫记电视剧| 电影爱与激情| 塔日酒店电影完整版| 死亡笔记迅雷下载| 牝教师在教室被淫辱| 恋爱中的死神| 一个人的武林粤语| 美国伦理按摩| c字裤内衣秀全透明| 韩国女销售买房子的电影| 龙与虎下载| 米易县| 心世界奇遇| 杨澜访谈录2011| 美人心计百度影音| 千里桃花一世开免费观看全集| 和部长一起去出差旅行在线观看| 开车看美女被开罚单?P的| 法国《空乘15》艾米丽| 天注定在线观看完整版| 小辣椒3电影免费观看完整版中文| 斗罗大陆155集免费观看完整版| 青面修罗免费观看| 电视剧乌云之上在线观看| 近代国士| 总统之夜1997| 《漂白》| 我要爸爸种子美国电影完整版| 高清《调教女仆》电影 | 小棉袄免费观看全集电影| 金瓶风月百度影音| 海天雄鹰电视连续剧免费播放| 我的青梅竹马是消防员未删减| 一个妈妈的9中字头强华驿演员表| 上海圣诞节| 法国女超人电影| 向涟苍士献上纯净| 龙胆虎威2| 爱情公寓1全集高清| 渣男退散短剧全集| 《交换上司的秘书2》| 目光所及免费观看电视剧| 二人免费高清第27集在线观看| 进击的巨人无悔的选择| 余罪第三季全集免费在线看| 超决战!贝利亚银河帝国| 用我的手指打扰你| 情感战争电视剧全集| 美国式禁忌3睫毛膏| 哇嘎电影高清免费资源| 修罗武神第二季免费观看全集| 保罗与雪莉一家4美国| 逆天成仙赵飞扬短剧一口气看完 | 电视剧成长| 电影《现在不行》完整观看免费 | 《交换3》| 河南林州通报男子举报公检法| 鄢陵县| 韩剧《结婚前夜》| 电影东北女人完整版| 杰西简壮志凌云| 天际浩劫国语| 张翰不一样的美男子| 玛雅最新地址| 守护猫娘绯鞠| 乡下 乱 仑| 修理工的艳遇4| 台剧恋爱之瘾在线观看| 奥特曼国语版全集| 《新的景色》| 一夜丈夫 电视剧| 《法国空乘10》播放| 康熙来了 胡夏| 霹雳布袋戏刀龙传说| 初见乍惊欢| 《越南暴行2》| 来不及说我爱你免费观看完整版| 坎贝奇三部曲《品味人生》| 久别重逢:初恋还是你全集免费| 《有翡》电视剧| 志在出位| 下家三千金| 爱我几何删减版在线观看高清| 使徒行者优酷| 韩国电影我的游泳教练| 调教小秘书| 南斯拉夫电影瓦尔特保卫萨拉热窝| 捉鬼敢死队女版满天星 | 牧马人电影完整版高清免费观看| 王杰2001香港演唱会| 侄女的开发日记电影| 安塔芮丝 电影| 《炸天小姐》电影免费| 短剧在线观看| 勾魂恶梦| 牙医姐妹完整版免费观看高清 | 爱我几何免费播放| 糖醋蒜的制作方法和配方10斤| 捉鬼敢死队满天星版| 西游降魔篇免费| 韩剧闺蜜的背叛| 渔夫的老婆赛仑免费观看| 评书岳飞传刘兰芳| 爆操老妈高清1至46集| 动漫裸体无遮挡屁股| 天子寻龙| 漂亮的保姆高清版韩剧| 青岛往事全集| 足球女老板满天星版安娜| 八楼的二路汽车| 丛林血战完整版免费观看| 《招魂4:终章》| 新娘之真爱| 电影需要爸爸接种子免费观看| 柯南剧场版国语版全集| 《美国灭火宝贝2》演员表介绍| 长歌行免费观看完整版| 霜花店未删减| 美国男按摩师| 苍空电影完整版在线观看| 吴忠市| 我的三个姐姐大结局| 名侦探柯南714| 大江大河3免费观看下载| 武训传免费| 钟汉良李小冉吻戏| 三年中文在线观看免费观看第三集 | 稻城县| 海上繁花电视剧在线观看| 前途海量电影免费观看完整版| 老公的部下是我的初恋| 至尊红颜在线观看全集免费| 到吴起镇大合唱| 凶器未删减| 隐行帽子免费完整版| 新还珠格格98集| 慈禧秘密生活高清完整国语电影| 神雕侠侣未删减陈晓版| 杜拉拉升职记在线| 731部队配狗免费观看| 推女郎68期无删减视频| 小宝和老财电视剧全集| 公之浮手中字2| 黄金瞳在线观看| 爱几何完整版| 糖葫芦西施| 我的女儿是花| 坎贝奇三部曲免费无删减在线观看 | 城市猎人电影| 我的XL司令第一季真人版| 铁嘴银牙| 伯爵夫人满天星1973| 裂缝百度影音| 倾城之恋读后感| 法国《遗产》罗丽星克莱尔| 青梅竹马是消防员风车| 近距离爱上你第七集| 异世界迷宫2免费观看| 怪异在线观看| 我爱几何电视剧免费观看| 皇后的品格免费观看完整版 | 电视剧马大帅第一部全集播放| 七虹香电击大作战| 插曲30分钟电视剧免费观看| 希拉里演讲| 果盘先生| 韩剧《外出》| 纯情房东俏房客| 坎贝奇《品味人生》在线观看完整版| 天下第一高清| 邓紫棋 春晚| 草灯和灯电影完整版| 红颜知己短剧免费观看| 色即是空2015字幕| 九尾狐传说| 外卖特邀员免费| 亲戚几画| 幽灵公主在线观看高清完整| 国风按摩院免费观看平台| 高清《杀戮天使》免费观看| 性趣大师| 高清年少有为| 李灿森结婚| 短剧合集金牌销售| 石敢当之雄峙天东演员表| 厨王电视剧| 电视剧 一生只爱你| 高清杀人者报告未删减| 1994年意大利赛伦渔夫和他的妻子 | 囧妈网上怎么看| xl司令第一季全集在线观看完整版免费 | 朋友交换| 隐形的翅膀电影免费观看完整版| 小日子电视剧免费观看完整版高清| 保罗一家1-4美国版高清中字| 韩国隐身帽子电影完整版| 聊斋艳谭幽| 三基培训网| 出差期间未婚妻遭前任多次欺负日剧| 傻哥蹦迪| 替弟还债| 公交车轮交流啊出来了视频| 借口 电影| 站起来再来一次第30集剧情介绍| 中国boy| 美景之屋5未增减板| 遥控器女老板| 春草全集| 天赋异禀在线观看免费| 中字HD丈夫下属| 闪婚老公竟是顶头上司电视剧免费| 酒店3-15集| 人生赢家| 神勇武工队传奇主题曲| 本乡爱合集| 我是刑警13电视剧免费收看| 电影《野兽爱人》完整版免费观看 | 哥哥给我一个机会电影| 日版情定大饭店| 《执行秘书》2016| 三日情劫:不嫁已婚总裁| av无| 他母亲的房子| 图书馆女友第一季全集免费六集| 风暴来临在线观看完整版| 年轻的护士长3| 天芒传奇| 有一种爱叫无法弥补 | 新妈妈的礼物| 我是真的讨厌异地恋| 1—5集免费普通话版金 | 我的中国心曲谱| 高品格单恋百度云| 瓦尼塔斯的手记动漫全集免费| v酒店第一季在线观看免费版| 朋友的姐姐韩剧| 降头在线观看| 战狼6高清完整免费999在线观看| 傅佩荣 易经| 加勒比女海盗h成版手机在线| 《大兵的寝室》美剧免费观看全集| 电视剧婆家娘家| 九天玄帝诀| 与部长出差在线观看| 电影《莫陌1》在线观看免费| 电影 狂蟒之灾| 女超人的屈辱麦乐迪| 高海拔之恋2粤语| POREN 18大学生| 《21世纪爱情指南》免费观看攻略| 性感乳房裸体电影按摩| 暖春电视剧免费观看全集在线观看| 麦乐迪在线观看完整免费| 黑衣人国语高清| 拜托小姐优酷| 做爱aj的电视剧大全免费观看中国国语| 鬼吹灯有声小说在线收听| 电影满江红免费看| 菏尔蒙6| 战火青春金戈版| 变形金刚动画片国语| xL司令第二季真人| 南洋十大邪术未删减版本国语| 打工人电影免费观看中文版| 按摩店待遇服务| 姐妹的诱惑| 魔具少女第一季| 男生和女生在一起愁愁愁在线观30集 | 想要爸爸播种手机播放| 中国诗词大会第六季第十场总决赛| 大追捕 电影| 麻生香织电影在线| 疯狂厨房| 《倔强退魔师》1-4集免费观看| 人山人海自助餐| 疯狂老爹| 《高压监狱2》法国版| 纯白之恋全集| 王保长传奇| 女儿国3满天星版哪里能看| 空姐日本电视剧| 神机妙算刘伯温全集| 戴森吹风机官网售后| 人与畜禽日韩| 唔黐线唔正常| 无言原唱是谁| 同学的妈妈ID| 铁石心肠 电视剧| 青梅竹马是消防员第一部| 《吴雪雯性迷宫未删减版》| 长津湖电影完整版标清| 绣春刀电影在线观看| 哇嘎在线观看完整版| 甄嬛传50集| 纸醉金迷| 麦乐迪版女超人| 老有所依40集免费看完整版| 黄日华版天龙八部| 酒店1-60集全集免费| 鸟鸟鸟动画片免费| 东北警察故事2谢苗| 女朋友妈妈双字id免费| 麻衣神婿电视剧在线观看| 那年花开全集免费观看星辰 | 牛气满满的哥哥在线观看| 电影《之后》第一部| 凯登克劳斯情感护卫队| 我和大佬的三百六十五天| 成龙电影全集粤语| 郝板栗牙医未删减版百度云| 电影《女性治疗营》| 高清《死侍3》在线观看| 名侦探柯南剧场版10| 伦理片女儿要爸爸播种| 景区再度上演人从众| 偷窥邻居做爰2| 莫妮卡大度电影免费观看爱我几何 | 建国门枪击事件| V酒店电影| 吴亦凡歌曲| 奋斗吧 少年在线观看免费完整版 男子买22面镜子挂阳台反击邻居 我比破军帅 | 每日妈妈粤语| 致命怪谈| 战狼4在线播放免费完整| 德州市| 老板的漂亮女儿| 中国新说唱第一集| 年轻母亲2| IPX-602 Ipx602 沉迷于【恶女教师】嫉妒的不穿内裤诱惑女教师的异常私通。 明 | 电影《庄园女仆满天星》| 天启免费观看完整版| 风气洛阳| 盛唐风流在线观看免费版 | 1984版保罗1-4在线观看| 柬埔寨运河对我国的意义| 看了下面会流水的视频| 插曲的痛第60集免费观看高清下载| 原始战争未删减| 我的1997免费观看完整版| 巡城御史鬼难缠| 女版西游记大波唐三藏香港版| 安拉拉斋电影版免费看| 七根心简免费观看全集在线播放| 荷尔蒙6欧美版哪里看| 美人鱼在线观看免费观看| 魔人扎克| 未婚妻和部长出差韩国电影在线观看| 《猎罪图鉴》第二部| 腾飞担保公司| 《卖房子的女销售》美国| 斗罗大陆177在线观看| 男鬼附身美女| 局外人电影| 朱莉安妮监狱的电影叫什么名字来着 | 星宿会战| 电视剧别对我说谎| 私人电影完整版| 萧亚轩mv| 妖女迷行第五季| 亚洲夜夜爱| 三级《出差被同房》| 军中乐园在线| 电视剧正阳门下全集| 好妈妈13中汉字| 独行杀手| 春节文艺晚会| 美国队长3 下载| 伦理《法国护士长》2006在线播放 | 坏妻子:便利店做爱| 嘻游记 高清完整版| 男女一起愁愁愁电视剧免费看| 色戒完整版| 意大利电影短情欲在线播放| 西部狂野满天星| 老司机免费福利视频| 98古惑仔在线观看粤语版| 大湾仔的夜第二季在线观看| 爱唯侦察9集免费观看| 非诚勿扰33期| 霸王花4| 千金奴隶在线观看免费版电视剧| 《背叛老公的社长夫人》最新电影在线观看 -西瓜电影免费播放 -灵蓄影院 | 爱我几何3| 顿悟的意思| 高清《非常案件》全集观看| 工程车视频大全动画片| 再见绝望村| 贪玩的小毅本人| 大秦赋全集在线观看免费| 梦幻军事地区| 星球大战3百度影音| 鬼吹灯湘西怒晴| 长相思第三部免费播放| 银鞋在线观看完整免费高清原声满天星| 高清《阿诺拉》电影| 三大队电视剧在线观看| 战狼6欧式少女全部视频| 美国版荷尔蒙15| 婚姻攻略全集免费观看| 黄晓明发文祝贺表妹陈梦 | 纵横四海电视剧| 时间裂缝在线观看| 开始推理吧第3季免费观看全集高清| xl司令动漫第一季全集在线观看免费播 | 台中市| 满天星电影韩国在线观看完整免费| 临终千言| 天生爱情狂国语| 0verflower第一季免费观看| 想几个男人一起论我| 高清《房奴试爱》| 阿诺拉电影高清在线观看免费版| 三年免费大片观看高清电影| 阿凡提之奇缘历险| 大叔我爱你电影| 人生大事电影免费看完整版| 和部长出差电影 | 19岁大学生电视剧| 武林风泰山| 有关黄河的诗歌| 玉女心经 舒淇| 韩国 丈夫的领导| 尤雅歌曲| 电影战马| 红毯先生免费版完整在线观看| 总统夫人星克莱尔完整版电影| 行尸走肉第三季09| 金瓶梅在线播放| 小苍解说| 巜人妻初次按摩| 那年花开全集免费观看星辰| 传奇装备补丁| 克莱尔的迷宫在线免费播放| 艾薇儿最新mv| 《荆棘》| 只有你韩剧| 隐身帽在线观看完整| 初代奥特曼中文版全集免费观看 | 母亲5免费高清电视| 耶伦抵京 中美双方握手近20秒 | 处恋时间| 完美2韩版免费| 电影报道| 万全县| 维修工人的绝遇免费观看电视剧全部 | 无颜之月1到5集全集观看电视剧| 苗阜王声2016春晚| 儿子的妻子中字头| 《极乐宝鉴》叶子楣高清版| 换位兄弟| 去有风的地方电视剧| 分歧者:异类觉醒 电影|